我没有在 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,而无需根据应用程序编写的语言更改配置?