Поиск по сайту:

Как включить модуль Apache Userdir в RHEL/CentOS


Каталог пользователя или Userdir — это модуль Apache, который позволяет получать каталоги конкретного пользователя через веб-сервер Apache с помощью http://example.com/ Синтаксис ~user/.

Например, если модуль mod_userdir включен, учетные записи пользователей в системе смогут получать доступ к контенту в своих домашних каталогах со всем миром через веб-сервер Apache.

В этой статье мы покажем вам, как включить userdirs Apache (mod_userdir) в RHEL, CentOS и Серверы Fedora, использующие веб-сервер Apache.

В этом руководстве предполагается, что в вашем дистрибутиве Linux уже установлен веб-сервер Apache. Если у вас его нет, вы можете установить его, выполнив следующую процедуру…

Шаг 1. Установите HTTP-сервер Apache

Чтобы установить веб-сервер Apache, используйте следующую команду в вашем дистрибутиве Linux.

yum install httpd           [On CentOS/RHEL]
dnf install httpd           [On Fedora]

Шаг 2. Включите пользовательские каталоги Apache

Теперь вам нужно настроить веб-сервер Apache для использования этого модуля в файле конфигурации /etc/httpd/conf.d/userdir.conf, который уже настроен с лучшими параметрами.

vi /etc/httpd/conf.d/userdir.conf

Затем проверьте содержимое, как показано ниже.

directory if a ~user request is received.
#
The path to the end user account 'public_html' directory must be
accessible to the webserver userid.  This usually means that ~userid
must have permissions of 711, ~userid/public_html must have permissions
of 755, and documents contained therein must be world-readable.
Otherwise, the client will only receive a "403 Forbidden" message.
#
<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 enabled tecmint

    #
    # 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>

#
Control access to UserDir directories.  The following is an example
for a site where these directories are restricted to read-only.
#
<Directory "/home/*/public_html">
    ## Apache 2.4 users use following ##
    AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS

## Apache 2.2 users use following ##
        Options Indexes Includes FollowSymLinks        
        AllowOverride All
        Allow from all
        Order deny,allow
</Directory>

Чтобы разрешить доступ к каталогам UserDir нескольким пользователям, но не кому-либо еще, используйте следующий параметр в файле конфигурации.

UserDir disabled
UserDir enabled testuser1 testuser2 testuser3

Чтобы разрешить всем пользователям доступ к каталогам UserDir, но отключить это для некоторых пользователей, используйте следующий параметр в файле конфигурации.

UserDir enabled
UserDir disabled testuser4 testuser5 testuser6

После того, как вы выполнили настройки конфигурации в соответствии с вашими требованиями, вам необходимо перезапустить веб-сервер Apache, чтобы применить последние изменения.

systemctl restart httpd.service  [On SystemD]
service httpd restart            [On SysVInit]

Шаг 3. Создание пользовательских каталогов

Теперь вам нужно создать каталог/каталоги public_html в домашних каталогах пользователей/пользователей. Например, здесь я создаю каталог public_html в домашнем каталоге пользователя tecmint.

mkdir /home/tecmint/public_html

Затем примените правильные разрешения к каталогам home и public_html пользователя.

chmod 711 /home/tecmint
chown tecmint:tecmint /home/tecmint/public_html
chmod 755 /home/tecmint/public_html

Также установите правильный контекст SELinux для Apache homedirs (httpd_enable_homedirs).

setsebool -P httpd_enable_homedirs true
chcon -R -t httpd_sys_content_t /home/tecmint/public_html

Шаг 4. Проверьте включенный Apache Userdir

Наконец, проверьте Userdir, указав в браузере имя хоста или IP-адрес сервера, а затем имя пользователя.

http://example.com/~tecmint
OR
http://192.168.0.105/~tecmint

Если вы хотите, вы также можете протестировать HTML-страницы и информацию PHP, создав следующие файлы.

Создайте файл /home/tecmint/public_html/test.html со следующим содержимым.

<html>
  <head>
    <title>TecMint is Best Site for Linux</title>
  </head>
  <body>
    <h1>TecMint is Best Site for Linux</h1>
  </body>
</html>

Создайте файл /home/tecmint/public_html/test.php со следующим содержимым.

<?php
  phpinfo();
?>

Вот и все! В этой статье мы объяснили, как включить модуль Userdir, чтобы пользователи могли обмениваться контентом из своих домашних каталогов. Если у вас есть вопросы по поводу этой статьи, не стесняйтесь задавать их в разделе комментариев ниже.