2011-02-16 39 views
1

我試圖運行基於CakePHP的應用程序。 這是它:Newsletter Mailer v1.1基於CakePHP的應用程序拋出500服務器錯誤上要求高速緩存類

我試圖讓這個運行位置:mailer.dasministerium.com

但正如你所看到的一切,我收到一個500內部服務器錯誤。

我跟蹤這個錯誤降到文件: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是:require $path;

要跟蹤下來我死了()d befor這一行,並得到了我的模具( ) 信息。
在該行後面的模具導致了500錯誤,但是在所需的文件(cake/libs/cache/file.php)中死亡(500)也給了我500。
因此,整個事情真的在需要的東西上崩潰。

我運行Ubuntu 8.04 64位,PHP 5.2.4(如Apache模塊,還不快-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沒有提及.. 。so:wtf ?!


編輯2:

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

編輯決賽!

它是一個CakePHP的< - > eAccelerator在問題....解決

+0

如何查看Apache日誌 – dogmatic69 2011-02-16 14:30:34

+0

@ dogmatic69已經檢查過它們。沒有結果 – 2011-02-16 14:33:21

+1

文件權限? – Leo 2011-02-16 15:04:31

回答

2

解決:這是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

該解決方案適用於Cake1.3(也許更新)。

1.2呢?

沒有行:

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

在cake_log.php文件。

0

我注意到,cakephp 2.x可能會返回http狀態500,當沒有'視圖'的控制器。這似乎是「隨機發生」,因爲一些沒有視圖的控制器會返回http狀態200.

無論如何,要解決這個http狀態500問題,請確保所有控制器都有一個與之關聯的視圖(您會看到一個錯誤在頁面的底部,如果沒有與控制器關聯的視圖)。

相關問題