phpのexec関数を使って他のphpを実行したいと考えています。
ネットでいろいろ検索してみているのですがなかなか答えが見つからないのでお教えいただきたいと思い質問させて頂きました。
やりたいことは、「phpで他のphpを複数同時に実行したい」ということです。
WindowsのXAMMP環境(開発環境)とLinux環境(デプロイ先)です。
まず実際に複数同時に実行するphpをexecute.phpとします。
このphpは実行完了まで数秒~数十秒かかる内容です。
このexecute.phpファイルを他のphpファイル(例えばasync.php)で呼び出して実行したいです。
async.php
// execute.phpを5回呼び出して実行する for ($i = 0; $i < 5; $i++){ exec("execute.php > /dev/null &", $output, $status); var_dump($output); var_dump($status); }
上記のようにしました。
まずXAMPP環境で実行してみたところ、execute.phpが実行されずに単にexecute.phpファイルが5回開きました(Windowsのテキストエディタでファイルが開かれました)。
そして以下の出力がされました(以下の内容が5つ分)。
> array (size=0) > empty > int 0
次に以下のphpマニュアルに記載されているように、Windows環境の場合でpclose/popenで実行してみました。
http://php.net/manual/ja/function.exec.php
async.php
// execute.phpを5回呼び出して実行する for ($i = 0; $i < 5; $i++){ pclose(popen("start /B execute.php", "r")); }
しかしexec関数と同じく5回ファイルが開かれるだけでした。
どのようにすればXAMPP環境でexecを実行できるのでしょうか?
またパラメータを付与する方法もお教え頂きたいと思います。
Linus環境でしたら「execute.php param1 param2」というのはわかりますが、Windows環境ではどのように指定するのでしょうか?
お手数ですがどうぞよろしくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/08/01 12:49
2015/08/01 13:22
退会済みユーザー
2015/08/01 15:17