Alias 指令可能永远不会匹配,因为它与早期的 Alias 重叠

问题描述 投票:0回答:2

我正在尝试让 cgi 在我的本地主机服务器上工作。
首先我添加了虚拟本地主机。
我有conf文件/etc/apache2/sites-available/myage.com.conf 这是该文件的内容。

<VirtualHost *:80>
        ServerName mypage.com
        ServerAlias www.mypage.com
        ServerAdmin [email protected]
        DocumentRoot /var/www/mypage.com/public_html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
ScriptAlias /cgi-bin/ /var/www/mypage.com/cgi-bin/
<Directory "/var/www/mypage.com/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

我在重新启动 apache2 服务时遇到错误

 [Fri Jan 16 09:06:12.422793 2015] [alias:warn] [pid 12733] AH00671: The ScriptAlias directive in /etc/apache2/sites-enabled/mypage.com.conf at line 31 will probably never match because it overlaps an earlier ScriptAlias.
php apache localhost cgi
2个回答
6
投票

将您声明的

ScriptAlias
<Directory>...</Directory>
指令放置在 VirtualHost 标签块的
inside
中;您上面的文件目前已将它们声明为服务器范围内的文件,因为它们位于服务器范围之外。

ScriptAlias
重叠警告是由
ScriptAlias /cgi-bin/
在 Apache 启动时已在配置文件中在服务器范围内声明而引起的。


0
投票

我发现反转别名似乎可以消除错误。

所以,不要使用:

ScriptAlias /cgi-bin/ /var/www/mypage.com/cgi-bin/
,尝试更改为

ScriptAlias /var/www/mypage.com/cgi-bin/ /cgi-bin/
.

© www.soinside.com 2019 - 2024. All rights reserved.