我有一个本地Apache2服务器(安装LAMP)。 Apache2目录是/etc/apache2
,我的文档根目录是/var/www
。 在doc根目录下,有一个/cgi-bin
目录,其中包含我的脚本cgi.py
使用./cgi.py
执行所需的输出,但是当我将浏览器指向文件时,它会提供给我下载。 显然,这通常是由于访问问题 ,但是在向文件添加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
变化。 这样做后,脚本执行。 感谢Jenny D提出的build议。
服务器将只在启动时读取其configuration文件,或者当您明确告诉它重新加载它时。 更改httpd.conf后,需要重新启动服务器或重新加载configuration(通过运行apachectl restart
,或通过运行service httpd reload
或其他操作系统/安装程序)。
如果你想有一个重新读取configuration,而不重新启动服务器,有htaccess 。 但是,由于这意味着apache会重新检查每个连接的文件,这会使服务器的速度变慢。 这是否是一个问题当然要取决于服务器开始的负载有多大。