1

shell_exec に問題があります。この回答によると、別のスレッドで他のphpファイルを実行しようとしています: https://stackoverflow.com/a/222445/1999929 私はこの非常に単純なコードを持っています:

<?php
     $realpath = realpath("./second.php");
     file_put_contents("./log.txt","\nFirst php running!\n",FILE_APPEND);
     shell_exec("php $realpath > /dev/null 2>/dev/null &");
?>

このファイルをドロップボックス Webhook リンクに使用したいので、これが必要です。10 秒以内に応答する必要がありますが、変更されたファイルの処理には時間がかかる場合があります。したがって、このファイルは、相手が終了するのを待たずに、実行するように相手に指示し、応答を返す必要があります。

コードで shell_exec を使用すると、テキストがファイルに無限に出力され、正常に動作しませんが、何らかの方法で他のファイルを呼び出す必要があります。

編集-上記の回答がshell_execの代わりに使用したため、exec()も試しましたが、結果は同じです。

4

2 に答える 2

0

このバグは、PHP の CGI バージョンにのみ影響します。CGI モジュールは、呼び出されたコマンドをスクリプト自体に置き換え、無限ループを引き起こします。

これを防ぐには、「php」の代わりに「php-cli」を呼び出す必要があります。

shell_exec("php-cli $realpath > /dev/null 2>/dev/null &");
于 2016-11-28T16:27:30.680 に答える