Итак, у меня есть два веб-приложения на одном сервере. У меня есть основной, который обслуживается при использовании обычного домена, но я хочу, чтобы поддомен указывал на другое приложение.
Я настроил виртуальные хосты так, как я определил, они должны соответствовать тому, что я нашел при поиске в Google, но это все еще не работает. Поддомен обслуживает только основное приложение. Вот содержимое моего файла конфигурации.
<VirtualHost *:80>
ServerName www.luketimoth.me
DocumentRoot /var/www/luketimothy/public
<Directory /var/www/luketimothy/public>
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.luketimoth.me
DocumentRoot /var/www/shattered-plays/public
ServerAlias shattered.luketimoth.me
<Directory /var/www/shattered-plays/public>
PassengerEnabled on
</Directory>
</VirtualHost>
Насколько мне известно (с моими начальными / элементарными знаниями Apache), это должно делать то, что я от него ожидаю ... но это не так. Что я делаю не так?
Выход httpd -S
httpd: apr_sockaddr_info_get() failed for LMTServe
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[Sat May 17 16:42:02 2014] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 www.luketimoth.me (/etc/httpd/conf/httpd.conf:1017)
*:80 www.luketimoth.me (/etc/httpd/conf/httpd.conf:1031)
Syntax OK
РЕДАКТИРОВАТЬ:
Я изменил виртуальный хост, чтобы использовать желаемый поддомен в качестве ServerName, но я все еще вижу ту же проблему.
<VirtualHost *:80>
ServerName www.luketimoth.me
DocumentRoot /var/www/luketimothy/public
<Directory /var/www/luketimothy/public>
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName shattered.luketimoth.me
DocumentRoot /var/www/shattered-plays/public
<Directory /var/www/shattered-plays/public>
PassengerEnabled on
</Directory>
</VirtualHost>
httpd: apr_sockaddr_info_get() failed for LMTServe
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[Sun May 18 10:15:24 2014] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 www.luketimoth.me (/etc/httpd/conf/httpd.conf:1017)
*:80 shattered.luketimoth.me (/etc/httpd/conf/httpd.conf:1031)
Syntax OK
Оба ваших виртуальных хоста настроены для одного и того же имени сервера. В качестве второго используйте желаемый поддомен.