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 回ログ呼び出しを実行する必要があるため、これには困惑しました。入力値に問題が存在しない限り、それを確認/デバッグする方法がわかりませんか?