7

PHPに単純なファイルを実行するように指示するために、過去3時間試みています。ローカルホストで Windows 用の wamp サーバーを使用しています (Windows 8)

私は一緒にexec()働いてみました:

 echo exec('whoami');

nt権限を取得しました。

以下でもテスト済み:

if(function_exists('exec')) {
echo "exec is enabled";
}

それで、おそらくうまくいきますか?

tester.php というファイルを実行しようとしています

私がそれを含めると、機能し、必要なときに機能します。バックグラウンドで実行する必要があります。ファイルを更新すると、コードはエラーなしで機能し、データベースに正常に書き込みます。

実行しようとすると、機能しません。

私は試した :

       exec("php http://localhost/diplomski/program/defender/tester.php");
       exec("php-cli http://localhost/diplomski/program/defender/tester.php");
       exec("http://localhost/diplomski/program/defender/tester.php");

動作しない、また試した:

        exec("php http://127.0.0.1/diplomski/program/defender/tester.php");
        exec("php-cli http://127.0.0.1/diplomski/program/defender/tester.php");
        exec("php-cli d:\wamp\www\diplomski\program\defender/tester.php")

動作しないことも試しました:

        exec("php tester.php");
        exec("php-cli tester.php");
        exec("tester.php");

また試しました:

         $WshShell = new COM("WScript.Shell");
         $oExec = $WshShell->Run("D:\wamp\bin\php\php5.3.13\php-win.exe -f d:\wamp \www\diplomski\program\defender/tester.php", 0, false);

これを試してみましたが、無限にリフレッシュされ、機能しません:

        exec("php d:\wamp\www\diplomski\program\defender/tester.php");
        exec("php-cli d:\wamp\www\diplomski\program\defender/tester.php");
        exec("d:\wamp\www\diplomski\program\defender/tester.php");

私はここで髪を引っ張り始めています。初めて使用しようとしexec()ていますが、コマンドやコマンドがあまり得意ではありません。

4

2 に答える 2

12

PHP 実行可能ファイルへのフル パスと PHP スクリプトへのフル パスを指定します。出力を保存し$outputて、スクリプトが生成したものを確認できます。

exec("d:/path/to/php.exe d:/wamp/www/diplomski/program/defender/tester.php", $output);
print_r($output);
于 2013-11-13T18:38:11.563 に答える
0

1) php のバージョンは? 古い場合は 5.4.0 php をセーフ モードにすることができます。セーフ モードが有効になっている場合は、safe_mode_exec_dir 内のファイルのみを実行できます。

2)php.netのこの関数への注意注:

If a program is started with this function, in order for it to continue running in the background, the output of the program must be redirected to a file or another output stream. Failing to do so will cause PHP to hang until the execution of the program ends.

3)だから、これを試すことができますPHPスクリプトを実行する方法 別のPHPスクリプトを実行するには、これを試すことができます

 <?php
 $somearg = escapeshellarg('blah');
 exec("php file2.php $somearg > /dev/null &");

4) スケジュールされたタスクを作成できます スケジュールされたタスクで PHP ファイルを実行する方法 (Windows タスク スケジューラ)

于 2013-11-13T18:51:04.590 に答える