Недавно я перешел с Ubuntu на Fedora. Теперь мне жаль, что я не сделал это намного раньше, потому что я понял, что знаю о Linux не так много, как следовало бы - Ubuntu многое от меня скрывала.
Раньше на Ubuntu у меня было несколько виртуальных хостов, указывающих на каталог в домашнем каталоге моего пользователя:
/home/foo/Code/PHP/somedir/
Вот один из виртуальных хостов:
<VirtualHost *:80>
DocumentRoot /home/foo/Code/PHP/somedir
<Directory /home/foo/Code/PHP/somedir/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
ServerName database.dev
</VirtualHost>
Я установил database.dev
в моем файле hosts.
Что я уже сделал: После добавления виртуального хоста (в /etc/httpd/conf.d/database.dev.conf
- это правильное место?), я перезапустил Apache. Я получил несколько предупреждений SELinux и устранил их с помощью инструмента, поставляемого с Fedora. Я больше не получаю предупреждения SELinux при перезапуске Apache или просмотре http://database.dev/
в моем браузере. Однако я все еще получаю 403 ошибки.
В DocumentRoot для database.dev
, Я создал файл с именем "hello.txt", к которому я попытался получить доступ в моем браузере. Игра с правами доступа к файлам и владельцем ничего не дала. Вот отрывок из журнала ошибок:
[Sat Dec 31 20:20:34 2011] [error] [client 127.0.0.1] (13)Permission denied: access to /hello.txt denied
[Sat Dec 31 20:20:38 2011] [error] [client 127.0.0.1] (13)Permission denied: access to /hell2o.txt denied
(«hell2o.txt» не существует, «hello.txt» существует).
Вопрос: Если кто знает решение этой проблемы, поделитесь пожалуйста. Если у вас есть руководство по настройке Apache в Fedora (16) - поделитесь, пожалуйста, и этим, мне не удалось найти ничего специфического для Fedora. Все, что было адаптировано для предыдущих пользователей Ubuntu, было бы дополнительным бонусом.
Он по-прежнему считает, что SELinux связан с ошибкой, которую вы указываете, и аналогичной ошибкой в этом конкретном руководстве. Единственный способ полностью исключить его из будущей конфигурации - отключить SELinux и настроить Apache. Убедитесь, что все работает. Затем включите его снова. Если ошибки начинают повторяться, значит, вы, очевидно, нашли своего виновника.
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:Ch20: _The_Apache_Web_Server
Можете ли вы описать "игру с правами доступа к файлам", которую вы сделали?
Для того, чтобы это работало, вам нужно, чтобы пользователь, на котором запущен Apache, имел права доступа ко всем каталогам, ведущим к файлу, и права чтения для самого файла.
Либо одно из этих разрешений неверно, либо у вас все еще есть проблемы с SELinux.