Német Krisztián

Apache virtuális host beállítása Rocky Linux 9 linux rendszeren
Az Apache virtualhost lehetővé teszi egynél több webhely futtatását egyetlen szerveren.

Az Apache virtualhost lehetővé teszi egynél több webhely futtatását egyetlen szerveren. A virtualhostok segítségével megadhatod a webhely gyökérkönyvtárát (a webhely fájljait tartalmazó könyvtárat), külön biztonsági beállításokat hozhatsz létre minden webhelyhez, különböző SSL-tanúsítványokat használhatsz, és még sok mást.

Ez a cikk bemutatja, hogyan állíthatod be az Apache virtualhost szolgáltatást CentOS 8 linux rendszeren.

Előfeltételek

Mielőt folytatnánk győződjünk meg, hogy adottak-e az ideális feltételek:

Végezzük el az előfeltételek ellenőrzését

A golinux.hu domainnal fogok dolgozni:

nslookup golinux.hu
Non-authoritative answer:
Name:   golinux.hu
Address: 159.223.9.239
A golinux.hu tatomány DNS beállítása

Ez így megfelelő. A képen a névszerver beállításom látható ez eltérhet, attól függően hol lett a domain regisztrálva és ki biztosítja a namserver-t.

Még gyorsan ellenőrizzük az apache rajta van-e a gépen és fut-e a szolgáltatása:

systemctl status httpd

Egy elfogadható kimenet:

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: active (running) since Tue 2022-09-06 15:44:34 UTC; 3h 25min ago
     Docs: man:httpd.service(8)
 Main PID: 17033 (httpd)
   Status: "Total requests: 42; Idle/Busy workers 100/0;Requests/sec: 0.0034; Bytes served/sec: 177 B/sec"
    Tasks: 278 (limit: 4676)
   Memory: 33.1M
   CGroup: /system.slice/httpd.service
           ├─17033 /usr/sbin/httpd -DFOREGROUND
           ├─17035 /usr/sbin/httpd -DFOREGROUND
           ├─17036 /usr/sbin/httpd -DFOREGROUND
           ├─17037 /usr/sbin/httpd -DFOREGROUND
           ├─17038 /usr/sbin/httpd -DFOREGROUND
           └─17260 /usr/sbin/httpd -DFOREGROUND

Minden adott a virtualhost kialakításához, az előfeltétlek ideálisak.

Könyvtár struktúra kialakítása

Jelen példában csak egy domain állítunk be, a golinux.hu-t, de a többi domain-od is hasonlóan mehet mellé. A /var/www könyvtárba fogjuk a domain webroot könyvtárait létrehozni.

/var/www/
├── peldadomain.hu
├── peldadomain.org
├── peldadomain.com

Az én saját virtulalhost-om webroot-ja a /var/www/golinux.hu/ könyvtár lesz. Amit ide teszek, az lesz a http://golinux.hu/ tartalma.

Létre is hozom ezt a könyvtárat:

mkdir -p /var/www/golinux.hu

A virtualhost konfigurációs fájl létrehozása

Van néhány módja a virtuális host beállításának. Fel lehet venni az összes virtuális host-ot egyetlen fájlba, vagy létrehozhatsz minden egyes virtuális host-hoz egy-egy külön konfigurációs fájlt. Általában előnyben kell részesíteni a második megközelítést, amely jobban karbantartható és átlátható.

Alapértelmezés szerint az Apache úgy van beállítva, hogy az /etc/httpd/conf.d/ könyvtárból betöltse az összes konfigurációs fájlt, amely .conf-ra végződik. Nyissuk meg vim-mel a /etc/httpd/conf.d/golinux.hu.conf

<VirtualHost *:80>
    ServerName golinux.hu
    ServerAlias www.golinux.hu
    ServerAdmin webmaster@golinux.hu
    DocumentRoot /var/www/golinux.hu/

    <Directory /var/www/golinux.hu>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog /var/log/httpd/golinux.hu-error.log
    CustomLog /var/log/httpd/golinux.hu-access.log combined
</VirtualHost>
  • ServerName: Annak a tartománynak a neve, amelyhez a virtuális host konfigurációt használni fogod. Ez a domain neve.
  • ServerAlias: Minden más tartomány, amelyhez a virtuális host konfigurációja is használatos, például az www aldomain. Majd a későbbiekben átirányítjuk, így nem lesz www.golinux.hu csak golinux.hu
  • ServerAdmin: bármilyen e-mail cím, nem fogjuk használni.
  • DocumentRoot: Az a könyvtár, amelyből az Apache kiszolgálja a tartományfájlokat.
  • Directory: Ez a direktíva vezérli a könyvtáronkénti kiszolgáló viselkedését.
  • ErrorLogCustomLog: A naplófájlok helye.

Szerkeszd a fájlt igényeid szerint, és mentsd el.

A konfigurációs fájl nevének .conf-ra kell végződnie. A konfigurációs fájlt tetszés szerint nevezheted el. A legjobb módszer viszont a doménnév használata a virtuális host konfigurációs fájl neveként.

Teszteld a konfigurációs fájl szintaxisát a következővel:

apachectl configtest

Ha minden rendben a kimenete egy Syntax OK

Mivel az apache konfigurációja megváltozott újra kell indítani a szolgáltatást:

systemctl restart httpd

Apache virtuális host működésének ellenőrzése

Tesztelés céljából hozzunk létre egy index.html fájlt a virtuális host gyökérkönyvtárába:

vi /var/www/golinux.hu/index.html

Tartalma pedig a következő legyen:

<!DOCTYPE html>
<html lang="hu" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Kezdőoldal - golinux.hu</title>
  </head>
  <body>
    <h1>Nagyszerű! Az az első virtális hostom!</h1>
  </body>
</html>

Fontos hogy megfelelő jogosultság legyen a fájlon, mert ha a root-é nem fog futni, ezért adjuk át az apache felhasználónak.

chown -R apache: /var/www/golinux.hu

Így kell kinéznie a fájlnak:

-rw-r--r--. 1 apache apache 215 Sep  6 20:14 /var/www/golinux.hu/index.html

Nyisd meg böngészőben http://golinux.hu címet, és ellenőrizd, hogy minden a várt módon működik-e.

Mondjuk egy ehhez hasonló kimenet elfogadható:

golinux.hu virtuális host beállításának ellenőrzése

Összegzés

Ha sikerült betölteni a böngészőbe az első virtuális hostunk, akkor ennek analógiájára létrehozhatunk további virtuális hostokat vagy jelen esetben domain-okat (pl. golinux.org, linuxninja.hu stb.) és aldomain-okat (pl. tippek.golinux.hu). Még egy feladatunk maradt az TLS/SSL beállítása, hogy weboldalunkra látogatók nagyobb biztonságba legyenek.

Ezek is érdekesek lehetnek számodra

PHP 8 telepítése Rocky Linux 9 linux rendszeren

PHP 8 telepítése Rocky Linux 9 linux rendszeren

A PHP az egyik leggyakrabban használt szerveroldali programozási nyelv. Számos népszerű CMS pl. a WordPress, a Joomla és keretrendszer pl. a Laravel, a CakePHP, a Symfony PHP-ben épül fel.