1

CakePHP ベースのアプリケーションを実行しようとしています。これがそれです: Newsletter Mailer v1.1

これを実行しようとしています: mailer.dasministerium.com

しかし、ご覧のとおり、受信したのは 500 Internal Server エラーだけです。

このエラーをファイルまで追跡しました: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;

これを追跡するために、この行の前に die() し、die() メッセージを受け取りました。
この行の後で Die()ing を実行すると 500 エラーが発生しましたが、必要なファイル ( ) で die()ing を実行すると 500 エラーも発生しましたcake/libs/cache/file.php
そのため、すべてが実際に必要なものでクラッシュしています。

私はUbuntu 8.04 LTS 64Bit、PHP 5.2.4を実行しています(fast-cgiではなくApacheモジュールとして)

これを実行する方法はありますか?

前もって感謝します!デビッド


編集:

エラーファイルにすべてのエラーを出力した後、私はこれを見つけました:
PHP Fatal error: Class 'CakeLog' not found in /var/www/vhosts/dasministerium.com/subdomains/mailer/httpdocs/cake/libs/cache/file.php on line 83

残念ながら、このファイルには参照がまったくありませんCakeLog...つまり、wtf ?!


編集2:

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

編集ファイナル!

そのCakePHP <-> eAcceleratorの問題....解決済み

4

3 に答える 3

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'));
}

それでおしまい :)

于 2011-02-16T18:19:50.417 に答える
0

その解決策はCake1.3(そして多分それより新しい)のためのものです。

1.2はどうですか?

行はありません:

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

Cake_log.phpファイル内。

于 2011-12-08T15:57:57.737 に答える