2010-03-30 82 views
0

我想在PHP 5.3中使用NuSoap。當我在Eclipse中調試我的腳本時,我得到了很多Deprecated警告,但腳本仍然運行,但是當我通過本地主機上的Apache調用腳本時,腳本終止而沒有任何解釋。我現在還不是一個真正的web頭,並且在這方面有點小氣,但我爲什麼會在調試時在同一臺機器上工作,而不是通過Apache,卻不知所措。有什麼可能導致腳本在Eclipse中運行的原因,但是當我從瀏覽器中調用它時不會運行。另外,當腳本在調試器外部失敗時,是否會在某處吐出某種日誌或調試數據,如果是這樣,我怎麼能找到它?差異從Eclipse運行PHP和託管

回答

0

PHP有幾個指令來定義錯誤報告的行爲。最重要的是:

第一個設置錯誤報告的嚴重性:你可以告訴PHP警告在一切可能的問題,警示僅致命錯誤,等等。第二個指示PHP在屏幕上顯示錯誤信息。這個選項不是硬編碼的:它們可以在運行時設置。請參閱log_errors

至於如何更改這些選項,如果您有權訪問主php.ini文件,則可以隨時更改整個系統的選項。也可以在每個站點的基礎上進行更改,但具體機制取決於PHP如何與Web服務器交互。如果它作爲Apache模塊運行(常見設置),則可以使用.htaccess文件。

您會在這裏找到很多信息:http://www.php.net/manual/en/configuration.php

0

它可能會引發致命錯誤,但您的生產服務器上已關閉display_errors(因爲您應該),所以它不會在html中輸出錯誤,因爲您的開發版本會這樣。檢查你的php.ini中錯誤日誌的位置,或者要求你的服務器管理員指出你正確的方向。您需要具有文件級訪問服務器或控制面板的權限,該控制面板將爲您顯示。

或者,您可以將.htaccess文件中的display_errors打開,僅適用於該應用程序。

php_flag display_startup_errors on 
php_flag display_errors on 

或者,如果顯示的錯誤是不是一種選擇,你不能訪問你的日誌文件,你可以在你的錯誤日誌設置爲自定義的位置,只要它是由阿帕奇寫:

php_flag log_errors on 
php_value error_log /absole/path/to/a/writable/directory/php_errors.log