我在找到解决方案之后编辑了这个问题...我需要理解为什么解决方案有效而不是我的方法?
这可能是一个愚蠢的问题。我试着搜索其他相关的问题......但无济于事。
我正在使用Suhosin-Patch mod_python / 3.3.1 Python / 2.6.2运行Apache / 2.2.11(Ubuntu)DAV / 2 SVN / 1.5.4 PHP / 5.2.6-3ubuntu4.5
我有一个名为test.py的脚本
#! /usr/bin/python
print "Content-Type: text/html" # HTML is following
print # blank line, end of headers
print "hello world"
将其作为可执行文件运行...
/var/www$ ./test.py
Content-Type: text/html
hello world
当我运行http://localhost/test.py时,我收到404错误。
我缺少什么?
我使用此资源在apache上启用python解析。 http://ubuntuforums.org/showthread.php?t=91101
从同一个线程......下面的代码工作.. 为什么? #!的/ usr / bin中/ Python的
import sys
import time
def index(req):
# Following line causes error to be sent to browser
# rather than to log file (great for debug!)
sys.stderr = sys.stdout
#print "Content-type: text/html\n"
#print """
blah1 = """<html>
<head><title>A page from Python</title></head>
<body>
<h4>This page is generated by a Python script!</h4>
The current date and time is """
now = time.gmtime()
displaytime = time.strftime("%A %d %B %Y, %X",now)
#print displaytime,
blah1 += displaytime
#print """
blah1 += """
<hr>
Well House Consultants demonstration
</body>
</html>
"""
return blah1
答案 0 :(得分:4)
我认为mod_python的Publisher Handler期望在test.py中找到index
函数。
你可以通过将它放在URL的末尾来调用test.py中的任何函数,例如: http://localhost/test.py/any_func
,如果没有给出,则默认函数为index
。
答案 1 :(得分:0)
如果您希望代码按原样运行,您还可以将Web服务器配置为使用.pl作为cgi脚本而不是使用mod_python.publisher
在apache config上:
AddHandler cgi-script .py
如果您不想要错误403,请编辑:
<Directory /path/to/www/yourfile.py>
Options +ExecCGI
</Directory>