2011-02-16 4 views
1

CakePHP 기반 응용 프로그램을 실행하려고합니다. 나는이 여기에 실행 얻으려고 Newsletter Mailer v1.1CakePHP 기반 응용 프로그램에서 캐시 클래스 요구시 500 서버 오류가 발생합니다

: 이 그 것이다 mailer.dasministerium.com

을하지만 보시다시피 제가받는 모든는 500 내부 서버 오류입니다. (require $path;

가 I이 줄을 befor) (d 다이이를 추적하는, 내 금형을 얻었다 : cake/libs/cache.php 라인 203

$core = App::core(); 
$path = $core['libs'][0] . 'cache' . DS . strtolower($name) . '.php'; 
if (file_exists($path)) { 
    require $path; 
    return true; 
} 

라인 (203)은 :

는 I 아래 파일이 에러를 추적) 메시지.
이 줄 다음에 die()를 입력하면 500 오류가 발생하지만 필요한 파일 ( cake/libs/cache/file.php)에서 die()를 사용하면 500을 받게됩니다.
그래서 모든 것이 실제로 필요한 것에서 충돌하고 있습니다.

나는 우분투 8.04를 실행하는거야 LTS 64 비트, PHP 5.2.4 (아파치 모듈로, NOT 빠른 CGI)

모든 아이디어를 어떻게 실행을 얻는 방법?

미리 감사드립니다. 데이비드

편집

:

오류 파일에 모든 오류를 인쇄 한 후 내가이 발견
PHP Fatal error: Class 'CakeLog' not found in /var/www/vhosts/dasministerium.com/subdomains/mailer/httpdocs/cake/libs/cache/file.php on line 83

가 Unfortnunately이 파일의 모든 CakeLog에 대한 참조가없는을 .. 그래서 : wtf ?!


편집 2 :

var_dump(class_exists('CakeLog')); // this before the crashing 
            // require() returns true! 

편집 최종! CakePHP의 <

그것 -

+0

어떻게하면 아파치 로그를보고 – dogmatic69

+0

@ dogmatic69가 이미 확인했습니다. 결과 없음 –

+1

파일 권한? – Leo

답변

2

이 해결> eAccelerator 문제가 .... SOLVED : 그것은 eAccelerator의 잘못이었다.

개방 /cake/libs/cake-log.php 맨 아래로 스크롤, 다음과

if (!defined('DISABLE_DEFAULT_ERROR_HANDLING')) { 
    set_error_handler(array('CakeLog', 'handleError')); 
} 

대체 :

솔루션 ... 조금 해킹으로 고정 그것 뿐이다

if (!defined('DISABLE_DEFAULT_ERROR_HANDLING')) { 
    $cakeLog =& CakeLog::getInstance(); 
    set_error_handler(array(&$cakeLog, 'handleError')); 
} 

을 :)

+0

같은 문제가 발생하는 다른 사용자의 해킹을 공유하는 데주의해야합니까? 그것이이 사이트의 요점입니다 - 같은 문제를 가진 질문자와 다른 사람들 모두에게 학습 경험을 나누어주는 것이 이익입니다. –

+1

@Matt oh 미안 해요! 그 게시물을 편집 할거야. 제발. –

+0

굉장하고, 공유 주셔서 감사합니다, 지금 당신의 대답을 upvoted :) –

0

그 해결책은 Cake1.3 (그리고 아마도 새로운 것)입니다.

약 1.2?

if (!defined('DISABLE_DEFAULT_ERROR_HANDLING')) { 
    set_error_handler(array('CakeLog', 'handleError')); 
} 

cake_log.php 파일 :

더 라인이 없습니다.

+1

질문을 별도의 질문으로 게시 해보십시오. – eeerahul

0

컨트롤러에 '보기'가 없을 때 cakephp 2.x는 http 상태 500을 반환 할 수 있습니다. 보기가없는 일부 컨트롤러는 http 상태 200을 반환하기 때문에 '임의로 발생합니다'라고 표시됩니다.

어쨌든이 http 상태 500 문제를 해결하려면 모든 컨트롤러에 연결된보기가 있는지 확인하십시오. 컨트롤러와 관련된보기가없는 경우 페이지의 맨 아래에 있음).