Ошибка: VirtualHost *:80 смешивание * портов и не-* портов с адресом NameVirtualHost не поддерживается, продолжение с неопределенными результатами

Я запускаю WAMP v2.0 в WindowsXP, и у меня есть куча настроек виртуальных хостов в файле http-vhosts.conf.

Это работало, но на прошлой неделе, когда я пытаюсь запустить WAMP, я получаю эту ошибку в журналах событий:

VirtualHost *:80 -- смешивание * портов и не-* портов с адресом NameVirtualHost не поддерживается, что приводит к неопределенным результатам.

и сервер не запускается. Я не могу думать о том, что изменилось.

Я скопировал файл conf ниже.

NameVirtualHost *
<VirtualHost *:80>
    ServerName dev.blog.slaven.net.au
    ServerAlias dev.blog.slaven.net.au
    ServerAdmin [email protected]
    DocumentRoot "c:/Project Data/OtherProjects/slaven.net.au/blog/" 
    ErrorLog "logs/blog.slaven.localhost-error.log"
    CustomLog "logs/blog.slaven.localhost-access.log" common

    <Directory "c:/Project Data/OtherProjects/slaven.net.au/blog/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
            Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

EDIT: я хотел добавить, если я изменю директиву NameVirtualHosts, чтобы указать порт, т.е.

NameVirtualHost *:80

Я получаю эту ошибку:

Обычно разрешено только одно использование каждого адреса сокета (протокол/сетевой адрес/порт). :make_sock: не удалось выполнить привязку к адресу 0.0.0.0:80


person Glenn Slaven    schedule 02.09.2008    source источник


Ответы (2)


NameVirtualHost *:80

Я получаю эту ошибку:

Обычно разрешено только одно использование каждого адреса сокета (протокол/сетевой адрес/порт). :make_sock: не удалось выполнить привязку к адресу 0.0.0.0:80

Я думаю, это может быть из-за того, что у вас есть что-то еще, прослушивающее порт 80. У вас есть какие-либо другие серверы (или, например, Skype)?

(Если это был Skype: снимите флажок «Инструменты> Параметры> Дополнительно> Соединение> Использовать порт 80 и 443 в качестве альтернативы для входящих подключений»)

person nohj    schedule 02.09.2008

Ну, похоже, проблема в способе (и порядке), в котором вы назначаете порты.

По сути, *:80 означает «использовать порт 80 для всех хостов в этой конфигурации». Когда вы делаете это, Apache пытается привязать этот хост к 0.0.0.0:80, что означает, что хост будет получать каждый пакет, поступающий на машину через порт 80, независимо от того, на какой виртуальный хост он должен был перейти. Это то, что вы должны использовать только один раз, и только если у вас есть один хост в этой конфигурации.

Таким образом, если у вас есть одна и та же директива *:80 на двух хостах в конфигурационном файле, сервер не загрузится, потому что он дважды попытается связать 0.0.0.0:80, потерпев неудачу во второй попытке. (что объясняет сообщение «Обычно разрешено только одно использование каждого адреса сокета (протокол/сетевой адрес/порт). : make_sock: не удалось привязать к адресу 0.0.0.0:80»).

person dguaraglia    schedule 02.09.2008