У меня есть машина 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>