2013-10-10 21 views
0

我試圖調試從命令行運行的PHP應用程序。我希望稍後使用cronjob來每小時調用一次該模塊。強制PHP使用命令行概述錯誤

對於調試我執行PHP腳本是這樣的:

php -c /etc/php5/apache2/php.ini /var/www/module/test/autostart/start.php 12 & 

(忘了「12」 - 這是爲腳本參數)

現在基本上我通過SSH得到這樣的輸出:

[2] 10181 
[1] Done    php -c /etc/php5/apache2/php.ini /var/www/module/test/autostart/start.php 12 

我不知道我改變了什麼,但幾個星期前我直接在屏幕上得到了實際的php錯誤。這就是我所期望的。但我不知道如何強制PHP直接向我輸出結果。

回答

1

當您在末尾使用&時,命令在後臺啓動。您可以通過命令jobs查看後臺進程。當你嘗試它時,你可以看到php進程處於「停止」狀態。

問題是,PHP正在等待輸入。 它是由這個PHP擴展造成的:

readline php extension

運行這樣說:

php -c /etc/php5/apache2/php.ini /var/www/module/test/autostart/start.php 12 < /dev/null & 

或禁用擴展。

0

從命令行末尾刪除&符號。它會通知shell在後臺運行該命令。

編輯:否則,可能是因爲您正在使用網絡調整的php.ini:我期望配置將錯誤記錄到日誌文件中。

+0

不,這不應該是原因。即使在後臺,輸出仍然通過管道輸出到stdout/stderr ... – bwoebi

2

您將看不到任何輸出,因爲您正在使用「&」運行腳本,您使用fg命令將該進程恢復到前臺。

+0

從評論引用到上一個答案:_No,那不應該是原因。即使在後臺,輸出仍然通過管道輸出到stdout/stderr ... _ – bwoebi

+0

謝謝各位! 我解決了這個命令行的問題: php -c /etc/php5/apache2/php.ini /var/www/module/test/autostart/start.php 12> log.txt& –