ホームページ >バックエンド開発 >PHPチュートリアル >PHP から Python スクリプトを正常に実行するにはどうすればよいですか?

PHP から Python スクリプトを正常に実行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-24 04:00:09362ブラウズ

How Can I Successfully Run a Python Script from PHP?

PHP からの Python スクリプトの実行

PHP には、exec、shell_exec、system などの外部コマンドを実行するための関数がいくつか用意されています。ただし、これらの関数を使用して Python スクリプトを実行しようとすると、問題が発生する可能性があります。

トラブルシューティング:

この問題を解決するために、次のようなさまざまな解決策を試みました。

  • 異なる Python インタプリタの使用
  • 両方の絶対的なインタプリタを使用するおよび相対パス
  • 他のコマンド (echo など) を使用したテスト

しかし、PHP は依然として出力を生成しないことに気づきました。

解決策:

問題は PHP ではなく権限にある可能性があります。通常、Web サーバーは制限されたユーザー権限で実行され、特定のコマンドの実行やファイルへのアクセスが制限される場合があります。

  1. Web サーバー ユーザーとしてログインします:

ウェブサーバーを実行しているユーザーとしてサーバーにログインします (例: www-data).

  1. コマンドをテストします:

PHP で実行しようとしているコマンドを使用して、 Webサーバーユーザーとして端末を操作します。例:

/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2

コマンドが手動で機能する場合、問題は権限にあることが確認されます。

  1. 権限の確認:

PHP スクリプトと Python スクリプトに正しい権限があることを確認してください。 PHP には PHP スクリプトの実行権限が必要で、Python スクリプトには Web サーバー ユーザーの実行権限が必要です。

  1. shell_exec を使用します:

PHP の shell_exec 関数は、通常、exec や system よりも外部コマンドの実行の信頼性が高くなります。実行されたコマンドからの完全な出力が返されます。次のコードを使用します:

$command = escapeshellcmd('/usr/custom/test.py');
$output = shell_exec($command);
echo $output;
  1. Python ファイルのシバン行を確認します:

Python ファイルの最初の行に次の内容が含まれていることを確認します。 shebang 行:

#!/usr/bin/env python

この行は、Python インタープリターを指定します。 use.

  1. Python ファイルを実行可能にする:

必要に応じて、以下を使用して Python ファイルを UNIX タイプのプラットフォームで実行可能にします:

chmod +x myscript.py

以上がPHP から Python スクリプトを正常に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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