当我(重新)启动 Apache 时,我不断收到此警告。
* Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]
etc/hosts
这是我的文件的内容:
#127.0.0.1 hpdtp-ubuntu910
#testproject.localhost localhost.localdomain localhost
#127.0.1.1 hpdtp-ubuntu910
127.0.0.1 localhost
127.0.0.1 testproject.localhost
127.0.1.1 hpdtp-ubuntu910
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
/etc/apache2/sites-enabled/000-default
这是我的文件的内容:
<VirtualHost *:80>
ServerName testproject.localhost
DocumentRoot "/home/morpheous/work/websites/testproject/web"
DirectoryIndex index.php
<Directory "/home/morpheous/work/websites/testproject/web">
AllowOverride All
Allow from All
</Directory>
Alias /sf /lib/vendor/symfony/symfony-1.3.2/data/web/sf
<Directory "/lib/vendor/symfony/symfony-1.3.2/data/web/sf">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
当我转到 时http://testproject.localhost
,我看到了一张空白页。
有人能发现我做错什么吗?
答案1
默认情况下,Ubuntu 不会在 Apache 配置中指定 ServerName,因为它不知道你的服务器名称。它会尝试反向查找你的 IP 地址,但不会返回任何结果,因此它只能使用 IP 地址作为服务器名称。
要修复此问题,请添加 ServerName 指令在任何虚拟主机之外- 例如/etc/apache2/httpd.conf
,或为您的主 IP 地址设置反向 DNS 响应 - 在本例中为 127.0.1.1
忽略它也是完全可以的。
答案2
这是一个快速解决方法:
echo ServerName $HOSTNAME > /etc/apache2/conf.d/fqdn
答案3
解决该警告的另一种方法是将完全限定域名放在127.0.1.1
的行上/etc/hosts
。它甚至不必是可以实际解析为 DNS 服务器上任何内容的 fqdn。
127.0.1.1 hpdtp-ubuntu910.lan hpdtp-ubuntu910
可以达到目的,同时还可以保留任何不期望额外 的程序的行为.lan
。顺序很重要;应首先指定具有更多级别的名称,如本例中地址.lan
位于其他地址之前。
答案4
在 httpd.conf 中设置ServerName
对我来说不起作用。我通过设置ServerName 127.0.0.1
来修复它/etc/apache2/conf.d/name
。
我正在运行 Ubuntu 12.10 Alpha3 并且已经ServerName
在两个位置进行了定义。