Я просто пытаюсь создать папку public_html под своим именем пользователя на Red Hat Linux Server (и все это было немного головной болью).
Я создал папку и установил разрешения на 755.
Я не был уверен, что делать с Apache (и, по общему признанию, найти файл httpd.conf было кошмаром из-за нетрадиционной компоновки каталогов), но теперь я нашел его и не уверен, что делать.
Я видел этот вопрос; Настройка индивидуально доступного public_html для каждого пользователя Linux-машины, но я не понимаю ответа. Как я могу использовать mod_userdir (я новичок во всем этом).
Я смотрел на это;
http://httpd.apache.org/docs/2.0/mod/mod_userdir.html
Могу ли я добавить что-нибудь в файл httpd..conf?
Я попытался добавить «UserDir enabled username» вверху и перезапустить Apache, но все равно не могу найти страницу по адресу;
domain.com/~username/
В чем может быть проблема?
Я неправильно использую mod_userdir? (Я даже не знаю, КАК его использовать)
Спасибо!
Какая версия RedHat у вас установлена? В RedHat 6.x это довольно просто:
1) допустим, у меня есть пользователь ec2-user
создан с домашним каталогом /home/ec2-user
2) создать каталог /home/ec2-user/public_html
и убедитесь, что каталог /home/ec2-user
и /home/ec2-user/public_html
установили разрешения не ниже 0711 (установленный бит исполняемого файла означает, что apache
пользователь, под которым запущен веб-сервер apache2, будет иметь разрешение на вход в эти каталоги). Кроме того, любое содержимое этого каталога должно быть доступно для чтения apache
пользователь.
3) enable (включить) UserDir
модуль в конфигурации веб-сервера apache2, который доступен в файле /etc/httpd/conf/httpd.conf
. Закомментируйте строку UserDir disabled
и раскомментируйте строку UserDir public_html
:
<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
#UserDir disabled
#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
UserDir public_html
</IfModule>
4) протестируйте конфигурацию веб-сервера apache2 с помощью httpd -t
, он должен вернуться Syntax OK
иначе что-то пошло не так
5) перезапустите веб-сервер apache2 с помощью service httpd restart
и, при желании, включите службу с помощью chkconfig httpd on
при загрузке
6) наконец, если у вас включен selinux в enforcing
режим - вы можете проверить это с помощью sestatus
- вы должны запустить эту команду setsebool -P httpd_read_user_content=on
разрешить веб-серверу apache2 читать пользовательский контент
7) проверьте это, например с сервера запустить w3m http://localhost/~ec2-user
, если есть какие-либо ошибки, они должны быть записаны в файл журнала /var/log/httpd/error_log