在尝试启用 suexec 模块的过程中,我开始收到这些警告(当我重新启动 apache 时)。我在启用和禁用 suexec 时收到它们:
* Restarting web server apache2
[Wed Oct 05 01:29:40 2011] [warn] NameVirtualHost 12.345.67.89:443 has no VirtualHosts
... waiting [Wed Oct 05 01:29:41 2011] [warn] 12.345.67.89:443 has no VirtualHosts
...done.
我正在运行 Ubuntu 10.04、Apache2.2、PHP、MYSQL...
我正在通过 https:// 运行一个带有签名证书、ssl 等的站点,以及其他几个非加密站点。以前运行正常,但现在(因为我在尝试启用 suexec 后重新启动了服务器)我收到了上述错误。如果启用了 *:443 虚拟主机,apache 将不会重新启动,也不会提供任何服务。如果我禁用 *:443 虚拟主机,apache 将不是重新启动,并且不会为我托管的任何域提供服务。
除了 suexec 配置(通过命令行)之外,我唯一弄乱的是启用 ssl 的域的 sites-enabled 配置文件,它如下所示:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /srv/www/mysite.com/public_html/
ErrorLog /srv/www/mysite.com/logs/error.log
CustomLog /srv/www/mysite.com/logs/access.log combined
</VirtualHost>
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/mysite.com.crt
ServerAdmin [email protected]
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /srv/www/mysite.com/public_html/
ErrorLog /srv/www/mysite.com/logs/error.log
CustomLog /srv/www/mysite.com/logs/access.log combined
</VirtualHost>
无论如何,我不确定这里发生了什么,但我不愿意深入研究其他 apache / ssl 配置,因为我没有在那里改变任何东西,而且之前一切都正常。
我困惑了。
编辑
更多信息:
/etc/apache2/ports.conf:
Listen 12.345.67.89:80
<IfModule mod_ssl.c>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
NameVirtualHost 12.345.67.89:443
/etc/apache2/sites-enabled/000-default
没有提到端口 443
...也没有/etc/apache2/sites-available/default
答案1
这警告因为你定义了一个NameVirtualHost
为12.345.67.89:443
但没有<VirtualHost 12.345.67.89:443>
。因此,改为NameVirtualHost *:443
,它就会消失。