无法使用Apache2启动单声道站点,使用mod_mono发生404错误

时间:2013-10-09 17:57:36

标签: asp.net apache mono monodevelop xsp4

我的家庭系统是一个Ubuntu 13.4(从12.10升级)桌面系统,我在那里进行了一些开发,主要是在PHP中,我安装了Apache并且工作正常。

我需要在ASP.NET中进行一些开发,我安装了MonoDevelop以及XSP服务器。从MonoDevelop我可以启动XSP,它在端口8080(localhost:8080)上运行。这在开发会话期间没问题,但由于某些原因,XSP似乎超时,我的路由器不提供端口8080;另外,XSP一次只能提供一个单声道项目。

我曾尝试使用Apache配置虚拟主机,但它无法正常工作。我对静态文件,aspx文件和不存在的文件都有404错误。

我的虚拟主机配置如下:

<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.phpfavicon.ico不存在,其他文件Default.aspxTemplate.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 个答案:

答案 0 :(得分:0)

好的,我的原始问题是通过在.webapp目录的/etc/mono-server文件中包含Web应用程序来回答的。在此过程中,我决定尝试仅为所有相关的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文件,允许我选择哪个测试。

所以现在我在Ubuntu上的Apache上的虚拟主机上处理Mono(mod_mono for ASP.NET)上的几个虚拟目录。