我有一个本地Apache2服务器(安装了LAMP)。Apache2目录是/etc/apache2,我的文档根目录是/var/www。在doc根目录下,有一个/cgi-bin目录,其中有我的脚本cgi.py。使用./cgi.py执行提供了所需的输出,但当我将web浏览器指向文件时,它提供给我下载它的功能。显然,这通常是由于存取问题造成的,但是在向文件中添加a+x权限之后,问题仍然存在。
下面是一个简单的脚本:
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
#enable debugging
import cgitb
cgitb.enable()
print("Content-Type: text/plain;charset=utf-8");
print()
print("Hello World!");在apache2目录的httpd.conf中,我添加了以下内容(它之前是空的):
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory /var/www/cgi-bin/>
Options ExecCGI
AddHandler cgi-script .cgi .py
</Directory>脚本不执行的原因是什么?
编辑:菜鸟错误,我没有重新启动服务器后,对httpd.conf进行了更改。完成之后,脚本执行。感谢詹妮·D的建议。
发布于 2013-02-20 11:07:45
服务器只会在启动时读取它的配置文件,或者当您特别告诉它重新加载它时。更改httpd.conf后,您需要重新启动服务器或重新加载配置(通过运行apachectl restart或运行service httpd reload,或根据操作系统/安装程序的不同而进行其他操作)。
如果您希望在不重新启动服务器的情况下重新读取配置,则会出现htaccess。但是,因为这意味着apache将重新检查每个连接的文件,这将使服务器慢一点。当然,这是否是一个问题将取决于服务器必须从多大的负载开始。
https://serverfault.com/questions/480606
复制相似问题