php exec が実行できない問題の解決策: 1. php 設定ファイル php.ini を見つけ、ファイル内で「disable_functions」を検索し、「exec」と「shell_exec」を削除します。 ;3. 設定内のセーフ モードを「safe_mode=On」に変更します。
このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、Dell G3 コンピューター。
php exec が実行できない場合はどうすればよいですか?
PHP exec がシステム命令の実行に失敗する理由の分析
問題の背景:
原因プロジェクトの要件に応じて、HTML ページから画像を生成し、phantomjs (クリックして学習) ツールを使用してページのスクリーンショットを撮り、cmd ウィンドウで問題なく実行する必要があります。しかし、php で exec 操作が失敗し、phantomjs が内部命令ではないことがわかりました。
#問題解決策:#Baidu でさまざまな解決策を見つける:
オプション 1:1. php.ini を変更する
php 設定ファイル php.ini を見つけます。php 自動インストール プログラムを使用して php 環境を設定する場合、このファイルは C:\WINDOWS\ ディレクトリにあります。
ファイル内で「disable_functions」を検索して見つけ、「exec」と「shell_exec」を削除して、ファイルを保存します。
## 2. cmd.exe ファイルのプロパティを変更します。
C:\WINDOWS\system32 と入力し、cmd.exe ファイルを見つけて右クリックし、[プロパティ] を選択します。 , [セキュリティ] 設定にインターネット ゲスト アカウント (IUSR_****** アカウント) を追加し、[読み取りと実行] と [読み取り] 権限を付与します。オプション 2:
これはアクセス許可の問題であるという人もいます。
解決策:https://www.php.cn/php-weizijiaocheng-498092.html
PHPの組み込み関数execやsystemはシステムコマンド(シェルコマンド)を呼び出すことができ、もちろんpassthruやescapeshellcmdなどの関数もあります。
多くの場合、PHP の exec、system、およびその他の関数を使用してシステム コマンドを呼び出すと、作業をより適切かつ迅速に完了できます。たとえば、2 日前に .rar ファイルをバッチ処理していたとき、exec は非常に役に立ちました。 今日は、よく使われる通話システムの機能を整理し、私の経験を皆さんと共有します。 注: これら 2 つの関数を使用する場合は、php.ini のセーフ モードをオフにする必要があります。オフにしないと、セキュリティ上の理由から、PHP ではシステム コマンドの呼び出しが許可されません。 まず、PHP マニュアルでこれら 2 つの関数の説明を見てみましょう: exec --- 外部プログラムの実行语法 : string exec ( string command [, array &output [, int &return_var]] )
语法 : string system ( string command [, int &return_var] )
这二个都是用来调用系统shell命令,
不同点:
exec可以把执行的结果全部返回到$output函数里(数组),$status是执行的状态 0为成功 1为失败
systerm不需要提供$output函数,他是直接把结果返回出来,同样$return_var是执行的状态码 0为成功 1为失败
exec示例:
以下为引用的内容:
<?php $a = exec("dir",$out,$status); print_r($a); print_r($out); print_r($status); ?>
system示例:
以下为引用的内容:
<?php $a = system("dir",$out); print_r($a); print_r($out); ?>
总结:
以上三个解决方案都是从百度搜索到的。
第一个解决方案我查看了配置,不存在这种情况,pass。
第二个解决方案由于需要改服务器权限,情况不允许,没试。
第三个解决方案参考了一下,修改了配置中的安全模式,safe_mode=On;然后问题迎刃而解。
OK,以上是我解决问题的过程。希望可以帮到广大像我一样的小白。
推荐学习:《PHP视频教程》
以上がphp execが実行できない場合の対処法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。