【发布时间】:2017-05-22 10:18:44
【问题描述】:
我正在使用本地网络服务器 (LAMP)。 当使用参数“/script.pypassed_arg[1]passed_arg[2]”运行shell_exec/exec/system时,没有返回值,也没有任何反应。
我通过 chmod 777 消除了权限,并且文件不可读(readdir() 恢复为真)。
我消除了 Apache 配置问题(php.ini disable_functions 没有 shell_exec/exec 并且没有开启安全模式)。
当尝试运行打印 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代码。顺便说一句,更重要的是,当您从命令行调用它时,您的 python 脚本是否可以工作,或者您是否有同样的问题?
标签: php python lamp ros catkin