Я работаю с новой установкой Fedora 16 и пытаюсь запустить Apache. Я хорошо знаком с Linux и немного с CentOS, но у меня очень мало опыта работы с Fedora и SELinux (что бы это ни было).
Сначала, после установки Apache, я даже не мог увидеть пример веб-страницы. Я немного поискал и, наконец, исправил эту проблему, отредактировав файл iptables.
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
sudo iptables-save
Я пошел дальше и начал сбрасывать некоторые файлы в корневой каталог, чтобы убедиться, что разрешения установлены правильно.
$ ls -Rlhp /var/www/html/
/var/www/html/:
total 8.0K
drwxr-xr-x. 2 apache root 4.0K Apr 20 22:47 files/
/var/www/html/files:
total 25M
-rw-r--r--. 1 apache users 25M Apr 20 22:47 SRR022918.errors.tar.gz
Но затем, когда я перешел к соответствующему URL-адресу (my.server.edu/files/SRR022918.errors.tar.gz
), Я получил ошибку 403 Permission denied. Я проверил журнал ошибок Apache и нашел это сообщение.
[Fri Apr 20 23:09:55 2012] [error] [client xxx.xxx.xx.xx] (13)Permission denied: file permissions deny server access: /var/www/html/files/SRR022918.errors.tar.gz
Я попытался установить права доступа к файлам и каталогам на 777, но это не решило проблему. Это действительно подозрительно, поэтому я предполагаю, что это как-то связано с SELinux. У меня нет опыта работы с SELinux, на правильном ли я пути? Если да, то как мне это исправить?
Если не изменяет память, возможно, вам нужно запустить chcon -R -h -t httpd_sys_content_t /var/www/html
Это рекурсивно устанавливает ваш каталог содержимого в соответствующий контекст для Apache.
Эта проблема с правами доступа к файлу, как вы и ожидали, связана с SELinux. Это довольно сложно, но хорошие люди из CentOS собрали довольно хорошая вики, чтобы вы начали. Короче говоря, вы можете либо отключить SELinux (совершенно плохая идея), либо установить его в разрешающий режим (немного менее плохая идея), либо работать с SELinux. Поскольку в вики подробно рассказывается о деталях, я оставлю ее СУХОЙ и позволю вам прочитать вики.
Я исправил свой, скопировав файлы в / var / www / html, а затем восстановив контекст по умолчанию для этой папки, используя:
restorecon -Rv /var/www/html