我只是想知道是否有可能在Apache上从CGI脚本运行系统调用。下面是代码的一部分:
print "<input type = 'submit' value = 'Launch Job!'>"
print "</form>"
print "</body>"
print "</html>"
system('command')我正尝试在托管网页的同一台计算机上运行此命令。问题是,当此函数执行时,命令不能成功运行。我尝试在开始时添加sudo,尝试os.system('command') all都没有用。
那么,这是可能的吗?
发布于 2012-05-11 05:27:15
命令将以nobody用户身份运行,并且只有很少的权限。
发布于 2019-11-30 11:23:18
尝试子流程
#!/usr/bin/python
import subprocess
a = subprocess.check_output(["date"]) # this is your command
#print os_date
print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word!</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! Today is: %s</h2>' % a
print '</body>'
print '</html>'如果服务器出现500错误,请尝试cgi
#!/usr/bin/python
try:
import cgitb; cgitb.enable()
except:
pass
import sys, cgi, os
sys.stderr = sys.stdout
from time import strftime
import traceback
from StringIO import StringIO
from traceback import print_exc
if __name__ == '__main__':
print "Content-type: text/html"
print
form = cgi.FieldStorage()
thecmd = "python yourscript.py" # this is your command
if thecmd:
print '<HR><BR><BR>'
print '<B>Command : ', thecmd, '<BR><BR>'
print 'Result : <BR><BR>'
try:
child_stdin, child_stdout = os.popen2(thecmd)
child_stdin.close()
result = child_stdout.read()
child_stdout.close()
print result.replace('\n', '<BR>')
except Exception, e:
print errormess
f = StringIO()
print_exc(file=f)
a = f.getvalue().splitlines()
for line in a:
print linehttps://stackoverflow.com/questions/10542342
复制相似问题