我正在尝试让 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.
将您声明的
ScriptAlias
和 <Directory>...</Directory>
指令放置在 VirtualHost
标签块的 inside中;您上面的文件目前已将它们声明为服务器范围内的文件,因为它们位于服务器范围之外。
ScriptAlias
重叠警告是由 ScriptAlias /cgi-bin/
在 Apache 启动时已在配置文件中在服务器范围内声明而引起的。
我发现反转别名似乎可以消除错误。
所以,不要使用:
ScriptAlias /cgi-bin/ /var/www/mypage.com/cgi-bin/
,尝试更改为
ScriptAlias /var/www/mypage.com/cgi-bin/ /cgi-bin/
.