2011-03-06 36 views
0

免責聲明 - 我是PHP總noob - 尋找一些幫助/提示如何調試此問題...LAMP/CakePHP怪癖 - 在本地而不是在遠程服務器上工作。調試技巧?

我有一個基於PHP/CakePHP的應用程序運行在Linux/CentOS和MySQL。

它也運行在我的本地開發機器(OSX Snow Leopard)上。

但是,應用程序的一小部分在兩者之間行爲不一致。

我已經將DB和PHP代碼從服務器複製到我的本地計算機 - 所以很確定它們處於接收器狀態。請注意,該應用最初是在其他地方開發的,然後部署到服務器。

不同的是,有一個主/細節類型的頁面 - 在這兩個網站的主要部分工作正常,但細節部分只適用於我的本地/ OSX版本。

我已經檢查了數據庫,並且詳細記錄看起來像預期的那樣存在。

PHP版本略有不同。

Linux服務器:

HP: Error parsing /usr/local/lib/php.ini on line 803 
PHP 5.2.16 (cli) (built: Mar 1 2011 11:48:38) 
Copyright (c) 1997-2010 The PHP Group 
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies 
    with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator 
    with the ionCube PHP Loader v3.3.20, Copyright (c) 2002-2010, by ionCube Ltd. 

Server version: Apache/2.2.17 (Unix) 
Server built: Mar 1 2011 11:42:56 
Cpanel::Easy::Apache v3.2.0 rev5291 

OSX地方:

PHP 5.3.3 (cli) (built: Aug 22 2010 19:41:55) 
Copyright (c) 1997-2010 The PHP Group 
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies 

Server version: Apache/2.2.15 (Unix) 
Server built: Jul 1 2010 17:16:33 

我試圖重新啓動Apache,如果它是一個緩存的問題。我試圖通過mysql命令行更改主細節,並且正在顯示這些更改。

嘗試啓用display_errors/display_startup_errors - 但沒有顯示任何內容。

不知道是否有任何CakePHP調試技巧...也許應該看看。

我的計劃是將該應用程序安裝在另一臺服務器上,以查看它是否有效並/或有助於識別差異/問題。

,這似乎是這個問題的PHP代碼是這樣的(它在CakePHP的控制器之一):

$carInsuranceQuoteRequest = $this->CarInsuranceQuoteRequest->find('first', array(
     'conditions' => array(
      'CarInsuranceQuoteRequest.id' => $id, 
     ) , 
     'contain' => array(
      'Company' => array(
       'Attachment' 
      ), 
      'CarInsuranceVehicleType', 
      'CarInsuranceVehicleMake', 
      'CarInsuranceVehicleModel', 
      'CarInsuranceVehicleVersion', 
      'CarInsuranceCoverageType', 
      'CarInsuranceQuoteResponse' => array(
       'CarInsuranceQuoteSite' 
      ), 
     ), 
    )); 

的報價請求對象被返回確定兩個安裝。但是,報價響應對象在Linux機器上始終是空的,即使它們在mysql數據庫中似乎沒問題。在OSX下,響應顯示正常。

上線803 PHP的錯誤是提前任何提示

; url_rewriter.tags: (ini file field description not available) 
url_rewriter.tags = a=href,area=href,frame=src,input=src,form=,fieldset= 

謝謝,克里斯

FWIW - 我的問題是由於CakePHP的模型是錯誤的,所以它不是能夠瀏覽關係。我改變了mysql表格。出於某種原因,它在我的本地機器上解決了這個問題。

+1

您可以發佈您的詳細信息頁面的控制器操作中的代碼嗎?此外,在您的php.ini文件中有錯誤... – Dimitry 2011-03-06 18:00:43

+0

已添加。哦,並感謝PHP的恐怖現場 - 我完全錯過了,雖然不意味着什麼對我:( – 2011-03-06 18:06:59

回答

2

克里斯,

嘗試在你的應用程序打開CakePHP的調試輸出。在文件app/config/core中。PHP的,你應該找到這樣設置CakePHP的調試級別的行:

Configure::write('debug', 0); 

將其更改爲:

Configure::write('debug', 1); 

或更高的價值。這應該會產生一些錯誤輸出,並讓您朝着正確的方向前進,以縮小問題的根源。

請記住爲生產配置將其重新設置爲0。這方面的文檔如下:

/** 
* CakePHP Debug Level: 
* * Production Mode: 
*  0: No error messages, errors, or warnings shown. Flash messages redirect. 
* 
* Development Mode: 
*  1: Errors and warnings shown, model caches refreshed, flash messages halted. 
*  2: As in 1, but also with full debug messages and SQL output. 
*  3: As in 2, but also with full controller dump. 
* 
* In production mode, flash messages redirect after a time interval. 
* In development mode, you need to click the flash message to continue. 
*/ 

還記得檢查您的Apache錯誤日誌文件的任何有用的輸出。

+1

完美 - 很多謝謝你。現在得到的細節線和一些消息 - 的事情來解決,希望:) – 2011-03-06 18:18:29

+0

優秀新聞克里斯!將嘗試幫助任何後續Q's。 :-) – 2011-03-06 19:10:00

相關問題