У меня есть 3 сайта и сайт по умолчанию/тестовый сайт, использующий тестовую страницу mono.
Я создал aFirst, c, d, e, zLast. zLast имеет правила перезаписи, которые должны оцениваться последними. Поскольку первый увиденный VirtualHost является значением по умолчанию, я установил его таким
--aFirst--
<VirtualHost *:80>
ServerName www.domain.tld
ServerAdmin webmaster@localhost
DocumentRoot /var/www/test
DirectoryIndex index.html index.aspx index.php
MonoDocumentRootDir "/var/www/test"
MonoServerPath rootsite "/usr/local/bin/mod-mono-server2"
MonoApplications rootsite "/:/var/www/test"
<Directory /var/www/test>
MonoSetServerAlias rootsite
SetHandler mono
AddHandler mod_mono .aspx .ascx .asax .ashx .config .cs .asmx
</Directory>
</VirtualHost>
Проблема в том, что моя страница по умолчанию (IP-адрес моего сервера) и первый веб-сайт (csite.ddomain.net) имеют проблемы (хотя csite определен в c и не является первым виртуальным хостом). IP-адрес моего сервера и csite.ddomain.net ВСЕГДА загружают один и тот же сайт. Либо тестовую страницу monos, либо csite. Он переворачивается каждый раз, когда я перезапускаю apache. Почему IP-адрес сервера не всегда загружает страницу по умолчанию (тестовую страницу mono) и почему csite.ddomain.net не всегда загружает нужный мне сайт!?!
Вот конфигурация для
--csite--
<VirtualHost *:80>
ServerName csite.testdomain.net
ServerAdmin webmaster@localhost
ServerAlias s.csite.testdomain.net
DocumentRoot /var/www/prjname
DirectoryIndex index.html index.aspx
MonoDocumentRootDir "/var/www/prjname"
MonoServerPath rootsite "/usr/local/bin/mod-mono-server2"
MonoApplications rootsite "/:/var/www/prjname"
<Directory /var/www/prjname>
MonoSetServerAlias rootsite
SetHandler mono
AddHandler mod_mono .aspx .ascx .asax .ashx .config .cs .asmx
</Directory>
</VirtualHost>
aFirst, c, d, e, zLast — все включены.
решение1
У вас определено 'NameVirtualHost *:80' перед всеми вашими виртуальными хостами? Все ваши сайты перечислены в одном файле по порядку?
решение2
Я использовал эту страницу для установки mono на свой компьютер с Debian.http://blog.ruski.co.za/page/Install-Mono-on-Ubuntu.aspx
ПодНастройка виртуальных хостов Apache2это показывает ниже.
Проблема была в том, что я скопировал и вставил это и изменил каталог для каждого из моих сайтов. Имя (в данном случае rootsite) должно быть разным, поэтому я исправил это, изменив rootsite на prjname_site для каждого из моих сайтов. Теперь он перезапускается без проблем, и я не получаю никаких конфликтов, какой домен где отображается.
Дополнительное примечание: В настоящее время мне больше нравится mono 2.6.*, чем 2.8.*, поскольку 2.8 не дает мне точной информации об ошибках загрузки. 2.6 обрабатывает все в .NET 3.5, насколько мне известно.
<VirtualHost *>
ServerName www.local.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/test
DirectoryIndex index.html index.aspx
MonoDocumentRootDir "/var/www/test"
MonoServerPath rootsite "/usr/local/bin/mod-mono-server2"
MonoApplications rootsite "/:/var/www/test"
<Directory /var/www/test>
MonoSetServerAlias rootsite
SetHandler mono
AddHandler mod_mono .aspx .ascx .asax .ashx .config .cs .asmx
</Directory>
</VirtualHost>