php が外部コマンドを実行できない問題の解決策: 1. セーフ モードがオンになっているかどうかを確認します; 2. パス「safe_mode_exec_dir」にあるファイルを実行します; 3. 「php.ini」で特定のパスを設定します「。」
このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、Dell G3 コンピューター。
php が外部コマンドを実行できない場合はどうすればよいですか?
問題の説明:
PHP を使用して adb.exe を実行し、Android 携帯電話に接続して通信する準備をしていますが、exec("adb connect 192.168.1.10",$out); またはシステム関数が動作しません。
たとえば、
exec("adb connect 192.168.1.10",$out); print_r($out);
は接続情報やエラー情報を出力するはずですが、結果は何も出力されません。 cmd
で実行する場合は問題ありません。結局、方法はありません。batでコマンドを書き、phpでbatを実行します。これは問題ありませんが、phpでbatを実行すると、 Windows の環境変数が有効になっていないようです
それで非常に面倒です;
誰か助けてくれて、
exec("adb connect 192.168.168.168. 1.10",$out);
を実行するか、php がバットを実行するプロセスで環境変数を実装するには
fc コマンドのような doc の他のコマンドを試しましたこれはexec
で実行でき、fcコマンドはc:\windows\system32\fc.exeによって呼び出されます。exeは機能します
しかし、私はadbをc:\windows\system32\にコピーしました。それでも動作しません
! ! !
解決策:
まず、セーフ モードがオンになっているかどうかを確認する必要があります。
セーフ モードが有効な場合、このパスにあるファイルの実行に使用できるのは、safe_mode_exec_dir のみです。
特定のパスは php.ini で構成されます。設定項目:safe_mode_exec_dir
以下はPHPの公式説明です:
safe_mode_exec_dir
PHPがセーフモードを使用する場合、system()などのプログラムが必要になります。この関数は、このディレクトリにないプログラムの起動を拒否します。 Windows の場合も含め、ディレクトリ区切り文字として / を使用する必要があります。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHPが外部コマンドを実行できない場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。