У меня на сервере 2 сайта. Один, к которому я обращаюсь через свой IP, x.x.x.x / site1. Другой - зарегистрированное доменное имя www.mysite.com.
Изначально у меня были только мои / и т.д. / apache / сайты-доступные / по умолчанию файл доступен, но когда я попытался загрузить любой из указанных выше сайтов, я только что получил /var/www/index.html вывод.
Я включил новый виртуальный хост для mysite.com со следующим кодом:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/mysite
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/mysite>
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}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Mysite.com загружается только тогда, когда по умолчанию отключено, но затем x.x.x.x / site1 нет.
Итак, я включаю виртуальный хост по умолчанию, который имеет следующий код:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
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}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Сейчас, x.x.x.x / site1 работает, но mysite.com нет - вместо этого он загружает /var/www/index.html страница.
Я не понимаю, в чем проблема. Буду признателен за помощь.
Чтобы виртуальный домен работал, он должен знать, к какому хосту подключаться. В вашем http-запросе для браузера он устанавливает заголовок Host, например
Host: mysite.com
Итак, apache прочитает это, чтобы выяснить, какую запись vhost использовать. Вам нужно добавить что-то вроде
ServerName mysite.com www.mysite.com
На виртуальный хост mysite.com в <VirtualHost *:80>