2

1&1 でホストされている Magento 1.6.2 サイトがあります。特定の拡張機能がインストールされているため、PHP バージョン 5.3 をサポートする必要がありますが、残念ながら 1&1 で使用できるオプションは PHP 5.2 または PHP Dev と呼ばれるものです。これが実際には PHP 5.4 であることを簡単phpinfo()に示します。

私の問題は、5.4 に設定すると、バックエンドの [カテゴリ] ページで 500 エラーがスローされることです。5.2 にロールバックすると問題は解決しますが、製品ページが壊れます。短期的には、それらの間で交換する必要がありますが、これは、サイトがクライアントに渡される長期的なソリューションとしては明らかに受け入れられません.

この非互換性がどこにあるのか、そしてそれを修正するためにどのような手順を踏めばよいのか、誰でも提案できますか? 私の最大の障害は、ホスティングが共有サーバー上にあるため、Apache のログを見ることができないことです。

アップデート:

コメントの CCBlackburn の提案に従って、エラーが発生したポイントを追跡しようとしましたが、得られた結果を本当に理解していないことを認めなければなりません。カテゴリ ページの URL は次のようになります。

example.com/index.php/admin/catalog_category/index/key/blahblah

Mage_Adminhtml_CatalogControllerそこから探し始めると思いましたがMage::log()、最初の行の呼び出しindexAction()がログに書き込まれませんでした。

継承を上に移動してコンストラクターに切り込むことにしたため、次を に追加しましたMage_Adminhtml_Controller_Action

function __construct(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response, array $invokeArgs = array()) {
    Mage::log('construct pre');
    parent::__construct($request,$response,$invokeArgs);
    Mage::log('construct post');
}

最初のログ呼び出しはファイルに書き込みましたが、2 回目は書き込みませんでした。

次に、継承を再び上に移動し、コンストラクターをMage_Core_Controller_Varien_Action次のように変更しました。

public function __construct(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response, array $invokeArgs = array())
{
    Mage::log('request: '.$request);
    $this->_request = $request;
    Mage::log('response: '.$response);
    $this->_response= $response;
    Mage::log('pre set action');
    Mage::app()->getFrontController()->setAction($this);
    Mage::log('post set action');
    $this->_construct();
}

問題は、これらのログ呼び出しのいずれも何もしないことです。parent::__construct();fromを呼び出すと、Mage_Adminhtml_Controller_Action何かを実行する前に少なくとももう 1 回ログ呼び出しを実行する必要があるため、これには困惑しました。入力値に問題が存在しない限り、それを確認/デバッグする方法がわかりませんか?

4

1 に答える 1

1

Google Chrome の OSX Lion と、Magento 1.7 および PHP 5.4 を使用した Apple Safari で同じ問題に直面しました。突然、Magento カテゴリの管理者が 500 エラーを返し始め、何が起こっているのかわかりませんでした。PHP 5.4 に問題があるようです。最初は、このエラーの原因は XDebug だと思いました。次に、XDebug を無効にしましたが、問題は解決しませんでした。Firefox で動作するというのは、奇妙なことではありません。

私の解決策は最新の PHP 5.3 にダウングレードすることでしたが、これは現在PHP 5.4.3 で修正されています。

于 2012-05-14T08:41:26.567 に答える