当我(重新)启动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不会在Apacheconfiguration中指定ServerName,因为它不知道服务器的名称。 它会尝试在您的IP地址上进行反向查找,而不会返回任何内容,因此只需使用IP地址作为ServerName即可 。
要解决这个问题,可以在任何虚拟主机之外添加一个ServerName指令 – 例如在/etc/apache2/httpd.conf
,或者为主IP地址设置一个反向DNS响应 – 在这种情况下,127.0.1.1
同样忽略它也是完美的。
这是一个快速修复:
echo ServerName $HOSTNAME > /etc/apache2/conf.d/fqdn
解决此警告的另一方法是在/etc/hosts
的127.0.1.1
行中放置完全限定的域名。 它甚至不需要是一个真正解决dns服务器上任何事情的fqdn。
127.0.1.1 hpdtp-ubuntu910.lan hpdtp-ubuntu910
会做的伎俩,同时还保留任何程序的行为,不期望额外的.lan
。 顺序是重要的; 应该首先指定更多级别的名称,如本例中的.lan
地址位于另一个地址之前。
该解决scheme适用于我的开发需求:
背景:
Debian Linux Sid:
VirtualHost开发:我有10个服务器名称(站点内的10个虚拟主机条目 – 可用)
我在/etc/hosts
里为每个人分配一个唯一的本地主机IP地址:
127.0.0.1 joe localhost.localdomain localhost 127.0.1.1 joe 127.0.1.2 joomla 127.0.1.3 schmoo 127.0.1.4 forrest 127.0.1.5 store 127.0.1.6 publisher 127.0.1.7 studios 127.0.1.8 drupal 127.0.1.9 graphics 127.0.1.10 wordpress ... The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
如果您要添加另一个虚拟主机(我有很多开发工具),请将条目添加到另一个本地主机IP地址,并在重新启动Apache 2.2之前启用该站点:
127.0.0.11 *newhost*
对于您想要作为VirtualHost文件启用的每个条目:
在/ etc / apache2的/网站可用/
joe joomla schoo forrest商店出版工作室drupalgraphicswordpress
所有虚拟主机通过a2ensite / a2dissite 主机名启用/禁用
为了压制这个错误
重新启动Web服务器:apache2apache2:无法可靠地确定服务器的完全限定的域名,使用ServerName的127.0.0.1 …正在等待apache2:无法可靠地确定服务器的完全限定的域名,使用ServerName的127.0.0.1“
编辑/etc/apache2/httpd.conf
httpd.conf [Debian中的空文件]:
ServerName 127.0.1.1
然后查找所有添加的名称, 注释掉或禁用该行。
万一你忘记了:唯一的VirtualHost *:80条目只需要位于ports.conf文件中,
/etc/apache2/ports.conf
**NameVirtualHost *:80** Listen 80 <IfModule mod_ssl.c> # If you add NameVirtualHost *:443 here, you will also have to change # the VirtualHost statement in /etc/apache2/sites-available/default-ssl # to <VirtualHost *:443> # Server Name Indication for SSL named virtual hosts is currently not # supported by MSIE on Windows XP. Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule>
在您的VirtualHost条目中,不要留下VirtualHost *:80
例如:virtualhost joe
<VirtualHost *:80> **ServerAlias joe** **...** </VirtualHost>
在httpd.conf中设置ServerName
不适用于我。 我通过在/etc/apache2/conf.d/name
设置ServerName 127.0.0.1
来修复它。
我正在运行Ubuntu 12.10 Alpha3并在两个位置都定义了ServerName
。
资料来源: http : //linuxconfig.net/manual-howto/error-solution-could-not-reliably-determine-the-servers-fully-qualified-domain-name.html
您缺less服务器configuration级ServerName条目。 您需要在任何主机之外有一个ServerName条目,以供Apache用作其默认值。
将一个ServerName条目放入一个VirtualHost内不会解决问题。 请参阅ServerName指令 。
为了解决这个问题,我们需要编辑/etc/apache2/httpd.conf或者/etc/apache2.conf并添加下面一行:
ServerName nameofserver
我相信你需要为默认的虚拟主机添加ServerName
。 由于它不在那里,它正在使用默认的IP地址。 这是一种警告。 我猜你的networking服务器仍然是可用的。
您必须使用以下步骤在您的httpd.conf文件中添加ServerName
sudo gedit /etc/apache2/httpd.conf
默认情况下, httpd.conf
文件是空白的。 现在,只需将以下行添加到文件中。
ServerName localhost
保存文件并退出gedit
。 最后重启服务器。
sudo /etc/init.d/apache2 restart
2)在apache2.conf
的末尾添加Include httpd.conf
如果安装后你的etc / apache2目录中还没有httpd.conf文件,那么主apacheconfiguration文件apache2.conf将不会有引用,所以向创build的httpd.conf添加任何东西都不会任何东西。 您可以简单地将“ServerName hostname”行添加到apache2.conf文件中。
/ etc / hosts是否还有这些条目。 (我跳过上面的一些答案)
127.0.0.1 localhost 127.0.0.1 testproject.localhost
这两个IP地址127.0.0.1都是一样的。
从loopback IP子网给testproject.localhost分配不同的IP地址。