PHP から Python スクリプトをシームレスに実行する
PHP を使用して Python スクリプトを実行するには、exec、shell_exec、system などのいくつかの方法が使用できます。 。ただし、PHP で exec('/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2') を使用すると、エラー報告を E_ALL に設定し、display_errors を有効にしても、出力が生成されないことがあります。
この問題をトラブルシューティングするには、Web サーバー ユーザーが Python スクリプトとその関連コマンドにアクセスして実行するために必要な権限を持っていることを確認することが重要です。具体的には、Python ファイルには実行権限が必要であり、すべての内部コマンドにも適切な権限が設定されている必要があります。
shell_exec による問題の解決
Ubuntu Server 10.04 は証明します。このソリューションに適した環境であること。 PHP のshell_exec 関数を利用すると、コマンドを実行し、出力を文字列として返すことができます。次の PHP コード スニペットは、このアプローチの例を示しています。
$command = escapeshellcmd('/usr/custom/test.py'); $output = shell_exec($command); echo $output;
Python スクリプトにおける Shebang 行の重要性
Python スクリプト (test.py) は、次の行は、正しいインタープリタが呼び出されることを確認するためのものです:
#!/usr/bin/env python
この行$PATH 環境変数で指定された Python インタープリタを使用するようにシステムに指示し、インストールされているさまざまな Python バージョンとの互換性を確保します。
Unix ベースのプラットフォームで test.py スクリプトを実行可能にするには、次のコマンドを実行します。
chmod +x myscript.py
ファイルとコマンドの実行権限
は別にPython スクリプトの実行権限を設定することと同様に、Web ユーザー (通常は www-data/apache) にファイルとその内部コマンドの両方に対する実行権限を付与することが重要です。そうしないと、スクリプトが正しく実行されなくなる可能性があります。
以上が私の PHP コードが Python スクリプトを実行しないのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。