我尝试使用Python编写的CGI脚本来执行bash脚本,但是它只有在我手动运行Python脚本时才能正常工作。当我通过浏览器运行时,CGI执行返回200,但是bash脚本没有运行。在
这里有一个例子来说明我要做的,但是用两个简单的脚本来解释,好吗?在
cgi脚本是在以下apache目录中创建的,可以毫无问题地访问:
以下是raf的内容_测试.cgi脚本:
#!/usr/bin/python3.5
import subprocess
import cgi, cgitb
cgitb.enable()
print ("Content-type:text/html\r\n\r\n")
command = ['./raf.sh']
subprocess.Popen(command)
在同一个目录中“/var/www/cgi-bin/”一个名为皇家海军创建于: /var/www/cgi-bin/皇家海军
以下是皇家海军脚本:
^{pr2}$注意:在我使用python subprocess模块运行linux命令的测试中,一切都运行得很好,但在本例中,我尝试通过python CGI运行另一个脚本,它不工作,也不显示错误消息。在
你能帮帮我吗?在
好吧,我肯定找到了。在
问题是,在web上运行脚本之前,您先手动运行脚本。在
这导致
"/tmp/rafael.txt"
被创建,由您的用户拥有。{用户已经可以向服务器写入该文件(包括该用户的文件),因为该文件已经存在。在解决方案很简单:删除
"/tmp/rafael.txt"
。那我敢打赌你的剧本很管用。在相关问题 更多 >
编程相关推荐