У меня, вероятно, есть что-то настроенное неправильно. Кажется, что у меня всегда есть проблемы при попытке настроить мои Виртуальные Хосты правильно.
Я получаю эту ошибку после перезапуска Apache:
Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Wed Oct 14 17:39:17 2009] [warn] VirtualHost site1.local:0 overlaps with VirtualHost site2.local:0, the first has precedence, perhaps you need a NameVirtualHost directive
Почему это использует 127.0.1.1 для ServerName? И почему моя site2.local виртуальная работа хоста не?
Вот мой файл hosts:
# /etc/hosts
127.0.0.1 localhost site1.local site2.local
127.0.1.1 andrew-laptop
# 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
В/etc/apache2/sites-available у меня есть 3 файла: значение по умолчанию, site1.local, и site2.local
значение по умолчанию:
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
site1.local:
<VirtualHost site1.local>
ServerAdmin webmaster@localhost
ServerName admin
DocumentRoot /home/andrew/Projects/site1/public
CustomLog /var/log/apache2/site1-access.log combined
<Directory /home/andrew/Projects/site1/public>
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
site2.local:
<VirtualHost site2.local>
ServerAdmin webmaster@localhost
ServerName admin
DocumentRoot /home/andrew/Projects/site2/public
CustomLog /var/log/apache2/site2-access.log combined
<Directory /home/andrew/Projects/site2/public>
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
Если какое-либо из этого кажется неправильным, сообщите мне. Помогите мне выяснить что не так с моей установкой.
Вот одна проблема: в/etc/hosts Ваша localhosts строка является неправильной. У Вас есть это:
# /etc/hosts
127.0.0.1 localhost site1.local site2.local
У Вас должно быть это:
# /etc/hosts
127.0.0.1 localhost.localdomain localhost
Верхняя строка важна. Можно присвоить site1.local и site2.local почти к чему-либо еще, но верхняя строка должна включать обоих localhost.localdomain
и localhost
.
Я не уверен, какая черная магия ответственна, но вещи повреждаются странно в Ubuntu 9.04 и Debian 5.0.3, если та строка изменяется на что-либо еще. Моя недавняя установка Debian имела те же ошибки Apache (плюс некоторые другие интересные поломки), пока я не откатывал свои собственные изменения в той строке.
Так как все еще необходимо определить site1.local
и site2.local
, Вы могли сделать это как это:
127.0.1.1 andrew-laptop site1.local site2.local
Но Apache мог бы предпочесть различные IP-адреса для сайтов, таким образом, Вы, вероятно, будете более обеспеченным выполнением его этот путь:
127.0.1.1 andrew-laptop
127.0.1.2 site1.local
127.0.1.3 site2.local
127.0.0.0/8 сеть является обратной петлей, таким образом, можно выбрать, любой 127.x.x.x обращается к Вам как для них.