我在 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]#
我做错了什么?我花了好几个小时来解决这个问题,也查看了这里和网络上其他地方的许多讨论,但似乎没有什么能解决我的问题。
答案1
我认为你说的 mod_mono 没有加载是正确的。这是因为 Apache 没有读取你的配置文件,因此永远不会收到 的指令LoadModule mono_module
。
但是我有一个 /etc/httpd/conf/mod_mono.conf
/etc/httpd/conf/mod_mono.conf
Apache默认不会读取。
您应该将 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 目录下查找其他配置文件。
#
# Load config files from the config directory "/etc/httpd/conf.d".
#
Include conf.d/*.conf
有关详细信息,请参阅:For more information, see: