Zoeken op website

Hoe u de Apache Userdir-module inschakelt op RHEL/CentOS


Gebruikersdirectory of Userdir is een Apache-module, waarmee gebruikersspecifieke mappen kunnen worden opgehaald via een Apache-webserver met behulp van de http://example.com/ ~user/ syntaxis.

Wanneer bijvoorbeeld de mod_userdir module is ingeschakeld, hebben gebruikersaccounts op het systeem via de Apache-webserver toegang tot inhoud in hun thuismappen met de hele wereld.

In dit artikel laten we u zien hoe u Apache userdirs (mod_userdir) inschakelt op RHEL, CentOS en Fedora servers gebruiken een Apache webserver.

In deze tutorial wordt ervan uitgegaan dat de Apache-webserver al op uw Linux-distributie is geïnstalleerd. Als u dat nog niet heeft gedaan, kunt u het installeren met behulp van de volgende procedure...

Stap 1: Installeer Apache HTTP-server

Om de Apache-webserver te installeren, gebruikt u de volgende opdracht op uw Linux-distributie.

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

Stap 2: Schakel Apache Userdirs in

Nu moet u uw Apache-webserver configureren om deze module te gebruiken in het configuratiebestand /etc/httpd/conf.d/userdir.conf, dat al is geconfigureerd met de beste opties.

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

Valideer vervolgens de inhoud zoals hieronder.

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>

Om een aantal gebruikers toegang te geven tot de UserDir-mappen, maar niet iemand anders, gebruikt u de volgende instelling in het configuratiebestand.

UserDir disabled
UserDir enabled testuser1 testuser2 testuser3

Om alle gebruikers toegang te geven tot UserDir-mappen, maar dit voor een paar gebruikers uit te schakelen, gebruikt u de volgende instelling in het configuratiebestand.

UserDir enabled
UserDir disabled testuser4 testuser5 testuser6

Nadat u de configuratie-instellingen volgens uw vereisten heeft gemaakt, moet u de Apache-webserver opnieuw opstarten om recente wijzigingen toe te passen.

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

Stap 3: Gebruikersmappen aanmaken

Nu moet u een public_html directory/directories aanmaken in de homedirectory's van user/users. Hier maak ik bijvoorbeeld een map public_html onder de thuismap van tecmint.

mkdir /home/tecmint/public_html

Pas vervolgens de juiste rechten toe op de mappen home en public_html van de gebruiker.

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

Stel ook de juiste SELinux context in voor Apache homedirs (httpd_enable_homedirs).

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

Stap 4: Test de ingeschakelde Apache Userdir

Verifieer ten slotte de Userdir door uw browser naar de hostnaam of het IP-adres van de server te verwijzen, gevolgd door de gebruikersnaam.

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

Als je wilt, kun je ook HTML-pagina's en PHP-informatie testen door de volgende bestanden te maken.

Maak een /home/tecmint/public_html/test.html bestand met de volgende inhoud.

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

Maak een /home/tecmint/public_html/test.php bestand met de volgende inhoud.

<?php
  phpinfo();
?>

Dat is alles! In dit artikel hebben we uitgelegd hoe u de Userdir-module kunt inschakelen, zodat gebruikers inhoud vanuit hun thuismappen kunnen delen. Als u vragen heeft over dit artikel, kunt u deze stellen in het commentaargedeelte hieronder.