Apache 忽略 httpd.conf 分配的路径

Posted

技术标签:

【中文标题】Apache 忽略 httpd.conf 分配的路径【英文标题】:Apache ignoring httpd.conf assigned path 【发布时间】:2015-02-01 17:17:35 【问题描述】:

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

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

但我的 httpd.conf 文件有:

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

    <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/

什么会导致 ,我该如何纠正它?

【问题讨论】:

【参考方案1】:

已解决 这是苹果公司的一大缺点。

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

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

Apple 永远不会分享的是 OS X Server 有它自己的特殊配置文件:httpd_server_app.conf。您可以在 /Library/Server/Web/Config/apache2/ 内的 Read Me.txt 中找到有关它的信息。这是我找到的对 httpd_server_app.conf 的唯一引用,它是对不存在的 /Library/Server/Web/Data/CGI-Executables 目录的唯一引用。

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

【讨论】:

以上是关于Apache 忽略 httpd.conf 分配的路径的主要内容,如果未能解决你的问题,请参考以下文章

Apache conf VirtualHost 被忽略

Mac 下 MAMP配置虚拟主机

apache用户认证

Apache的主配置文件:/etc/httpd/conf/httpd.conf

Apache 默认在哪里安装 httpd.conf?

apache httpd.conf