Назад | Перейти на главную страницу

несколько виртуальных хостов в apache 2.22 на debian 7… очень странное и необъяснимое поведение… кто-нибудь может попытаться мне помочь?

Я столкнулся с проблемой конфигурации, которая действительно сводит меня с ума ...

В основном я работаю системным администратором для клиента, который использует один сервер для размещения множества разных сайтов, а именно:

Сервер:

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