Webszerver CentOS 8 rendszeren php7, node.js és redis segítségével

Előszó

2 nap telt el a CentOS operációs rendszer új verziójának megjelenése óta, nevezetesen a CentOS 8. És eddig elég sok cikk van az interneten arról, hogy miként zajlanak benne a dolgok, ezért úgy döntöttem, hogy pótlom ezt a hiányt. Sőt, nemcsak arról fogok beszélni, hogyan kell telepíteni ezt a pár programot, hanem arról is, hogyan látom általában a Linux virtuális környezetbe történő telepítését a modern világban tipikus feladatokhoz, beleértve a lemezek particionálását és így tovább.

De az elején szeretnék röviden szólni arról, hogy miért érdemes erre a verzióra váltani az összes korábbi verzióról, és ennek két oka van:

  1. php7! A CentOS előző verziójában az „Orthodox” php5.4 lett telepítve...

    Oké, hogy egy kicsit komolyabbak legyünk, rengeteg csomag ugrott át több verzión is tömegesen. Mi (a redhat-szerű OS-ek rajongói) végre beléptünk, ha nem is a jövőbe, de legalább a jelenbe. Az Ubuntu támogatók pedig már nem fognak rajtunk nevetni és ujjal mutogatni, hát... legalábbis egy ideig ;).

  2. Áttérés yumról dnf-re. A fő különbség az, hogy most már hivatalosan is támogatott, hogy egyszerre több csomagverzióval dolgozzon. Közvetlenül a nyolc között soha nem találtam ezt hasznosnak, de ígéretesen hangzik.

Hozzon létre egy virtuális gépet

Különféle hipervizorok léteznek, és nem célom, hogy az olvasót egy konkrétra szabjam, elmondom az általános elveket.

Память

Először is... Egy CentOS rendszer 7-től kezdődő telepítéséhez biztosan, és véleményem szerint ez a 6-ban is így volt ("de ez nem biztos") kell minimum 2 GB RAM. Ezért azt tanácsolom, hogy először adjon ki ennyit.

De ha valami, telepítés után a memória mérete csökkenthető. 1 GB-on egész jól működik a csupasz rendszer, megnéztem.

korong

Normál telepítéshez hozzon létre egy 20-30 GB kapacitású virtuális lemezt. Ez elég a rendszerhez. És egy második lemez az adatok számára. Mind a virtuális gép létrehozásának szakaszában, mind azután hozzáadható. Általában később teszem hozzá.

feldolgozó

Az egyik magon a csupasz rendszer nem lassul. És mivel az erőforrások szabadon méretezhetők, nem látom értelmét annak, hogy többet adjon a telepítési szakaszban (hacsak nem ismeri tökéletesen a követelményeket, és túl lusta ahhoz, hogy újra belemenjen a konfigurátorba)

A többi általában alapértelmezettként hagyható.

A tényleges telepítés

Szóval... Indítsuk el a telepítőt... Én személy szerint már régóta csak virtuális gépek formájában telepítek ilyen szolgáltatásokat, így nem írok le mindenféle terjesztési rekordokat pendrive-on - csak csatolom az ISO-t CD-ként a kedvenc hypervisoromban, töltse le és menjen.

Az alap telepítés meglehetősen jellemző, csak néhány ponton térek ki.

Forrás kiválasztása

A nyolcadik verzió megjelenése óta napok óta hevert a Yandex tükre. Nos, ez időnként emelkedik, majd ismét hibát jelez. Biztos vagyok benne, hogy a szolgáltatás túlzott terhelése miatt. Ezért a forrás megjelöléséhez személy szerint a szokásos cím megadása helyett el kellett mennem itt, válassza ki a nekem tetsző tükröt, és kézzel írja be a címet a telepítő ablakba. Itt fontos megjegyezni, hogy meg kell adnia annak a mappának az elérési útját, ahol a könyvtár található repodata. Például mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Lemez particionálás

Ez a kérdés szerintem meglehetősen vallásos. Minden rendszergazdának megvan a maga álláspontja ebben a kérdésben. De továbbra is megosztom a véleményemet a kérdéssel kapcsolatban.

Igen, elvileg a teljes területet le lehet osztani a gyökérnek, és működni fog, legtöbbször még egész jól is. Miért kerítsünk be egy kertet különböző szakaszokkal? — Ennek szerintem két fő oka van: a kvóták és a hordozhatóság.

Például, ha valami elromlik, és hibák lépnek fel a fő adatpartíción, akkor továbbra is képesnek kell lennie a rendszer indítására és az újraélesztési intézkedések végrehajtására. Ezért én személy szerint külön partíciót osztok ki a /boot számára. Van kernel és rendszerbetöltő. Általában 500 megabájt is elég, de ritka esetekben többre is szükség lehet, és mivel már megszoktuk, hogy terabájtban mérjük a helyet, ezért 2 GB-ot szánok erre a részre. És itt az a fontos, hogy ezt nem lehet lvm-en megtenni.

Ezután következik a rendszer gyökere. Egy normál telepítéshez soha nem kellett 4 GB-nál több rendszerenként, de az ütemezett események során gyakran használom a /tmp könyvtárat a disztribúciók kicsomagolásához, és nem látom értelmét külön partíciónak dedikálni - a modern rendszerekben automatikusan megtisztul, így nincs feltöltve. Tehát 8 GB-ot osztok ki a root számára.

Csere... Nagyjából kevés gyakorlati haszna van belőle. Ha elkezdi használni a swap-ot a szerveren, ez ma a való világban csak azt jelenti, hogy a szervernek több RAM-ot kell hozzáadnia. Ellenkező esetben garantált a teljesítményproblémák előfordulása (vagy néhány program „kiszivárog” a memóriájában). Ezért erre a részre csak diagnosztikai célokra van szükség. Ezért a 2 GB kiváló szám. Igen, függetlenül attól, hogy mennyi memória van a szerveren. Igen, elolvastam azokat a cikkeket, ahol a memória és a cseretérfogat arányáról írnak... IMHO, ezek elavultak. 10 év gyakorlatom alatt erre soha nem volt szükségem. 15 éve használtam, igen.

IMHO, mindenki maga döntheti el, hogy a /home-ot külön partícióra osztja-e. Ha valaki a szerveren aktívan használni fogja ezt a könyvtárat, jobb, ha kiosztja. Ha senki, nincs rá szükség.

Következő, /var. Szerintem mindenképpen ki kell emelni. Először is korlátozhatja magát 4 GB-ra, és meglátja, hogyan megy. És igen, a „hogyan megy” alatt ezt értem

  1. Először is, mindig csatlakoztathat egy másik lemezt a /var alkönyvtárba (amit később bemutatok egy példával)
  2. Másodszor, van lvm-ünk – mindig hozzáadhatja. És általában akkor kell hozzáadni, ha túl sok rönk kezd ömleni oda. De ezt a számot soha nem tudtam előre megjósolni, ezért 2 GB-tal kezdem, majd nézem.

A fel nem osztott terület szabad marad a kötetcsoportban, és később bármikor felhasználható.

LVM

minden Érdemes az LVM-ben a /boottól eltérő partíciókat létrehozni. Igen, beleértve a cserét is. Igen, minden tanács szerint a swap legyen a lemez elején, de LVM esetében a helye elvileg nem határozható meg. De ahogy fentebb írtam, a rendszered nem szabad egyáltalán használj swapot. Ezért nem mindegy, hogy hol van. Hát nem '95-ben élünk, őszintén!

Továbbá az LVM-ben számos alapvető entitás van, amelyekkel együtt tudnod kell élni:

  • fizikai térfogat
  • kötetcsoport
  • logikai kötet

A fizikai kötetek csoportokba vannak vonva, és minden fizikai kötet csak egy csoportban lehet, és egy csoport egyszerre több fizikai köteten is elhelyezkedhet.
A logikai kötetek pedig egy-egy csoportban vannak.

De... Basszus, megint itt a 21. század. A szerverek pedig virtuálisak. Nincs értelme ugyanazokat a mechanizmusokat alkalmazni rájuk, mint a fizikaiakra. A virtuálisaknak pedig fontos, hogy a rendszertől külön legyenek az adatok! Ez nagyon fontos, különösen annak érdekében, hogy gyorsan át lehessen váltani egy másik virtuális gépre (például új operációs rendszerre váltáskor), és általában mindenféle hasznos cucc esetén (például a biztonsági mentések elkülönítése partíciókonként hypervisor eszközökkel). . Ezért egy kötetcsoportot használ a rendszer, és szükségszerűen egy másikat az adatokhoz! Ez a logikai felosztás nagyon sokat segít az életben!

Ha egy virtuális gép létrehozásakor csak egy virtuális merevlemezt hozott létre, akkor a konfiguráció itt ér véget. És ha kettő van, akkor még ne jelölje meg a másodikat.

Kezdjük a telepítést.

Telepítés után

Tehát az újonnan telepített rendszer végre elindult. Az első dolog, amit ellenőrizni kell, az internet.

ping ya.ru

Van válasz? - Remek, nyomd meg a Ctrl-C.
Ha nem, akkor hozz létre egy hálózatot, e nélkül nincs élet, de a cikkem nem erről szól.

Most, ha még nem vagyunk root alatt, menjünk root alá, mert gépelés ilyen a a sudo parancsok száma személyesen megtört (és a paranoiás adminok bocsássák meg):

sudo -i

Most az első dolgunk a gépelés

dnf -y update

És ha 2019-ben olvassa ezt a cikket, valószínűleg semmi sem fog történni, de egy próbát megért.

Most állítsuk be a maradék lemezt

Tegyük fel, hogy a partíció a rendszerrel xvda volt, akkor az adatlemez xvdb lesz. RENDBEN.

A legtöbb tanács a következővel kezdődik: „Futtassa az fdisket, és hozzon létre egy partíciót...”

Szóval ez van rossz!

Még egyszer elmondom, mert nagyon fontos! Ebben az esetben egy teljes virtuális lemezt elfoglaló LVM-mel dolgozni káros partíciókat létrehozni rajta! Ebben a kifejezésben minden szó fontos. Ha LVM nélkül dolgozunk, akkor muszáj. Ha van rendszerünk és adatunk a lemezen, akkor szükségünk van rá. Ha valamilyen oknál fogva üresen kell hagynunk a lemez felét, azt is tegyük. De általában ezek a feltételezések tisztán elméletiek. Mert ha úgy döntünk, hogy helyet adunk egy meglévő partícióhoz, akkor ezt a legegyszerűbben ezzel a konfigurációval tudjuk megtenni. Az adminisztráció egyszerűsége pedig sok más dolgot felülmúl, hogy céltudatosan haladunk e konfiguráció felé.

A kényelem pedig az, hogy ha ki akarja bővíteni az adatpartíciót, egyszerűen csak szóközöket kell hozzáadnia a virtuális partícióhoz, majd ki kell bontania a csoportot a vgextend segítségével, és kész! Ritka esetekben másra is szükség lehet, de legalább nem kell az elején bővíteni a logikai hangerőt, ami már így is jó. Egyébként pont ennek a kötetnek a bővítéséhez azt javasolják, hogy először töröljük a meglévőt, majd hozzunk létre egy újat a tetejére... Ami nem néz ki túl jól, és élőben nem is kivitelezhető, de az általam jelzett forgatókönyv szerinti bővítés lehetséges. „menet közben”, a partíció leszerelése nélkül.

Tehát létrehozunk egy fizikai kötetet, majd egy kötetcsoportot, amely tartalmazza azt, majd egy partíciót a szerverünkhöz:

pvcreate /dev/xvdb
vgcreate data /dev/xvdb
lvcreate -n www -L40G data
mke2fs -t ext4 /dev/mapper/data-www

Itt az „L” nagybetű (és a méret GB-ban) helyett megadhat egy kicsit, majd az abszolút méret helyett egy relatívt, például az aktuális szabad hely felének kihasználásához. kötetcsoport, meg kell adnia a „-l +50%FREE”

Az utolsó parancs pedig az ext4 fájlrendszerben formázza a partíciót (ez eddigi tapasztalataim szerint a legnagyobb stabilitást mutatja arra az esetre, ha minden elromolna, ezért inkább azt szeretem).

Most szereljük fel a partíciót a megfelelő helyre. Ehhez adja hozzá a megfelelő sort az /etc/fstab fájlhoz:

/dev/mapper/data-www    /var/www                ext4    defaults        1 2

És tárcsázunk

mount /var/www

Ha hiba történik, riasztson! Mert ez azt jelenti, hogy hibánk van az /etc/fstab fájlban. És a következő újraindításkor nagyon nagy problémáink lesznek. Előfordulhat, hogy a rendszer egyáltalán nem indul el, ami gyakran nagyon szomorú a felhőszolgáltatások esetében. Ezért vagy sürgősen javítani kell az utoljára hozzáadott sort, vagy teljesen törölni kell! Ezért nem írtuk ki kézzel a mount parancsot - akkor nem lett volna olyan kiváló lehetőségünk egyből ellenőrizni a konfigurációt.

Most tulajdonképpen mindent telepítünk, amit akartunk, és megnyitjuk a portokat az internethez:

dnf groupinstall "Development Tools"
dnf -y install httpd @nodejs @redis php
firewall-cmd --add-service http --permanent
firewall-cmd --add-service https --permanent

Ha szeretnéd, ide is rakhatsz adatbázist, de én személy szerint igyekszem elkülöníteni a webszervertől. Bár a közelben tartás gyorsabb, igen. A virtuális hálózati adapterek sebessége általában gigabit körül mozog, és ha ugyanazon a gépen dolgozunk, a hívások szinte azonnal megtörténnek. De kevésbé biztonságos. Kinek mi a fontosabb?

Most hozzáadjuk a paramétert a konfigurációs fájlhoz (újat hozunk létre, a CentOS modern ideológiája ilyen)

echo "vm.overcommit_memory = 1"> /etc/sysctl.d/98-sysctl.conf

Újraindítjuk a szervert.
A kommentekben szidtak, amiért azt tanácsoltam, hogy kapcsoljam ki a SeLinuxot, ezért kijavítom magam és írok arról, hogy ezek után emlékezni kell a SeLinux beállítására.
Valójában profit! 🙂

Forrás: will.com

Hozzászólás