Eu tenho 3 sites e um site padrão/teste usando a página de teste do mono.
Criei aFirst, c, d, e, zLast. zLast possui regras de reescrita que devem ser avaliadas por último. Como o primeiro VirtualHost visto é o padrão, configurei-o para isto
--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>
O problema é que minha página padrão (o endereço IP do meu servidor) e o primeiro site (csite.ddomain.net) estão com problemas (mesmo que csite esteja definido em c e não seja o primeiro host virtual). O endereço IP do meu servidor e csite.ddomain.net SEMPRE carregam o mesmo site. A página de teste monos ou o csite. Ele muda toda vez que eu reinicio o Apache. Por que o endereço IP do servidor não está sempre carregando a página padrão (página de teste mono) e por que csite.ddomain.net não está sempre carregando o site que desejo!?!
Aqui está a configuração para
--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 estão todos habilitados.
Responder1
Você tem 'NameVirtualHost *:80' definido antes de todos os seus hosts virtuais? Todos os seus sites estão listados em um arquivo em ordem?
Responder2
Usei esta página para instalar o mono na minha caixa debian.http://blog.ruski.co.za/page/Install-Mono-on-Ubuntu.aspx
SobConfigurar hosts virtuais Apache2mostra o abaixo.
O problema foi que copiei, colei e mudei o diretório de cada um dos meus sites. O nome (neste caso rootsite) precisa ser diferente, então eu o corrigi alterando rootsite para prjname_site para cada um dos meus sites. Agora ele reinicia sem problemas e não recebo nenhum conflito sobre qual domínio aparece onde.
Nota adicional: Atualmente eu gosto mais do mono 2.6.* do que do 2.8.*, já que o 2.8 não me fornece informações precisas sobre erros de carregamento. 2.6 lida com tudo no .NET 3.5 AFAIK.
<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>