1

exec と shell_exec に問題があります。ここのすべての投稿を調べましたが、問題が見つからないようです。私が使用しているコード:

chdir('/');
$handle = shell_exec("/usr/bin/php /home/donor/public_html/batch/testlaunch.php 2>&1");
echo $handle .":". gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;

画面は次のようになります。

...
X-Powered-By: PHP/5.3.21 Content-type: text/html (repeated about 100 times)
X-Powered-By: PHP/5.3.21 Content-type: text/html 
PHP Warning: shell_exec() [function.shell-exec]: Unable to execute '/usr/bin/php /home/donor/public_html/batch/testlaunch.php 2>&1' in /home/donor/public_html/batch/test.php on line 4 X-Powered-By: PHP/5.3.21 Content-type: text/html 
Warning: shell_exec() [function.shell-exec]: Unable to execute '/usr/bin/php /home/donor/public_html/batch/testlaunch.php 2>&1' in /home/donor/public_html/batch/test.php on line 4
:boolean PHP Warning: fread() expects parameter 1 to be resource, boolean given in /home/donor/public_html/batch/test.php on line 6 
Warning: fread() expects parameter 1 to be resource, boolean given in /home/donor/public_html/batch/test.php on line 6
:string PHP Warning: fread() expects parameter 1 to be resource, string given in /home/donor/public_html/batch/test.php on line 6 (repeated another 100ish times)

PHPセーフモードがオフになっています。ファイルが存在するフォルダーのアクセス許可は .../batch/ と /usr/bin/php の両方に 755 に設定されています。すべてのファイルのユーザーは、php を除いて同じです (php ファイルのユーザーは root)。php.ini ファイルでは何も無効にされていません。CLI で正常に動作します。や などの単純なコマンドは問題whoamiなくls動作します。私は何かが欠けているように感じます

編集:cpattersonv1が言ったことを試して得た:

X-Powered-By: PHP/5.3.21 Content-type: text/html sh: fork: retry: Resource temporarily unavailable sh: fork: retry: Resource temporarily unavailable sh: fork: retry: Resource temporarily unavailable sh: fork: retry: Resource temporarily unavailable X-Powered-By: PHP/5.3.21 Content-type: text/html sh: fork: retry: Resource temporarily unavailable sh: fork: retry: Resource temporarily unavailable sh: fork: retry: Resource temporarily unavailable sh: fork: retry: Resource temporarily unavailable sh: fork: Resource temporarily unavailable X-Powered-By: PHP/5.3.21 Content-type: text/html 2540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

編集2:コマンドを複数回試行しているように見える理由を知っている人はいますか?

編集 3: コマンドを .sh ファイル内に配置し、それを実行しようとしました。CLI では動作しますが、php からは動作しません

chdir('/');
$handle = exec(". /home/donor/public_html/batch/test.sh");

同じ出力が得られます。

4

4 に答える 4