0

コマンドラインから実行している PHP アプリケーションをデバッグしようとしています。後で cronjob を使用して、1 時間ごとにモジュールを呼び出したいと考えています。

デバッグのために、次のように 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 に結果を直接出力させる方法がわかりません。

4

3 に答える 3

2

「&」を使用してスクリプトを実行しているため、出力は表示されません。fgコマンドでプロセスをフォアグラウンドに戻します。

于 2013-10-10T15:42:02.890 に答える
1

最後に & を使用すると、コマンドはバックグラウンドで起動されます。コマンドでバックグラウンドプロセスを見ることができますjobs。試してみると、php プロセスが「停止」状態になっていることがわかります。

問題は、php が入力を待っていることです。これは、次の php 拡張機能が原因です。

readline php 拡張機能

次のように実行します。

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

またはその拡張機能を無効にします。

于 2013-10-10T15:57:03.527 に答える
0

コマンドラインの末尾からアンパサンドを削除します。バックグラウンドでコマンドを実行するようにシェルに指示します。

編集: それ以外の場合は、web 調整された php.ini を使用している可能性があります: その構成でエラーがログファイルに記録されることを期待しています。

于 2013-10-10T15:39:51.857 に答える