尝试在我的笔记本电脑上配置apache以执行一个小任务的python脚本:
ScriptAlias /scripts/ /scripts/
在我的conf文件中添加了目录句柄:
选项+ ExecCGI FollowSymLinks索引MultiViews AllowOverride All 订单允许,拒绝 允许所有人 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访问它时出现内部服务器错误,在我的错误日志中出现以下错误:
[2011年12月5日星期一20:58:30] [错误] [客户端127.0.0.1](2)没有这样的文件或目录:'/scripts/result.py'的exec失败
[Mon Dec 05 20:58:30 2011] [错误] [client 127.0.0.1]脚本标题过早结束:result.py
Apache确实从我在运行apachectl -v时发现的suexec模块加载,并怀疑这可能与此问题有关。
同样运行/ usr / bin / python /scripts/result.py执行正常,但由于apache在不同的用户猜测下运行,这并不意味着什么。
此外,我在OSX Lion上运行此操作,在调试过程中,我无法找到如何从cli运行脚本作为apache。
任何帮助都将不胜感激。
答案 0 :(得分:0)
我无法访问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>