在尝试解决我的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 /
什么会导致Apache忽略httpd.conf分配的路径?如何更正?
答案 0 :(得分:0)
<强>解决强> 这是苹果公司的一大缺点。
在使用Apache的标题下,OS X服务器文档显示了来自/ Library / WebServer / CGI-Executables /的cgi。果然,有一个CGI-Executables文件夹就在他们应该说的地方。
在OS X Server的帮助模块中,对于cgi info,它会将您链接到.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。