Apache 忽略 httpd.conf 分配的路径

Apache ignoring httpd.conf assigned path

在尝试解决我的 cgi-bin 上的路径错误时,我发现 Apache 在错误的位置寻找它。

错误日志显示: 脚本未找到或无法统计:/Library/Server/Web/Data/CGI-Executables

但是我的 httpd.conf 文件有:

ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/"

    <Directory "/Library/WebServer/CGI-Executables">
        AllowOverride None
        Options None
        Require all granted
    </Directory>

默认情况下,这些路径在 httpd.conf 中。 httpd.conf

中没有对 /Library/Server/Web/Data 的任何引用

如果我将整个 CGI-Executables 目录移动到 /Library/Server/Web/Data/ 一切正常。很好,但我希望它是 /Library/WebServer/

什么会导致 Apache 忽略 httpd.conf 分配的路径,我该如何更正它?

已解决 这是苹果的一大短板。

在使用 Apache 的标题下,OS X 服务器文档显示 cgi 是从 /Library/WebServer/CGI-Executables/ 提供的。果然,他们说应该有一个 CGI-Executables 文件夹。

在 OS X Server 的帮助模块中,对于 cgi 信息,它将您链接到有关 .htaccess 文件的 Apache 教程。在那里你可以学习编辑 htaccess 来为 Apache 提供你想要的路径。但它永远不会起作用。

Apple 从未公开分享的是 OS X Server 有它自己的特殊配置文件:httpd_server_app.conf。您可以在 /Library/Server/Web/Config/apache2/ 内的阅读 Me.txt 中找到有关它的信息。这是我找到的对 httpd_server_app.conf 的唯一引用,也是对 non-existant /Library/Server/Web/Data/CGI-Executables 目录的唯一引用。

因此,OS X 服务器上 cgi-bin URL 的解决方案是为您的 cgi 脚本创建一个新文件夹 /Library/Server/Web/Data/CGI-Executables。或者编辑 cgi ScriptAlias 和 Directory 路径以匹配您喜欢的内容,例如 Apple 在其他地方引用的 /Library/WebServer/CGI-Executables。