Я столкнулся с проблемой конфигурации, которая действительно сводит меня с ума ...
В основном я работаю системным администратором для клиента, который использует один сервер для размещения множества разных сайтов, а именно:
Сервер:
PRETTY_NAME = "Debian GNU / Linux 7 (wheezy)" NAME = "Debian GNU / Linux" VERSION_ID = "7" VERSION = "7 (wheezy)" ID = debian ANSI_COLOR = "1; 31" HOME_URL = "http: // www.debian.org/ "SUPPORT_URL =" http://www.debian.org/support/ "BUG_REPORT_URL =" http://bugs.debian.org/ "
Linux xyz 3.2.0-4-amd64 # 1 SMP Debian 3.2.68-1 + deb7u6 x86_64 GNU / Linux
Версия сервера: Apache / 2.2.22 (Debian) Сервер построен: 18 августа 2015 г., 09:50:52
Теперь, помимо этого, я настроил несколько разных веб-сайтов на третьем уровне, например, abc.xyz.it, def.xyz.it, ghi.xyz.it и так далее. Все работает, как ожидалось, до прошлой недели меня попросили настроить один из виртуальных хостов для ответа на другой внешний запрос по немного другому URL-адресу, перенаправляя их на тот же DocumentRoot
. Это кажется довольно тривиальным, на самом деле мне удалось разрешить qqq.xyz.it (исходный виртуальный хост), плюс qqqk.xyz.it и www.qqqk.xyz.it, поместив ожидаемую конфигурацию в исходный /etc/apache2/sites-available/qqq
файл; затем a2dissite qqq
, service apache2 reload
, a2ensite qqq
, и опять service apache2 reload
...
Как я уже сказал, все работает без проблем.
Но через пару дней заказчик попросил меня добавить еще www.qqq.xyz.it ...
Моей первой мыслью было, что это просто тривиально, поэтому я отредактировал qqq
файл, добавив раздел также для этого экземпляра ... ну, несмотря на несколько испытаний, я полностью не смог запустить его ... мне кажется, что нет ничего отличного от того, что я сделал для других виртуальных хостов, но безуспешно вообще.
Я вставляю ниже фактическое содержание qqq
файл:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName qqq.xyz.it
DocumentRoot /var/www2/qqq
<Directory /var/www2/qqq>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
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 ${APACHE_LOG_DIR}/dri-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel error
CustomLog ${APACHE_LOG_DIR}/dri-access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName www.qqq.xyz.it
DocumentRoot /var/www2/qqq
<Directory /var/www2/qqq>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
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 ${APACHE_LOG_DIR}/dri-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel error
CustomLog ${APACHE_LOG_DIR}/dri-access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName qqqk.xyz.it
DocumentRoot /var/www2/qqq
<Directory /var/www2/qqq>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
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 ${APACHE_LOG_DIR}/dri-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel error
CustomLog ${APACHE_LOG_DIR}/dri-access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName www.qqqk.xyz.it
DocumentRoot /var/www2/qqq
<Directory /var/www2/qqq>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
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 ${APACHE_LOG_DIR}/dri-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel error
CustomLog ${APACHE_LOG_DIR}/dri-access.log combined
</VirtualHost>
Есть у кого-нибудь догадки? Я пробовал несколько изменить порядок четырех разделов в файле, я пытался использовать ServerAlias
который не работает в любом месте файла ... У меня кончились идеи, может быть, это простая глупость, но насколько я старался так долго, может быть, я не вижу этого ...
На первый взгляд, это 2.2, так что вы фактически получаете все запросы в первом определенном виртуальном хосте, вам нужно добавить эту директиву один раз в контексте конфигурации сервера, чтобы ваши виртуальные хосты правильно интерпретировались:
NameVirtualHost *:80