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

Проблема с Apache: субдомен переходит в домен, не нужно

У меня есть машина Ubuntu 10.04 LTS с установленной классической LAMP. Я создал два сайта:

Общедоступный сайт www.mysite.com

"Частный" сайт, который на данный момент открыт на private.mysite.com.

Я создал для них два разных файла конфигурации,

/ и т.д. / Apache / сайты-доступные / mysite

/ и т.д. / apache / сайты-доступные / частный-mysite

С конфигурациями виртуального хоста Apache по умолчанию. Никаких подстановочных знаков, имя сервера - www.mysite.com и private.mysite.com соответственно, и я не использовал подстановочные знаки.

И, конечно же, есть символические ссылки на тех, кто находится на / sites-enabled. Каждый из сайтов имеет свой каталог,

/ var / www / mysite

/ var / www / частный-mysite

Общедоступный сайт - это блог WordPress. Частный сайт - это веб-приложение с несколькими файлами php.

Все должно быть хорошо, я проверял все несколько раз, но происходит что-то странное. Когда я захожу на private.mysite.com, приватная часть идет хорошо.

Но когда я захожу на www.mysite.com, сервер переходит прямо на private.mysite.com.

Журналы Apache показывают, что эти запросы к www.mysite.com даже не выполняются.

/var/www/mysite/logs/access.log (или error.log)

Вместо этого они идут в

/var/www/private-mysite/logs/access.log

Таким образом, КАЖДЫЙ запрос попадает в поддомен. Есть идеи исправить это поведение?

***************************** Обновить ******************** **************

Больше информации:

ls -l / и т.д. / apache2 / сайты-доступные /

-rw-r--r-- 1 root root  859 2011-05-27 13:33 private-mysite
-rw-r--r-- 1 root root  948 2010-11-18 22:16 default
-rw-r--r-- 1 root root 7467 2010-11-18 22:16 default-ssl
-rw-r--r-- 1 root root  264 2011-05-27 14:22 mysite

/ etc / apache2 / sites-available / private-mysite содержимое:

<VirtualHost x.x.x.x:80>
     ServerName private.mysite.com
     DocumentRoot /var/www/private-mysite/html/
     ErrorLog /var/www/private-mysite/logs/error.log
     CustomLog /var/www/private-mysite/logs/access.log combined
</VirtualHost>

/ etc / apache2 / sites-available / mysite содержимое:

<VirtualHost x.x.x.x:80>
     ServerName www.mysite.com
     ServerAlias mysite.com
     DocumentRoot /var/www/mysite/
     ErrorLog /var/www/mysite/logs/error.log
     CustomLog /var/www/mysite/logs/access.log combined
</VirtualHost>

Выложите пожалуйста сами файлы конфигурации и ls -l /etc/apache/sites-available. Вы видите какие-либо ошибки или предупреждения при перезапуске Apache?

Это может произойти из-за того, что www.mysite.com по какой-то причине не совпадает, и поэтому Apache использует private.mysite.com в качестве виртуального хоста по умолчанию (поскольку он единственный существующий).

В VirtualHost блоки определения хоста должны соответствовать NameVirtualHost директива. Это наверное в /etc/apache2/ports.conf, и, вероятно, установлен на *:80.

Чтобы решить эту проблему, либо измените свой NameVirtualHost:

NameVirtualHost x.x.x.x:80

или измените свой VirtualHost определения:

<VirtualHost *:80>