我正在运行 ArchLinux,最近将 Apache 从 2.2 升级到 2.4,并更新了我的配置(通过手动合并来自新默认配置文件的更改)。我之前运行的 CGI 脚本现在无法运行 - 我可以看到 CGI 脚本的源代码。该脚本是全球可执行的,而且 - 更确切地说 - 自从已知它可以正常工作以来,权限没有改变。
脚本所在的根文件夹在 httpd.conf 中启用了 CGI:
DocumentRoot "/srv/http"
<Directory "/srv/http">
Options Indexes FollowSymLinks ExecCGI Includes
MIME 设置的 .cgi 配置如下:
<IfModule mime_module>
AddHandler cgi-script .cgi
并且 mime_module 正在被加载。
如何让我的 CGI 脚本再次运行?
答案1
你看过了吗http://httpd.apache.org/docs/2.4/upgrading.html?
当我前段时间做同样的事情时,我发现对我来说主要的变化是访问控制,例如:
在此示例中,所有请求都被允许。
2.2配置:
Order allow,deny
Allow from all
2.4配置:
Require all granted
您可能会发现您可以在配置文件中更改此类访问控制。
答案2
显然,当我合并配置时,我设法禁用了 mod_cgi。取消注释以下行:
LoadModule cgid_module modules/mod_cgid.so
成功了。