【发布时间】:2012-12-21 21:03:02
【问题描述】:
我没有在 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,然后瞧。但是这个问题会影响通用托管。另外,我自己可以得到答案:由于 Razor-MVC 中没有 .aspx 文件(或者更好的路径通过路由器映射到控制器),那么对于 Apache 无法识别为文件的所有内容,我显然会收到 404 错误.
如果我想将此 Mono 应用程序部署在由支持 Mono 的通用托管服务提供商运行的服务器上,反之亦然,如果我也想(在生产服务器上)为 PHP 和 Mono 提供托管服务,而无需更改配置根据客户的要求,我可以使用既满足 Mono 又运行 PHP 的 Apache 配置?
缩短的问题
如何配置 Apache2 一次,以便在同一 VirtualHost 上同时运行 PHP 和 Mono MVC,而无需根据编写应用程序的语言更改配置?
【问题讨论】:
标签: mono asp.net-mvc-4 shared-hosting