CentOS 6 Mono и Apache
РЕДАКТИРОВАТЬ: добавлены некоторые дополнительные журналы в конце
Я пытаюсь заставить Mono 3.0 работать на CentOS 6 с Apache. Я скомпилировал Mono, mod_mono и XPS сервер из исходного кода. Но теперь я получаю ошибки, потому что кажется, что он не указывает на правильное место.
Я хочу хранить свои файлы в /home/mvcgui/wwwroot/. Я поместил пользователя 'apache' в группу mvcgui. Я создал VHOST, указывающий туда, вот так:
<VirtualHost _default_:80>
ServerAdmin webmaster@tralala.com
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 ответ
Я столкнулся с той же проблемой на openSuse 13.1 после обновления до Mono 3.2 и apache 2.4 Для меня проблема была на самом деле простой проблемой с разрешениями, мой каталог htdocs не был доступен процессу mod-mono-server.
Я использую директивы пользователя и группы apache, чтобы установить владельца процесса apache. Ранее эти настройки были унаследованы mod-mono-server, но это не работает в apache-2.4 из-за ошибки в mod_mono. Вы можете проверить, что пользователь и идентификатор группы, под которой работает mod-mono-server:
ps ax -o pid,user,group,ruser,rgroup,args|grep mono