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 分配的路径的主要内容,如果未能解决你的问题,请参考以下文章