Kaip įjungti „Apache Userdir“ modulį RHEL/CentOS


Naudotojų katalogas arba Userdir yra „Apache“ modulis, leidžiantis per „Apache“ žiniatinklio serverį gauti konkrečių naudotojų katalogus, naudojant http://example.com/ ~user/ sintaksė.

Pavyzdžiui, kai įjungtas mod_userdir modulis, sistemos naudotojų paskyros galės pasiekti turinį savo namų kataloguose su pasauliu per „Apache“ žiniatinklio serverį.

Šiame straipsnyje parodysime, kaip įgalinti „Apache“ userdir (mod_userdir) RHEL, CentOS ir Fedora serveriai, naudojantys „Apache“ žiniatinklio serverį.

Šioje pamokoje daroma prielaida, kad „Linux“ paskirstyme jau įdiegėte „Apache“ žiniatinklio serverį. Jei to nepadarėte, galite jį įdiegti naudodami šią procedūrą…

1 veiksmas: įdiekite „Apache HTTP Server“.

Norėdami įdiegti „Apache“ žiniatinklio serverį, savo „Linux“ paskirstyme naudokite šią komandą.

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

2 veiksmas: įgalinkite „Apache Userdirs“.

Dabar reikia sukonfigūruoti savo Apache žiniatinklio serverį, kad šis modulis būtų naudojamas konfigūracijos faile /etc/httpd/conf.d/userdir.conf, kuris jau sukonfigūruotas geriausiomis parinktimis.

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

Tada patvirtinkite turinį taip, kaip nurodyta toliau.

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>

Norėdami leisti keliems vartotojams pasiekti UserDir katalogus, bet ne kam nors kitam, konfigūracijos faile naudokite toliau pateiktą parametrą.

UserDir disabled
UserDir enabled testuser1 testuser2 testuser3

Norėdami leisti visiems vartotojams pasiekti UserDir katalogus, bet išjungti tai keliems vartotojams, konfigūracijos faile naudokite šį parametrą.

UserDir enabled
UserDir disabled testuser4 testuser5 testuser6

Atlikę konfigūracijos nustatymus pagal savo reikalavimus, turite iš naujo paleisti „Apache“ žiniatinklio serverį, kad pritaikytumėte naujausius pakeitimus.

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

3 veiksmas: vartotojų katalogų kūrimas

Dabar reikia sukurti public_html katalogą/katalogus vartotojo/naudotojų namų kataloguose. Pavyzdžiui, čia aš kuriu public_html katalogą tecmint vartotojo namų kataloge.

mkdir /home/tecmint/public_html

Tada pritaikykite teisingus leidimus naudotojo pagrindinio ir public_html kataloguose.

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

Be to, nustatykite tinkamą SELinux kontekstą, skirtą Apache homedirs (httpd_enable_homedirs).

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

4 veiksmas: išbandykite įgalintą „Apache“ vartotojo dir

Galiausiai patvirtinkite Userdir nukreipdami naršyklę į serverio prieglobos pavadinimą arba IP adresą, po kurio nurodomas naudotojo vardas.

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

Jei norite, taip pat galite išbandyti HTML puslapius ir PHP informaciją sukurdami šiuos failus.

Sukurkite failą /home/tecmint/public_html/test.html su šiuo turiniu.

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

Sukurkite failą /home/tecmint/public_html/test.php su šiuo turiniu.

<?php
  phpinfo();
?>

Tai viskas! Šiame straipsnyje paaiškinome, kaip įjungti Userdir modulį, kad naudotojai galėtų bendrinti turinį iš savo namų katalogų. Jei turite klausimų dėl šio straipsnio, nedvejodami klauskite toliau pateiktame komentarų skyriuje.