好吧,我已经花了很长时间试图解决这个问题,但我找不到解决方案。我要做的是让我的 Apache 服务器同时托管 PHP 和 ASP.NET 文件。所以我用谷歌搜索了一下,发现 Apache 的 mod_mono 是可行的方法。我使用了这个链接(但更改了版本)并且能够成功安装支持 .Net 4.0 的 Mono 版本 2.10.2(通过使用 mono -V 确认)。太好了,现在我需要配置我的 vHost(命名主机)以将 .NET 站点指向正确的文件夹。我使用单声道配置生成器来获取它并在 Apache 中添加/启用该站点(将在下面发布配置文件的淡化版本)。现在在这一点上,事情变得有点时髦。
1)我的虚拟主机不能再有 *:80 指令......我需要放置服务器 IP。这不是什么大问题,但我觉得这很有趣。如果我将站点的 VirtualHost 之一更改为 *:80,则所有站点都已关闭。此外,我必须将 NameVirtualHost XXX.XXX.XXX.XXX 行放入 apache2.conf 文件中才能使其正常工作。
2)我的 PHP 网站都运行良好,但我取决于我是使用Mono Auto Configuration(答案)还是“默认”(类似于问题中的数据)配置,我要么得到“服务器暂时无法服务”由于维护停机或容量问题,您的请求。请稍后再试。” 错误或“内部服务器错误”。
所以,基本上,我非常确定我只是在某个地方搞砸了配置,我需要你的帮助来弄清楚这些东西在哪里滚动!我会为您提供您需要的任何东西,所以如果我错过了以下内容,请联系我。
服务器统计: Ubuntu 10.04 服务器版 Apache 2 PHP Mono 2.10.2
example.com 配置(/etc/apache/sites-enabled)
<VirtualHost XXX.XXX.XXX.XXX>
ServerName example.com
DocumentRoot /var/www/example
</VirtualHost>
mod_mono.conf (/etc/apache2/mods-enabled)
<IfModule !mono_module>
LoadModule mono_module "libexec/apache2/mod_mono.so"
</IfModule>
<IfModule mono_module>
AddType application/x-asp-net .config .cs .csproj .dll .resources .resx .sln .vb .vbproj
AddType application/x-asp-net .asax .ascx .ashx .asmx .aspx .axd .browser .licx .master .rem .sitemap .skin .soap .webinfo
MonoAutoApplication enabled
MonoDebug true
MonoServerPath "/usr/bin/mod-mono-server4"
MonoSetEnv LANG=en_US.UTF-8
MonoUnixSocket "/tmp/.mod_mono"
<IfModule dir_module>
DirectoryIndex Default.aspx
</IfModule>
<DirectoryMatch "/(bin|App_Code|App_Data|App_GlobalResources|App_LocalResources)/">
Order deny,allow
Deny from all
</DirectoryMatch>
<Location "/Mono">
Order deny,allow
Deny from all
Allow from 127.0.0.1 ::1
SetHandler mono-ctrl
</Location>
</IfModule>