私はサーバー(centos)上で「shell_exec」を実行するためにajax呼び出しを使用しています。私が実行している行は次のとおりです。
echo shell_exec("php -q /websockets/timedactions.php");
これはサーバーの応答です:
X-Powered-By: PHP/5.5.16
Access-Control-Allow-Origin: http://myIpAddress
Access-Control-Allow-Credentials: true
Content-type: text/html
このコマンドを実行した後、アクティブ化するはずのプロセスが実行されていないようです。
ルートアクセスでシェル上で同じコマンドを呼び出す
php -q /websockets/timedactions.php
完璧に動作します。
shell_exec を使用してスクリプトを動作させるにはどうすればよいですか?
より詳しい情報:
ps aux | grep httpd | awk '{print $1}' = nobody
sestatus|grep enforcing = {no result}
file permissions -rwxr-xr-x 1 root root
ls -lZ timedactions.php -rwxr-xr-x root root ? timedactions.php*
答え1
まあいいでしょう
答えはかなり簡単だったようです (イライラするかもしれませんが :-) ) PHP への完全なパスを追加しました。以前はエラーがなかった理由と、なぜ機能しているのかはよくわかりません (説明できる人がいれば)
shell_exec('/usr/local/bin/php -q /websockets/timedactions.php /dev/null 2>&1 &');
お試しいただきありがとうございます。