在共享托管环境中部署Mono MVC

时间:2012-12-21 21:03:03

标签: mono asp.net-mvc-4 shared-hosting

我没有在serverfault上发帖,因为应用程序正在开发中,我需要在Mono中测试它,但它也适合那里......

我不想问如果可以在Apache2 VirtualHost上部署ASP.NET MVC网站,因为它是,但是如果可以的话,不会干扰PHP配置。

长问题

Apache的默认PHP配置如下所示

<IfModule mod_php5.c>
        AddHandler application/x-httpd-php .php4
        AddHandler application/x-httpd-php .php5
        AddHandler application/x-httpd-php .php
        AddHandler application/x-httpd-php-source .php4s
        AddHandler application/x-httpd-php-source .php5s
        AddHandler application/x-httpd-php-source .phps
        DirectoryIndex index.php4
        DirectoryIndex index.php5
        DirectoryIndex index.php
</IfModule>

这告诉Apache .php文件是PHP脚本。

行...

现在,如果我在服务器上启用mod_mono,它会将.aspx文件映射到Mono。那没关系。

但是当我使用非常适合PHP的准系统配置启用测试主机VirtualHost时(如果你介意美元的话,它基于mod_macro

<VirtualHost *:80>
    ServerName www.$name
    ServerAlias $name

    <IfModule mpm_itk_module>
        AssignUserID $user $user

    </IfModule>


    ErrorLog /path/tp/$name/logs/error_log
    CustomLog /path/to/$name/logs/access_log combined


    DocumentRoot /path/to/$name/htdocs
    ServerAdmin email@email
</VirtualHost>

然后我收到默认控制器的404错误。

我知道我可以在自己的测试服务器上简单地说SetHandler mono和vo。但这个问题影响了通用托管。另外,我可以自己得到答案:因为Razor-MVC中没有.aspx文件(或者更好的路径通过路由器映射到控制器)然后我显然因为Apache无法识别为文件而得到404错误

如果我想在支持Mono的通用托管服务提供商运行的服务器上部署此Mono应用程序,反之亦然如果我想提供(在生产服务器上)托管PHP和Mono而不必更改配置根据客户的要求,我可以使用满足Mono并运行PHP的Apache配置吗?

缩短的问题

如何配置Apache2 一次,以便在同一个VirtualHost上运行两个 PHP和Mono MVC,而无需根据编写应用程序的语言更改配置?< / p>

1 个答案:

答案 0 :(得分:0)

转到此配置程序 http://go-mono.com/config-mod-mono/ 它基于virtualHost为Apache2提供auto make配置。 现在我联合使用mod_mono和mod_php5。