phpから同じディレクトリ内のpythonプログラムを実行しようと考えています。
get.php内で、test.pyを呼び出すと$output[0]より"test:one"が取得できますが
同様にmain.pyを呼び出すと、$return_verに"1"が出力され、実行されません。
main.pyでは、プログラム上部に本来実行したい処理を記述したままですが、
質問の通り、実行できないため今はmain関数内での呼び出しを抜いています。
そのため、test.pyもmain.pyも"test:one"を出力されるだけのはずが、test.pyの場合しか実行されません。
[試したこと]
・python3及びディレクトリのフルパスを記述
/usr/bin/python3 /var/www/html/test.py及びmain.py
・get.php及びpythonプログラムにすべての権限を与える
[実行環境]
OS:linux (kali)
実行場所:/var/www/html/test.py (apatch2サーバ用のディレクトリ)
PHP
1#get.php 2 3#実行できる 4$command='python3 test.py'; 5#こっちにすると実行できなくなる 6$command='python3 main.py'; 7 8exec($command,$output,$return_ver);
python
1#test.py 2 3print("test:one")
python
1#main.py 2 3####### 4##本来実行したい処理。テスト中のため、main関数では呼び出していない。 5####### 6 7def main(): 8 print("test:one") 9 10main()
あなたの回答
tips
プレビュー