2012-04-16 37 views
2

我有一個Magento 1.6.2站點託管在1 & 1.由於某些安裝的擴展,我必須支持PHP 5.3版本,但遺憾的是可用的選項是PHP 1 & 1 5.2或者他們稱之爲PHP Dev的東西。快速phpinfo()表明,這實際上是PHP 5.4。Magento管理員類別頁面在PHP 5.4上失敗

我的問題是,當我設置爲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'); 
} 

這是更好,因爲第一個日誌調用寫信給該文件,但第二個做不。

接下來,我又感動了繼承和修改的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(); 
} 

的問題是,沒有這些日誌調用的做任何事情。這讓我很難過,因爲肯定從Mage_Adminhtml_Controller_Action中調用parent::__construct();應該在執行任何操作之前至少再執行一次日誌調用。除非傳入值存在問題,但我不知道如何檢查/調試?

+0

在Magento日誌中是否顯示任何錯誤 - system.log或exception.log? – CCBlackburn 2012-04-16 23:26:10

+0

根本沒有。在我意識到這是5.4的錯誤之前,我從頭開始重新安裝了該站點,並且甚至從未生成日誌文件。我確信Apache日誌會告訴我這個故事,只要我允許我看看它。 – shanethehat 2012-04-16 23:43:28

+1

Darn,我能想到的唯一的事情就是把Mage :: Log調用放在裏面,這樣你就可以看到它落在 – CCBlackburn 2012-04-17 04:46:33

回答

1

我在OSX Lion的Google Chrome和Apple Safari中遇到了與Magento 1.7和PHP 5.4相同的問題。突然Magento類別管理員開始給500錯誤,我不知道發生了什麼。這似乎是PHP 5.4的一個問題。起初我以爲這是XDebug導致這個錯誤。然後我禁用了XDebug,問題仍然存在。它比火狐更加奇怪,它可以和Firefox一起使用!

我的解決方案是降級到最新的PHP 5.3,但現在已經固定爲從PHP 5.4.3開始。

相關問題