当我(重新)启动 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
,我得到一个空白页。
谁能发现我做错了什么?
默认情况下,Ubuntu 不会在 Apache 配置中指定 ServerName,因为它不知道您的服务器的名称是什么。它尝试对您的 IP 地址进行反向查找,但没有返回任何内容,因此它只需使用 IP 地址作为ServerName。
要修复它,请在任何虚拟主机之外添加 ServerName 指令- 例如 in
/etc/apache2/httpd.conf
,或为您的主 IP 地址设置反向 DNS 响应 - 在本例中为 127.0.1.1忽略它也很好。
这是一个快速修复:
绕过该警告的另一种方法是将完全限定的域名放在
127.0.1.1
./etc/hosts
它甚至不必是实际上可以解析为 dns 服务器上的任何内容的 fqdn。会做到这一点,同时还保留任何不期望额外的程序的行为
.lan
。顺序很重要;应首先指定具有更多级别的名称,如本例中.lan
地址位于另一个地址之前。此解决方案适用于我的开发需求:
背景:
Debian Linux Sid:
虚拟主机开发:我有 10 个服务器名称(站点内有 10 个虚拟主机条目)
我在里面为每个人分配了一个唯一的本地主机 IP 地址
/etc/hosts
:如果您要添加另一个虚拟主机(我有很多用于开发)添加一个条目到另一个本地主机 IP 地址,并在重新启动 Apache 2.2 之前启用该站点:
对于要启用为 VirtualHost 文件的每个条目:
/etc/apache2/sites-available/
joe joomla 学校 forrest store 出版商工作室 drupal 图形 wordpress
所有虚拟主机都通过 a2ensite/a2dissite主机名启用/禁用
抑制错误
在[Debian 中的空文件] 中编辑httpd.conf :
/etc/apache2/httpd.conf
然后为您添加、注释掉或禁用的所有名称解析查找。
如果您忘记了:唯一的 VirtualHost *:80 条目只需要在ports.conf文件中,
/etc/apache2/ports.conf
在您的 VirtualHost 条目中省略VirtualHost *:80
示例:虚拟主机乔
httpd.conf 中的设置
ServerName
对我不起作用。ServerName 127.0.0.1
我通过设置来修复它/etc/apache2/conf.d/name
。我正在运行 Ubuntu 12.10 Alpha3 并
ServerName
在两个位置都进行了定义。来源: http: //linuxconfig.net/manual-howto/error-solution-could-not-reliably-determine-the-servers-fully-qualified-domain-name.html
您缺少服务器配置级别的 ServerName 条目。您需要在任何主机之外都有一个 ServerName 条目,Apache 才能将其用作默认值。
将 ServerName 条目放在 VirtualHost 中不会解决问题。请参阅ServerName 指令。
要修复它,我们需要编辑 /etc/apache2/httpd.conf 或 /etc/apache2.conf 并添加以下行:
我相信您需要
ServerName
为默认虚拟主机添加。由于它不存在,因此它采用默认 IP 地址。这是一种警告。我猜你的网络服务器仍然可以正常工作。您必须使用以下步骤在httpd.conf文件中添加 ServerName
默认情况下
httpd.conf
,文件将为空白。现在,只需将以下行添加到文件中。保存文件并退出
gedit
。最后重启服务器。2)
Include httpd.conf
在末尾添加apache2.conf
如果安装后您的 etc/apache2 目录中不存在 httpd.conf 文件,则主 apache 配置文件 apache2.conf 将不会引用它,因此向创建的 httpd.conf 添加任何内容都不会做任何事物。您可以简单地将“ServerName 主机名”行添加到 apache2.conf 文件中。