ローカルWebサーバー(LAMP)を使用しています。 パラメータ "/script.py passed_arg [1] passed_arg [2]"を指定してshell_exec/exec/systemを実行すると、戻り値はなく、何も起こりません。PHPからPythonスクリプトを実行できません
私はchmod 777によってアクセス許可を取り除きました。読み取り不可能なファイル(readdir()が本当に戻ってきました)。
私はApacheの設定上の問題を取り除きました(php.ini disable_functionsにはshell_exec/execとsafemodeがありません)。
helloを印刷する別のスクリプトを実行しようとすると、すべて正常に動作します。
スクリプトのコンテンツに問題があると思います。 ROSでcatkinワークスペースを使用していますが、スクリプトを/ var/www/html /にコピーしても機能しません(端末で同じコマンドを実行すると問題はありません)。
すべてのrosコマンド(特に 'import rospy')をコメントアウトすると、残っているものはすべて動作します。
スクリプトの内容:
#!/usr/bin/env python
## Simple talker demo that published std_msgs/Strings messages
## to the 'chatter' topic
import sys
import rospy
from std_msgs.msg import String
def talker():
X_Coordinate = float(sys.argv[1])
Y_Coordinate = float(sys.argv[2])
Guest_First_Name = sys.argv[3]
Guest_Last_Name = sys.argv[4]
Office_Name = sys.argv[5]
pub = rospy.Publisher('chatter', String, queue_size=10)
rospy.init_node('talker', anonymous=True)
rate = rospy.Rate(10)
hello_str = "go_to "+ str(X_Coordinate)+" "+str(Y_Coordinate)+" "+Guest_First_Name+" "+Office_Name
rospy.loginfo(hello_str)
pub.publish(hello_str)
rate.sleep()
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
スクリプトを実行するPHPコードはどこにありますか? –
/var/www/html/ 上記のスクリプトを保持しているのと同じディレクトリ –
私はあなたがpythonスクリプトを呼び出すために使用しているPHPコードを_show_する必要があることを意味します。 Btw、もっと重要なのは、コマンドラインからPythonスクリプトを呼び出すか、同じ問題があるのでしょうか? –