新手Apache / Python错误

时间:2011-12-06 02:33:28

标签: python macos apache

尝试在我的笔记本电脑上配置apache以执行一个小任务的python脚本:

  • 我在root中创建了一个/ scripts文件夹并将其授予了所有权限777。
  • 在我的虚拟主机文件中,我添加了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。

任何帮助都将不胜感激。

1 个答案:

答案 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>