ホームページ > バックエンド開発 > PHPチュートリアル > PHP exec() 関数が機能しないのはなぜですか?

PHP exec() 関数が機能しないのはなぜですか?

Linda Hamilton
リリース: 2024-12-14 21:37:19
オリジナル
681 人が閲覧しました

Why Isn't My PHP exec() Function Working?

PHP の exec() 関数のトラブルシューティング

exec() 関数に関する問題に直面すると、特に結果が何も得られない場合にイライラすることがあります。明らかな結果。この記事では、このような問題のデバッグと解決に役立つ包括的なガイドを提供します。

問題:
セーフモードとセーフモードが無効になっているにもかかわらず、exec() 関数はサーバー上でコマンドの実行に失敗します。コンソールコマンドの機能を確認します。アプリケーションの権限は正しく設定されています。

コード スニペット:
次のコード スニペットが試行されました:

echo exec('/usr/bin/whoami');

echo exec('whoami');

exec('whoami 2>&1',$output,$return_val);
if($return_val !== 0) {
    echo 'Error<br>';
    print_r($output);   
}

exec('/usr/bin/whoami 2>&amp;1',$output,$return_val);
if($return_val !== 0) {
    echo 'Error<br>';
    print_r($output);   
}
ログイン後にコピー

最後の 2 つのコード スニペットには、エラーと空の配列。サーバー サポートはサポートできませんでした。

解決策:

  1. disable_functions を確認してください:

    • /etc/php.ini に移動し、exec がその下にリストされているかどうかを確認します。 disable_functions.
    • 存在する場合は、削除して Apache を再起動します。
  2. デバッグ モードを有効にする:

    • デバッグを簡単にするには、次を使用します。コード:

      #!/usr/bin/php
      ini_set("display_errors", 1);
      ini_set("track_errors", 1);
      ini_set("html_errors", 1);
      error_reporting(E_ALL);
      ログイン後にコピー
    • スクリプトを手動で実行します: chmod x myscript.php および ./myscript.php.
  3. 権限問題:

    • 簡単なコマンド (例: echo "hello world") を実行する bash スクリプトを作成します。
    • chmod 755 を使用してファイルとフォルダーのアクセス許可を設定します。
    • を実行してみますスクリプト。

以上がPHP exec() 関数が機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート