CentOS 6 Mono 和 Apache

CentOS 6 Mono 和 Apache

编辑:最后添加了一些额外的日志

我正在尝试使用 Apache 在 CentOS 6 上使 Mono 3.0 工作。我已经从源代码编译了 Mono、mod_mono 和 XPS 服务器。但现在我收到错误,因为它似乎没有指向正确的位置。

我想将文件存储在 /home/mvcgui/wwwroot/ 下。我已将“apache”用户放入 mvcgui 组中。我创建了一个指向那里的 VHOST,如下所示:

<VirtualHost _default_:80>
        ServerAdmin [email protected]
        DocumentRoot /home/mvcgui/wwwroot
#       ServerName mvcgui
        ErrorLog /home/mvcgui/logs/error.log
        <Directory />
                Options FollowSymLinks
        </Directory>
        MonoServerPath mvc4 "/opt/mono/bin/mod-mono-server4"
        # Dev mode
        MonoDebug mvc4 true
        MonoSetEnv mvc4 MONO_IOMAP=all;PATH=/opt/mono/bin;LD_LIBRARY_PATH=/opt/mono/lib/:$LD_LIBRARY_PATH;

        MonoApplications mvc4 "/:/home/mvcgui/wwwroot"
        <Location />
        Allow from all
        Order allow,deny
        MonoSetServerAlias mvc4
        SetHandler mono
        SetOutputFilter DEFLATE
        </Location>
</VirtualHost>

但是,当我向 localhost 发出请求时,VHOST 日志中出现此错误:

Fri Mar 22 15:52:35 2013] [error] [client ::1] (13)Permission denied: access to / denied

但我相信这些权利是正确的?

[root@localhost mvcgui]# ls -l
total 8
drwxrwxr-x 2 mvcgui mvcgui 4096 Mar 22 11:41 logs
drwxrwxr-x 7 mvcgui mvcgui 4096 Mar 22 11:14 wwwroot

[root@localhost wwwroot]# ls -l
total 80
drwxr-xr-x 2 mvcgui mvcgui  4096 Mar 22 11:13 bin
drwxr-xr-x 5 mvcgui mvcgui  4096 Mar 22 11:13 Content
-rw-r--r-- 1 mvcgui mvcgui 32038 Mar 22 11:13 favicon.ico
-rw-r--r-- 1 mvcgui mvcgui  3790 Mar 22 11:13 Foundation_readme.txt
-rw-r--r-- 1 mvcgui mvcgui    97 Mar 22 11:13 Global.asax
-rw-r--r-- 1 mvcgui mvcgui   246 Mar 22 11:13 humans.txt
drwxr-xr-x 2 mvcgui mvcgui  4096 Mar 22 11:14 Images
-rw-r--r-- 1 mvcgui mvcgui  3103 Mar 22 11:13 packages.config
-rw-r--r-- 1 mvcgui mvcgui   110 Mar 22 11:13 robots.txt
drwxr-xr-x 3 mvcgui mvcgui  4096 Mar 22 11:14 Scripts
drwxr-xr-x 8 mvcgui mvcgui  4096 Mar 22 11:14 Views
-rw-r--r-- 1 mvcgui mvcgui  4543 Mar 22 11:13 Web.config
[root@localhost wwwroot]# 

请注意,SELinux 和 iptables 已被禁用。

在哪里可以找到更多故障排除信息?

编辑:在 /etc/httpd/logs/error_log 下我注意到一个更详细的错误,只有在我启动服务时才会显示:

[Mon Mar 25 09:48:37 2013] [notice] caught SIGTERM, shutting down
mod-mono-server received a shutdown message
[Mon Mar 25 09:48:38 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon Mar 25 09:48:38 2013] [notice] Digest: generating secret for digest authentication ...
[Mon Mar 25 09:48:38 2013] [notice] Digest: done
[Mon Mar 25 09:48:38 2013] [notice] Apache/2.2.15 (Unix) DAV/2 mod_mono/2.10 configured -- resuming normal operations
Listening on: /tmp/mod_mono_server_global
Root directory: /
Listening on: /tmp/mod_mono_server_global
Root directory: /
Error: Address already in use
mod-mono-server4
Exception caught during reading the configuration file:
System.MissingMethodException: Method not found: 'System.Configuration.IConfigurationSectionHandler.Create'.
  at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection (System.String configKey) [0x00000] in <filename unknown>:0
  at System.Configuration.ConfigurationManager.GetSection (System.String sectionName) [0x00000] in <filename unknown>:0
  at System.Configuration.ConfigurationManager.get_AppSettings () [0x00000] in <filename unknown>:0
  at Mono.WebServer.Apache.Server.get_AppSettings () [0x00001] in /home/arnaud/Downloads/xsp-2.10.2/src/Mono.WebServer.Apache/main.cs:208
  at Mono.WebServer.Apache.Server+ApplicationSettings..ctor () [0x0002a] in /home/arnaud/Downloads/xsp-2.10.2/src/Mono.WebServer.Apache/main.cs:63
Error: Directory "/home/mvcgui/wwwroot/" not found.
[root@localhost conf.d]#

答案1

在升级到 Mono 3.2 和 apache 2.4 后,我在 openSuse 13.1 上遇到了同样的问题,对我来说,这个问题实际上是一个简单的权限问题,我的 htdocs 目录无法被 mod-mono-server 进程访问。

我正在使用用户团体apache 的指令来设置 apache 进程的所有权。以前,这些设置由 mod-mono-server 继承,但由于mod_mono 中的错误。你可以使用以下命令检查 mod-mono-server 正在运行的用户和组 ID:

ps ax -o pid,user,group,ruser,rgroup,args|grep mono

相关内容