Kako omogočiti modul Apache Userdir na RHEL/CentOS


Uporabniški imenik ali Userdir je modul Apache, ki omogoča pridobivanje uporabniško specifičnih imenikov prek spletnega strežnika Apache z uporabo sintakse http://example.com/~user/ .

Ko je modul mod_userdir na primer omogočen, bodo lahko uporabniški računi v sistemu prek spletnega strežnika Apache dostopali do vsebine v svojih domačih imenikih s svetom.

V tem članku vam bomo pokazali, kako omogočiti uporabniške imenike Apache (mod_userdir) na strežnikih RHEL, CentOS in Fedora z uporabo spletnega strežnika Apache.

Ta vadnica predpostavlja, da imate v distribuciji Linuxa že nameščen spletni strežnik Apache. Če je niste, jo lahko namestite po naslednjem postopku ...

1. korak: Namestite strežnik Apache HTTP

Če želite namestiti spletni strežnik Apache, uporabite naslednji ukaz v svoji distribuciji Linuxa.

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

2. korak: Omogočite Apache Userdirs

Zdaj morate svoj spletni strežnik Apache konfigurirati za uporabo tega modula v konfiguracijski datoteki /etc/httpd/conf.d/userdir.conf , ki je že konfigurirana z najboljšimi možnostmi.

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

Nato vsebino potrdite podobno kot spodaj.

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

Če želite nekaterim uporabnikom omogočiti dostop do imenikov UserDir , ne pa nikomur drugemu, uporabite naslednjo nastavitev v konfiguracijski datoteki.

UserDir disabled
UserDir enabled testuser1 testuser2 testuser3

Če želite vsem uporabnikom omogočiti dostop do imenikov UserDir , vendar to onemogočite nekaterim uporabnikom, uporabite naslednjo nastavitev v konfiguracijski datoteki.

UserDir enabled
UserDir disabled testuser4 testuser5 testuser6

Ko nastavite konfiguracijske nastavitve v skladu z vašimi zahtevami, morate znova zagnati spletni strežnik Apache, da uporabite nedavne spremembe.

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

3. korak: Ustvarjanje uporabniških imenikov

Zdaj morate v domačih imenikih uporabnikov/uporabnikov ustvariti imenik/imenike public_html . Tu na primer ustvarjam imenik public_html v domačem imeniku uporabnika tecmint.

# mkdir /home/tecmint/public_html

Nato uporabite pravilna dovoljenja za uporabniški imenik home in public_html.

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

Prav tako nastavite pravi kontekst SELinux za Apache homedirs (httpd_enable_homedirs).

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

4. korak: Preizkusite omogočen Apache Userdir

Na koncu preverite Userdir tako, da svoj brskalnik usmerite na ime gostitelja strežnika ali naslov IP, ki mu sledi uporabniško ime.

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

Če želite, lahko preizkusite tudi strani HTML in informacije o PHP, tako da ustvarite naslednje datoteke.

Ustvarite /home/tecmint/public_html/test.html datoteko z naslednjo vsebino.

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

Ustvarite /home/tecmint/public_html/test.php datoteko z naslednjo vsebino.

<?php
  phpinfo();
?>

To je vse! V tem članku smo razložili, kako omogočiti modul Userdir, da uporabnikom omogoči skupno rabo vsebine iz domačih imenikov. Če imate vprašanja v zvezi s tem člankom, vas prosimo, da vprašate v spodnjem oddelku za komentarje.