Не удалось запустить моно сайт с Apache2, ошибка 404 с mod_mono
Моя домашняя система - настольная система Ubuntu 13.4 (обновленная с 12.10), где я занимаюсь разработкой, в основном на PHP, и у меня установлен Apache и он работает нормально.
Мне нужно сделать некоторые разработки в ASP.NET, и я установил MonoDevelop, а также сервер XSP. Из MonoDevelop я могу запустить XSP, который обслуживает порт 8080 (localhost:8080). Это нормально во время сеанса разработки, но по какой-то причине время ожидания XSP истекло, и мой маршрутизатор не обслуживает порт 8080; Кроме того, XSP одновременно обслуживает только один монопроект.
Я попытался настроить виртуальный хост с Apache, но он не работает. Я получаю 404 ошибки как для статических файлов, файлов ASPX, так и для несуществующих файлов.
Моя конфигурация vhost выглядит следующим образом:
<virtualhost *:80>
ServerAdmin webmaster@mydomain.net
ServerName myproject.local
ServerAlias myproject.mydomain.net
DocumentRoot /home/myuser/source/myproject/myproject
<Directory /home/myuser/source/myproject/myproject>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
SetHandler mono
DirectoryIndex Default.aspx index.aspx index.html
</Directory>
LogLevel debug
ErrorLog /var/www/vhosts/myproject/log/error.log
CustomLog /var/www/vhosts/myproject/log/access.log combined
</virtualhost>
Глядя на журнал ошибок, я нахожу следующие сообщения:
[Mon Oct 07 00:42:45 2013] [debug] mod_deflate.c(615): [client 127.0.0.1] Zlib: Compressed 279 to 214 : URL /
[Mon Oct 07 00:43:00 2013] [debug] mod_deflate.c(615): [client 127.0.0.1] Zlib: Compressed 291 to 223 : URL /Default.aspx
[Mon Oct 07 00:43:04 2013] [error] [client 127.0.0.1] script '/home/myuser/source/myproject/myproject/Default.php' not found or unable to stat
[Mon Oct 07 00:43:04 2013] [debug] mod_deflate.c(615): [client 127.0.0.1] Zlib: Compressed 290 to 222 : URL /Default.php
[Mon Oct 07 00:43:14 2013] [debug] mod_deflate.c(615): [client 127.0.0.1] Zlib: Compressed 292 to 222 : URL /Template.css
[Wed Oct 09 12:36:00 2013] [debug] mod_deflate.c(615): [client 127.0.0.1] Zlib: Compressed 290 to 221 : URL /favicon.ico
Файлы Default.php
а также favicon.ico
не существует, другие файлы Default.aspx
а также Template.css
существуют
Заранее спасибо.
Обновить
Я пропустил часть конфигурации: webapp
файл. Я добавил в /etc/mono-server4/debiab.webapp
добавить проект.
<apps>
<web-application>
<name>myproject</name>
<vhost>myproject</vhost>
<vport>80</vport>
<vpath>/</vpath>
<path>/home/myuser/source/myproject/myproject/</path>
<enabled>true</enabled>
</web-application>
</apps>
Теперь это работает!
Теперь я не могу заставить его работать для виртуальных каталогов для разных приложений.
1 ответ
Хорошо, мой первоначальный вопрос был дан ответ путем включения веб-приложения в .webapp
файл в /etc/mono-server
каталог. В ходе этого процесса я решил попробовать использовать только один виртуальный хост для всех связанных проектов Mono/ASP, поэтому я пришел к следующей конфигурации для виртуальных каталогов (псевдоним).
mytestsite.local
виртуальный хост (в /etc/apache2/sites-available/
и связаны в /etc/apache2/sites-enabled/
)
<virtualhost *:80>
ServerAdmin webmaster@interlecto.net
ServerName mytestsite.local
ServerAlias mytestsite.mydomain.net *.mytestsite.mydomain.net
MonoAutoApplication disabled
AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd
DocumentRoot /var/www/vhosts/mytestsite/root
<Directory /var/www/vhosts/mytestsite/root>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
DirectoryIndex Default.aspx index.aspx index.html
Alias /myproject "/home/myuser/source/myproject/myproject"
Alias /othertest "/home/myuser/source/othertest/othertest"
MonoApplications default "/myproject:/home/myuser/source/myproject/myproject,/othertest:/home/myuser/source/othertest/othertest"
<Location /myproject>
SetHandler mono
</location>
<Location /othertest>
SetHandler mono
</location>
<Directory /home/myuser/source/myproject/myproject>
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory /home/myuser/source/othertest/othertest>
AllowOverride None
Order allow,deny
Allow from all
</Directory>
LogLevel debug
ErrorLog /var/www/vhosts/mytestsite/log/error.log
CustomLog /var/www/vhosts/mytestsite/log/access.log combined
</virtualhost>
debian.webapp
файл (в /etc/mono-server4/
)
<apps>
<web-application>
<name>My Project</name>
<vpath>/myproject</vpath>
<path>/home/myuser/source/myproject/myproject</path>
<vhost>mytestsite.local</vhost>
</web-application>
<web-application>
<name>Other Test</name>
<vpath>/othertest</vpath>
<path>/home/myuser/source/othertest/othertest</path>
<vhost>mytestsite.local</vhost>
</web-application>
</apps>
В моем корне виртуального хоста (/var/www/vhosts/mytestsite/root/
) У меня простой index.html
файл, позволяющий мне выбрать, какой тест.
Итак, теперь у меня есть Mono (mod_mono для ASP.NET), работающий над парой виртуальных каталогов на виртуальном хосте Apache в Ubuntu.