Python网页脚本在Apache上无法运行

0 投票
2 回答
2066 浏览
提问于 2025-04-18 14:18

我正在尝试开始学习用Python进行网页编程,但遇到了一些问题。我想使用CGI。为了这个,我在我的电脑上(Linux系统)安装了Ampps网页服务器。根据这个说明Apache教程:使用CGI生成动态内容,我把我的文件index.pl放在了'/usr/local/ampps/www/cgi-bin'这个文件夹里,然后尝试访问它。

http://localhost/cgi-bin/index.py 

这是我文件的代码:

#!/usr/local/ampps/python/bin/python
print "Content-type: text/html\n\n" 
print "Hello World from PythonStandard Hello World from a Python"

但是它给我提示错误:抱歉,您要访问的页面当前不可用。

这是Apache的错误日志:

[Tue Jul 22 20:05:45.019799 2014] [cgi:error] [pid 11952] [client 127.0.0.1:38359] AH01215: (13)权限被拒绝:执行'/usr/local/ampps/www/cgi-bin/index.py'失败 [Tue Jul 22 20:05:45.020262 2014] [cgi:error] [pid 11952] [client 127.0.0.1:38359] 脚本输出在头部之前结束:index.py

我已经修正了Apache的配置

AddHandler cgi-script .cgi .pl .py

看起来也没问题

LoadModule cgi_module modules/mod_cgi.so
ScriptAlias /cgi-bin/ "{$path}/www/cgi-bin/"

那还有什么可能出错呢?

2 个回答

0

我之前也遇到过类似的错误。看起来AMPPS安装的Python缺少一个DLL文件。我从ActiveState下载了2.7版本的.msi安装包并进行了安装。

在开始之前,有几点需要注意:位置和权限。

我可能说错了,但Apache会在AMPPS安装时为Python创建的目录中寻找Python可执行文件,路径是c:\whatever\whatever\ampps\python。我尝试把它安装在c:\whatever\whatever\ampps\python2.7,但没有成功。我本可以编辑httpd.conf文件,但因为原来的安装反正也不工作,所以我直接覆盖了c:\w\w\ampps\python的文件。

我还以管理员身份运行了.msi文件。这有点麻烦,因为我公司的电脑不允许我直接右键点击.msi文件选择“以管理员身份运行”。最后,我进入了任务管理器(这里有个选项8:http://www.eightforums.com/tutorials/9564-run-administrator-windows-8-a.html),把下载文件的完整路径放进去。然后,成功了,“你好,世界”。

1

你的脚本需要设置为可执行状态(可以用 chmod 命令来设置),而且运行这个脚本的Apache用户或组(通常叫做'Apache'或者'www-data',具体名字取决于你使用的系统版本 - 你可以查看 /etc/passwd 文件来确认)必须对这个脚本有'执行'的权限。

撰写回答