Я пытаюсь иметь несколько виртуальных хостов в настройке apache в Ubuntu 10.04. Мне удалось настроить домен и поддомен, jivity.net и sonata.jivity.net, используя виртуальные хосты на основе имени в apache2, и он работает по назначению. Но когда я пробую что-то вроде sonata-software.jtivity.net, он перенаправляет меня на sonata.jtivity.net. Это похоже на дефис в sonata-software.jivity.net не читается apache. Вот мой виртуальный файл conf для sonata-software.jtivity.net:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName sonata-software.jivity.net
ServerAlias www.sonata-software.jivity.net
SetEnv MAGE_RUN_CODE "sonata"
SetEnv MAGE_RUN_TYPE "website"
DocumentRoot /var/www/websites/jivity/sonata
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
<Directory /var/www/websites/jivity/sonata>
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 /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
vconf файл sonata.jiversity.net в / etc / apache2 / sites-available /
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName sonata.jivity.net
ServerAlias www.sonata.jivity.net
SetEnv MAGE_RUN_CODE "sonata"
SetEnv MAGE_RUN_TYPE "website"
DocumentRoot /var/www/websites/jivity/sonata
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
<Directory /var/www/websites/jivity/sonata>
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 /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Я хотел заменить sonata.jivity.net на sonata-software.jtivity.net. Я включил сайт после того, как поместил его в папку / etc / apache2 / sites-available и перезапустил apache. Как мне исправить это, чтобы sonata-software.jtivity.net также работал? Спасибо.
вы связали его с каталогом / etc / apache2 / sites-enabled /?
пытаться:
sudo a2ensite sonata-software.jivity.net
Хорошо, вторая попытка ...
Я собираюсь сделать здесь безумное предположение и поинтересоваться, есть ли у вас правильный корень документа для sonata-software.jtivity.net.
Возможно, вы забыли отредактировать каталог DocRoot при копировании и редактировании конфигурации из существующей конфигурации sonata.jtivity.net.
эта строка из вашей конфигурации верна?
DocumentRoot /var/www/websites/jivity/sonata
или должно быть что-то вроде этого:
DocumentRoot /var/www/websites/jivity/sonata-software
и то же самое, конечно же, для <Directory / var / www / sites / jivity / sonata>.
[потом]
подробнее о ServerName и ServerAlias ...
если вы хотите, чтобы несколько доменных имен указывали на один и тот же контент, просто создайте один виртуальный хост и добавьте столько ServerAliases, сколько хотите. например
ServerName sonata-software.jivity.net
ServerAlias www.sonata-software.jivity.net
ServerAlias sonata.jivity.net
ServerAlias www.sonata.jivity.net
ServerName - это «каноническое имя» сайта. Обычно (но не обязательно) сайт настраивается таким образом, чтобы любой запрос одного из псевдонимов автоматически перенаправлялся на официальный URL.
У вас может быть такое перенаправление в другом месте вашей конфигурации apache (поиск в / etc / apache2) или в файле .htaccess в DocRoot.
как насчет того, если вы попытаетесь удалить дефис и просто выполните sonatasoftware.jiversity.net. убедитесь, что ваши сайты-доступны и сайты-включены также изменены. если он работает, то, возможно, это просто дефис, который каким-то образом влияет на то, как apache обслуживает страницы.
Попробуйте отключить как sonata-software.jivity.net, так и sonata.jtivity.net
a2dissite sonata.jivity.net
a2dissite sonata-software.jivity.net
Затем перезапустите apache2, затем снова включите sonata-software.jtivity.net
a2ensite sonata-software.jivity.net
Посмотрите, решит ли это вашу проблему.
Правильно ли вы настроили свой DNS?
Проверьте журнал доступа, вы должны прочитать, что происходит.
Переименуйте программу sonata-software во что-нибудь совершенно другое, перенастройте DNS и перезапустите Apache (это может занять некоторое время для обновления кеша).