尝试在我的笔记本电脑上配置apache,以便为一个小任务执行python脚本:
我在根目录中创建了一个ScriptAlias /scripts/ /scripts/
选项+ExecCGI FollowSymLinks索引MultiViews AllowOverride All Order允许,拒绝允许从AddHandler cgi-script .py
我试图运行的脚本是(一个示例python测试脚本):
#!/usr/bin/python
print "Content-type: text/html"
print
print "<pre>"
import os, sys
from cgi import escape
print "<strong>Python %s</strong>" % sys.version
keys = os.environ.keys()
keys.sort()
for k in keys:
print "%s\t%s" % (escape(k), escape(os.environ[k]))
print "</pre>"
当我通过http://127.0.0.1/scripts/results.py访问它时,我得到了一个内部服务器错误,并且在我的错误日志中我得到了以下错误:
Mon 05 20:58:30 2011 client 127.0.0.1没有这样的文件或目录: exec of‘/script/Result.py’失败
2011年12月20日:58:30客户端127.0.0.1脚本头提前结束: result.py
Apache在运行apachectl -v时确实加载了suexec模块,并怀疑这可能与问题有关。
此外,运行/usr/bin/python /script/Result.py也很好,但是由于apache在不同的用户下运行,所以这并不意味着什么。
另外,我在OSX上运行这个程序,在调试过程中,我找不到如何从cli作为apache运行脚本。
任何帮助都将不胜感激。
发布于 2011-12-05 19:11:33
我无法访问OSX,但我可能会尝试这样的方法:
ScriptAlias /cgi-bin/ "/scripts/"
<Directory "/scripts">
Options +ExecCGI FollowSymLinks Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
AddHandler cgi-script .py
</Directory>
https://stackoverflow.com/questions/8394680
复制