Wyszukiwanie w witrynie

Jak włączyć moduł Apache Userdir w RHEL/CentOS


User Directory lub Userdir to moduł Apache, który umożliwia pobieranie katalogów specyficznych dla użytkownika za pośrednictwem serwera internetowego Apache przy użyciu http://example.com/ Składnia ~user/.

Na przykład, gdy moduł mod_userdir jest włączony, konta użytkowników w systemie będą mogły uzyskać dostęp do treści w swoich katalogach domowych na całym świecie za pośrednictwem serwera WWW Apache.

W tym artykule pokażemy, jak włączyć userdir Apache (mod_userdir) w RHEL, CentOS i Serwery Fedora korzystające z serwera WWW Apache.

W tym samouczku założono, że masz już zainstalowany serwer WWW Apache w swojej dystrybucji Linuksa. Jeśli jeszcze tego nie zrobiłeś, możesz go zainstalować, wykonując poniższą procedurę…

Krok 1: Zainstaluj serwer Apache HTTP

Aby zainstalować serwer WWW Apache, użyj następującego polecenia w swojej dystrybucji Linuksa.

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

Krok 2: Włącz katalogi użytkownika Apache

Teraz musisz skonfigurować swój serwer WWW Apache do korzystania z tego modułu w pliku konfiguracyjnym /etc/httpd/conf.d/userdir.conf, który jest już skonfigurowany z najlepszymi opcjami.

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

Następnie zweryfikuj zawartość, jak poniżej.

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>

Aby umożliwić dostęp do katalogów UserDir kilku użytkownikom, ale nikomu innemu, użyj poniższego ustawienia w pliku konfiguracyjnym.

UserDir disabled
UserDir enabled testuser1 testuser2 testuser3

Aby zezwolić wszystkim użytkownikom na dostęp do katalogów UserDir, ale wyłączyć tę opcję dla kilku użytkowników, użyj następującego ustawienia w pliku konfiguracyjnym.

UserDir enabled
UserDir disabled testuser4 testuser5 testuser6

Po dokonaniu ustawień konfiguracyjnych zgodnie z wymaganiami należy ponownie uruchomić serwer WWW Apache, aby zastosować ostatnie zmiany.

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

Krok 3: Tworzenie katalogów użytkowników

Teraz musisz utworzyć katalog/katalogi public_html w katalogach domowych użytkownika/użytkowników. Na przykład tutaj tworzę katalog public_html w katalogu domowym użytkownika tecmint.

mkdir /home/tecmint/public_html

Następnie zastosuj odpowiednie uprawnienia do katalogów home i public_html użytkownika.

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

Ustaw także poprawny kontekst SELinux dla katalogów domowych Apache (httpd_enable_homedirs).

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

Krok 4: Przetestuj katalog użytkownika Apache z włączoną obsługą

Na koniec sprawdź Userdir, wskazując w przeglądarce nazwę hosta serwera lub adres IP, po którym następuje nazwa użytkownika.

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

Jeśli chcesz, możesz także przetestować strony HTML i informacje PHP, tworząc następujące pliki.

Utwórz plik /home/tecmint/public_html/test.html z następującą treścią.

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

Utwórz plik /home/tecmint/public_html/test.php z następującą zawartością.

<?php
  phpinfo();
?>

To wszystko! W tym artykule wyjaśniliśmy, jak włączyć moduł Userdir, aby umożliwić użytkownikom udostępnianie treści z ich katalogów domowych. Jeśli masz pytania dotyczące tego artykułu, możesz je zadać w sekcji komentarzy poniżej.