ホームページ  >  記事  >  バックエンド開発  >  PHP実行エラーの問題を解決する方法

PHP実行エラーの問題を解決する方法

藏色散人
藏色散人オリジナル
2022-01-28 10:43:053222ブラウズ

php exec エラーの解決策: 1. ping または対応するコマンドの実行権限を変更します; 2. コマンドのフルパスを「exec('/usr/sbin',$output);」で完成させます。 ; 3. 対象ディレクトリを環境変数に追加します。

PHP実行エラーの問題を解決する方法

#この記事の動作環境:Windows7 システム、PHP7.1 バージョン、DELL G3 パソコン

php の解決方法実行エラーの問題?

PHP の exec() 関数はシステム コマンドの実行に失敗しますか?
0. 説明

phpでは、

exec()を使用してシステムコマンドを実行できますが、時々、exec()##が発生することがあります。 #コマンドの実行が失敗した場合、またはリターンがありません 以下に説明します: 1. 関数

  exec ( string $command [, array &$output [, int &$return_var ]] ) : string
  参数说明:
  1.$command   要执行的命令
  2.$output  执行结果
  3.$return_var 若同时设置 $output 和此变量,命令执行后的返回状态会被写入到此变量

2. 例

  exec("ping www.baidu.com", $output);

正常に実行された場合 結果は次のようになります。

ping

はサーバー上で直接実行するのと同じですが、特定の理由により予期しない状況が発生する可能性があります。以下に 2 つの状況と解決策について説明します。2.1 権限の問題

質問

Linux システム コマンドをサーバー上で直接実行する場合 (ここでは ping を例にします)、実行権限はログイン ユーザーの権限に依存します。

root
の場合、ping が root として実行されます。しかし、Web サイトにアクセスすると、この時のユーザーは www なので、ping の実行権限を変更しないと正常に実行されません。 解決策

pingまたは対応するコマンドの実行権限を変更する

2.2 コマンドパスの問題
問題

別の状況もありますexec を使用してコマンドを実行すると、エラーは報告されず、結果も返されません。その理由は、このコマンドが環境変数で設定されたディレクトリ、つまり

/etc/profile## にないためです。
#ifconfig## で終わるファイル #たとえば、whereis ifconfig を使用して、このコマンドの特定のパスを確認できます。たとえば、パスは /usr/sbin の下にあります。 . 解決策は 2 つあります: 解決策 1 コマンドを環境変数の下のディレクトリである
/usr/bin

にコピーします (推奨されません)。

2 コマンドの完全なパスを直接入力します。
exec( '/usr/sbin',$output);(推奨)3 ターゲット ディレクトリを環境変数に追加します。たとえば、次のようになります。
/usr/sbin をディレクトリに追加します
推奨される学習: "PHP ビデオ チュートリアル
"

以上がPHP実行エラーの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。