Trac после чистой установки. TracError: IOError: [Errno 13] Отказано в доступе

У меня чистая CentOS 6. Просто устанавливаю через yum install httpd mysql-server, python, mysql-python.

Первый шаг

$ trac-admin /home/tracprojects/main2 initenv

Название проекта: Main
Строка SQL Connect: mysql://trac@localhost:3306/trac (база существует, utf8, innoDB)

OK.

$ trac-admin /home/tracprojects/main2 deploy /var/www/html/

OK.


Второй шаг

Затем я перемещаю cgi-bin/trac.wsgi в папку псевдонимов моего сервера /cgi-bin/. (mod_wsgi работает хорошо. НЕ как демон. Проверено на сценариях wsgi).

Затем я даю разрешения пользователю Apache для целых каталогов, которые я создал ранее. И добавьте доступ из конфигурации apache. (заказать-разрешить-запретить).

Но когда я открываю свой браузер и перехожу по URL-адресу, у меня появляется это сообщение об ошибке:

Internal Server Error
TracError: IOError: [Errno 13] Permission denied: '/home/tracprojects/main2/VERSION'

Что я делаю неправильно?


person woozly    schedule 20.12.2011    source источник


Ответы (2)


Используете ли вы SElinux (включен по умолчанию)? Я считаю, что с SElinux по умолчанию Apache не может получить доступ к /home. Вы можете проверить это, временно отключив SElinux ("setenforce 0" как root) и, возможно, перезапустив Apache. Также проверьте /var/log/audit.log.

person Felix Schwarz    schedule 20.12.2011
comment
Если вы работаете в системе Fedora, вы должны были получить всплывающее окно с сообщением о проблеме и предложением нескольких вариантов ее устранения, включая разрешение Apache на доступ к домашним каталогам. Однако также проверьте контекст файла: поскольку он был создан в другой папке, а затем перемещен, его контекст может не соответствовать папке, в которой он сейчас находится. ls -Z показывает контексты, а restorecon установит контекст по умолчанию для своего нового местоположения (или chcon, чтобы указать его вручную). Сценарии CGI по умолчанию требуют: chcon -t httpd_sys_script_exec_t (FILE) - person BRPocock; 20.12.2011
comment
О, отличная шпаргалка по устранению неполадок: centoshelp.org/security/selinux-common-commands- устранение неполадок - person BRPocock; 20.12.2011

Проверьте разрешения «/home/tracprojects» и т. д. Apache работает как специальный пользователь и может просто не иметь возможности читать каталоги, читать файлы или даже записывать файлы.

Возможно, вам лучше использовать режим демона mod_wsgi и указать mod_wsgi запустить процесс от имени другого пользователя, который может получить доступ к этому местоположению. Даже если это сделать, каталог файла сценария WSGI по-прежнему должен быть доступен для чтения пользователю Apache.

person Graham Dumpleton    schedule 20.12.2011
comment
У меня есть ПРОБЛЕМА: Проблема была в политике безопасности SELinux. Я просто запускаю это: grep VERSION /var/log/audit/audit.log | audit2allow -M tracrule и оно делает это. - person woozly; 21.12.2011