Ошибки, предупреждения и проблемы виртуального хоста в Ubuntu

1172
Andrew

Я, вероятно, что-то настроил неправильно. Кажется, у меня всегда возникают проблемы при попытке правильно настроить виртуальные хосты.

Я получаю эту ошибку после перезапуска 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> 

Если что-то из этого кажется неправильным, пожалуйста, дайте мне знать. Пожалуйста, помогите мне понять, что не так с моей настройкой.

0

2 ответа на вопрос

2
quack quixote

Вот одна проблема: в / 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.xxx.

1
phoebus

Я считаю, что вы должны использовать site1.local / site2.local в качестве параметров ServerName в ваших файлах виртуального хоста ... по крайней мере, это то, что работает для меня.

127.0.0.1 ServerName по умолчанию, вероятно, устанавливается в apache2.conf.

И изменить изменить & в jmohr 14 лет назад 1

Похожие вопросы