2016-08-19 36 views
0

だから、イムPHP経由でPythonスクリプトを実行する

exec('C:\\Python27\\python.exe C:\\WEBSITE_DATA\\script.py'); 

スクリプトが機能していると発生し...このコード

exec('C:\Python27\python.exe C:\WEBSITE_DATA\script.py'); 

またはダブルバックスペースとを使用してPHPからPythonスクリプトを実行しようとしています正常に実行されたときに、.pyファイルで問題が発生しないようにしてください。

私はそれはアクセス許可の問題だったら、私はどんなません追いかけることはできませんので

PHPのログにエラーが存在しないだけでチェックするpython27フォルダやウェブサイトのデータフォルダからみんなフルコントロールを許可する権限を変更バグやコードの問題

私はWindowsサーバー2012でIISを実行していますr2これは私の問題ですか?私がしようとしていることは可能なのでしょうか?

可能であれば、私は変数をPHPからPythonに交換して戻すことができますか?

答えて

1

これは非常に悪いことです。それは非常にハッキーで危険な解決策です。これを覚えておいてください。

これは、execではなく、コンソールでコマンドを実行する関数systemを探しているはずです。

phpスクリプトからPythonに変数を転送する方法は複数あります。 MySQLデータベースにデータを書き込んだり、Pythonスクリプトから読み込んだりすることができます。 JSONのすべての変数をphp zipとjson_encode関数を使用してパックし、JSONをディスク上のファイルに保存して、Pythonスクリプトの同じ場所から読み込むことができます。

最も簡単な方法は、しかし、あなたのsystem呼び出しでこれを行うことです。

system("C:\Python27\python.exe /path/to/script.py $a $b $c") 

変数はPythonスクリプトへの引数になりますこの方法です。そこには、ちょうどそのようなsys.argv配列からそれらを読んCA:私は同じことを示唆してバックPHPスクリプトに値を転送するには

import sys 
a = sys.argv[1] # Note that the first argument is [1], not [0] 
b = sys.argv[2] 
... 

- ディスク上のJSONに保存すると、その後の後にPHPスクリプトでこのJSONを読み取り、解析しますPythonスクリプトの実行が終了します。

今、私はあなたにそれを行う方法を教えましたが、あなたは絶対にすべきではありません。 PythonでCGIスクリプトを書くことで、リクエストを処理し、Pythonで最初に書いた作業を行うことができます。詳しくはこちらをご覧ください。https://www.linux.com/blog/configuring-apache2-run-python-scripts

+0

安全な解決策は何でしょうか? –

+0

@k_schultz答えの終わりをチェックして、それを追加しました。 Pythonでスクリプトを書いて、CGIスクリプトにしてみてください。ここでそれを読んでください - https://www.linux.com/blog/configuring-apache2-run-python-scripts –

関連する問題