5

以下に説明するphp/linuxに問題があります。

shell_exec(plesk cliコマンドサブスクリプションwebspace-off)を介してLinuxコマンドを実行する必要があります。

問題は、これをphpから実行すると機能しますが、apacheを再起動すると、apacheが再起動している間に、空白のページが表示されることです。

この問題を解決するには、バックグラウンドでそのshell_execを呼び出す必要がありますが、遅延が発生します(期待される結果:Webページが読み込まれ、4秒後にLinuxスクリプトが実行されます)。

私は次のようないくつかの試みをしました:

shell_exec("sleep 4 && /var/www/vhosts/site.com/httpdocs/wrapper2 3  --webspace-off ".$domain_name." &");

しかし、phpは応答を待ちます。

どういうわけか私はLinuxコマンドの実行をスリープ状態にする必要があり、これはすべてbg。で実行する必要があり、応答を待たないでください。

ありがとう

4

1 に答える 1

9

execではなくを使用してshell_exec、すべての出力をにリダイレクトする必要があります/dev/null。何かのようなもの:

exec("(sleep 4 && ... --webspace-off ".$domain_name.") > /dev/null 2>&1 &");

(コマンドの周囲に注意してください。両方とラッパー()の出力ストリームをキャッチする必要があります。)sleep

編集:そして、あなたが検証することを実際に確認してください$domain_name。検証なしで

$domain_name = "; rm -rf ...";

あなたは困っています...

于 2011-06-19T13:46:35.373 に答える