我已经在 CentOS 上编译并安装了 Mono 3.0.6、XSP 和 mod_mono,主要遵循这些说明。
我的 VHOST 配置如下:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/mvcgui/wwwroot
ServerName 192.168.40.132
# ServerAlias example.com
ErrorLog /var/www/mvcgui/error.log
CustomLog /var/www/mvcgui/requests.log combined
MonoServerPath mvcgui "/opt/mono/bin/mod-mono-server4"
MonoDebug mvcgui true
MonoSetEnv mvcgui MONO_IOMAP=all
MonoApplications mvcgui "/:/var/www/mvcgui/wwwroot"
</VirtualHost>
但是,当我尝试启动 httpd 服务时,出现错误:
Invalid command 'MonoServerPath', perhaps misspelled or defined by a module not included in the server configuration
所以我认为我的 mod_mod 没有加载,但我确实有一个 /etc/httpd/conf/mod_mono.conf 配置如下:
[root@dev-server httpd]# cat /etc/httpd/conf/mod_mono.conf
# mod_mono.conf
# Achtung! This file may be overwritten
# Use 'include mod_mono.conf' from other configuration file
# to load mod_mono module.
<IfModule !mod_mono.c>
LoadModule mono_module /usr/lib/httpd/modules/mod_mono.so
</IfModule>
<IfModule mod_headers.c>
Header set X-Powered-By "Mono"
</IfModule>
AddType application/x-asp-net .aspx
AddType application/x-asp-net .asmx
AddType application/x-asp-net .ashx
AddType application/x-asp-net .asax
AddType application/x-asp-net .ascx
AddType application/x-asp-net .soap
AddType application/x-asp-net .rem
AddType application/x-asp-net .axd
AddType application/x-asp-net .cs
AddType application/x-asp-net .vb
AddType application/x-asp-net .master
AddType application/x-asp-net .sitemap
AddType application/x-asp-net .resources
AddType application/x-asp-net .skin
AddType application/x-asp-net .browser
AddType application/x-asp-net .webinfo
AddType application/x-asp-net .resx
AddType application/x-asp-net .licx
AddType application/x-asp-net .csproj
AddType application/x-asp-net .vbproj
AddType application/x-asp-net .config
AddType application/x-asp-net .Config
AddType application/x-asp-net .dll
DirectoryIndex index.aspx
DirectoryIndex Default.aspx
DirectoryIndex default.aspx
[root@dev-server httpd]#
我究竟做错了什么?我在这上面花了几个小时,我在这里和网络的其他部分看了很多讨论,但似乎没有什么能解决我的问题。
我相信你说 mod_mono 没有加载是正确的。这是因为 Apache 他没有读取您的配置文件,因此永远不会收到
LoadModule mono_module
.Apache 默认不会读取
/etc/httpd/conf/mod_mono.conf
。您应该将 mod_mono.conf 移动到
/etc/httpd/conf.d
,它会在 Apache 重新加载时被拾取。通常只有 Apache“主要”配置位于 下/etc/httpd/conf/
,而您的新定制、第三方配置文件等位于/etc/httpd.conf.d
.您的主 HTTPD 配置文件
/etc/httpd/conf/httpd.conf
应包含如下部分。这告诉 Apache 在 conf.d 目录下寻找额外的配置文件。有关详细信息,请参阅:
Include
.