Webbserver pÄ CentOS 8 med php7, node.js och redis

Förord

Det har gÄtt tvÄ dagar sedan den nya versionen av operativsystemet CentOS, nÀmligen CentOS 8, slÀpptes. Just nu finns det ganska fÄ artiklar pÄ nÀtet om hur man gör nÄgot med det, sÄ jag kÀnde att jag ville fylla det tomrummet. Jag kommer att berÀtta inte bara om hur man installerar dessa program, utan ocksÄ om hur jag ser pÄ installationen av Linux i en virtuell miljö i den moderna vÀrlden för typiska uppgifter, inklusive partitionering av diskar och annat.

Men först vill jag kort berÀtta varför det Àr vÀrt att uppgradera till denna version frÄn alla tidigare, och det finns tvÄ anledningar till det:

  1. php7! I den tidigare versionen av CentOS installerades "ortodox" php5.4


    Okej, om vi ska vara lite mer seriösa, sĂ„ har vĂ€ldigt mĂ„nga paket hoppat över flera versioner. Vi (anhĂ€ngare av redhat-baserade operativsystem) har Ă€ntligen kommit in om inte i framtiden, sĂ„ Ă„tminstone i nuet. Och supportrar av Ubuntu kommer inte lĂ€ngre att skratta Ă„t oss och peka finger, nĂ„vĂ€l
 Ă„tminstone under en tid ;).

  2. ÖvergĂ„ngen frĂ„n yum till dnf. Huvudskillnaden Ă€r att det nu officiellt stöds att arbeta med flera versioner av paket samtidigt. Jag har inte behövt detta i Ă„ttan Ă€nnu, men det lĂ„ter lovande.

Skapa en virtuell maskin

Det finns olika hypervisorer och jag har ingen avsikt att inrikta lÀsaren pÄ en specifik; jag kommer att prata om allmÀnna principer.

Minne

För installation av CentOS-systemet, börjar med version 7, och enligt min mening sÄ var det Àven i 6 ocksÄ ("men det Àr inte sÀkert"), Àr det nödvÀndigt minimum 2 GB RAM. Jag rekommenderar dÀrför att ge sÄ mycket till en början.

Men om det krÀvs, kan mÀngden minne minskas efter installationen. Med 1 GB fungerar det rena systemet helt okej, jag har testat.

Enhet

För en korrekt installation bör du skapa en virtuell disk som Àr 20-30 GB stor. Det Àr tillrÀckligt för systemet. Och en andra disk för data. Den kan lÀggas till antingen i samband med skapandet av den virtuella maskinen eller senare. Jag brukar lÀgga till det senare.

Processor

PÄ ett kÀrna fungerar det rena systemet utan att hÀnga sig. Och eftersom resurserna enkelt kan skalas upp, ser jag ingen mening i att ge mer under installationen (sÄvida du inte perfekt kÀnner till kraven och Àr för lat för att gÄ in i konfigurationen igen)

Det övriga kan oftast lÀmnas som standard.

SjÀlva installationen

SÄ  Vi startar installationsprogrammet
 Personligen har jag lĂ€nge installerat sĂ„dana tjĂ€nster som virtuella maskiner, sĂ„ jag kommer inte att beskriva hur man skriver distribueringsfiler till ett USB-minne — jag monterar bara ISO-filen som en CD-skiva i min favorit hypervisor, startar upp och kör.

Den grundlÀggande installationen gÄr ganska typiskt, jag kommer bara att stanna vid nÄgra punkter.

Val av kÀlla

Sedan den Ättonde versionens utgivning har Yandex-spegeln legat nere i flera dagar. Det vill sÀga, den gÄr upp periodvis, och sedan börjar den Äterigen visa fel. Jag Àr sÀker pÄ att det handlar om överbelastning pÄ tjÀnsten. SÄ för att ange kÀllan var jag tvungen att istÀllet för att ange den vanliga adressen, gÄ hit, vÀlja den spegel jag gillar och manuellt skriva in adressen i installationsprogrammet. HÀr Àr det viktigt att komma ihÄg att ange sökvÀgen till den mapp dÀr katalogen repodata. Till exempel, mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Partitionering av disk

Denna frÄga Àr mer religiös enligt min Äsikt. Varje administratör har sin egen stÄndpunkt i denna frÄga. Men jag kommer ÀndÄ att dela med mig av min Äsikt.

Ja, i princip kan man avsĂ€tta hela utrymmet till roten och det fungerar oftast ganska bra. Varför skulle man dĂ„ skapa olika partitioner? — Anledningen till detta Ă€r för mig enligt tvĂ„ skĂ€l: kvoter och portabilitet.

Till exempel, om nÄgot gÄr fel och det uppstÄr fel i huvudpartitionen med data, vill man ha möjlighet att fortfarande starta systemet och utföra ÄterstÀllningsÄtgÀrder. DÀrför avsÀtter jag personligen en separat partition för /boot. DÀr ligger kÀrnan och bootloadern. Vanligtvis rÀcker 500 megabyte, men i sÀllsynta fall kan mer behövas, och med tanke pÄ att vi redan Àr vana vid att mÀta utrymme i terabyte, avsÀtter jag 2GB för denna partition. Och hÀr Àr det viktigt att den inte kan göras som lvm.

DĂ€refter kommer roten av systemet. För en normal installation har jag aldrig behövt mer Ă€n 4GB just för systemet, men under planerade aktiviteter anvĂ€nder jag ofta katalogen /tmp för att packa upp distributioner, och att avsĂ€tta det som en separat partition ser jag ingen mening i — i moderna system rengörs den automatiskt, sĂ„ den fylls inte. SĂ„ jag avsĂ€tter 8GB för roten.

Swap
 I det stora hela har det lite praktisk nytta. Om din server börjar anvĂ€nda swap idag betyder det bara att servern behöver mer RAM. Annars Ă€r prestandaproblem garanterade (eller sĂ„ lĂ€cker minnet nĂ„gon programvara). DĂ€rför behövs detta avsnitt bara för diagnostik. SĂ„ 2 GB Ă€r ett utmĂ€rkt vĂ€rde. Ja, oavsett hur mycket minne servern har. Ja, jag har lĂ€st alla de artiklar som handlar om förhĂ„llandet mellan minneskapacitet och swap-storlek
 Enligt min Ă„sikt Ă€r de förĂ„ldrade. Under 10 Ă„rs praktik har jag aldrig haft nytta av dem. För 15 Ă„r sedan anvĂ€nde jag dem, ja.

Huruvida man ska avsĂ€tta /home i en separat partition, tycker jag att var och en fĂ„r avgöra sjĂ€lv. Om nĂ„gon aktivt kommer att anvĂ€nda den katalogen pĂ„ servern, Ă€r det bĂ€ttre att avsĂ€tta den. Om ingen kommer att anvĂ€nda den — finns ingen anledning.

DÀrefter, /var. Enligt min mening bör den absolut avsÀttas. Först kan man begrÀnsa sig till 4 GB, och se hur det gÄr. Och ja, med "hur det gÄr" menar jag att

  1. För det första kan man alltid montera en annan disk i underkatalogen /var (vilket jag senare kommer att visa med ett exempel)
  2. För det andra har vi ju LVM — man kan alltid lĂ€gga till. Och man tvingas ofta lĂ€gga till nĂ€r för mĂ„nga loggar börjar strömma dit. Men jag har aldrig kunnat förutsĂ€ga det hĂ€r beloppet i förvĂ€g, sĂ„ jag börjar med 2 GB och ser sedan.

Det outnyttjade utrymmet kommer att förbli ledigt i volymgruppen, och det kan alltid anvÀndas senare.

LVM

Alla Partitioner, förutom /boot, Àr meningsfulla att göra i LVM. Ja, inklusive swap. Ja, enligt alla rÄd bör swap ligga i början av disken, men i fallet med LVM kan dess plats i princip inte bestÀmmas. Men som jag skrev ovan, ditt system bör kom pÄ att anvÀnda swap över huvud taget. SÄ det spelar ingen roll var den ligger. Vi lever ju inte Är 95, Àrligt talat!

DÀrefter, i LVM finns det flera grundlÀggande entiteter som man mÄste kunna hantera:

  • fysisk volym
  • volymgrupp
  • logisk volym

Fysiska volymer slÄs samman i grupper, dÀr varje fysisk volym kan vara i endast en grupp, medan en grupp kan bestÄ av flera fysiska volymer.
Och logiska volymer finns varje i en grupp.

Men
 Vi lever ju faktiskt i 21:a seklet. Och vi har virtuella servrar. Det Ă€r meningslöst att anvĂ€nda samma mekanismer som anvĂ€ndes för fysiska servrar. För virtuella servrar Ă€r det viktigt att ha data separat frĂ„n systemet! Detta Ă€r sĂ€rskilt viktigt för möjligheten att snabbt överföra data till en annan virtuell maskin (till exempel vid byte av operativsystem) och för all sorts anvĂ€ndbara funktioner (separata sĂ€kerhetskopior av partitioner med hjĂ€lp av hypervisorn till exempel). DĂ€rför anvĂ€nds en volymgrupp för systemet och en annan för data! Denna logiska separation underlĂ€ttar verkligen livet!

Om du vid skapandet av den virtuella maskinen endast skapade en virtuell hÄrddisk, slutar konfigurationen dÀr. Och om du skapade tvÄ, sÄ behöver du bara inte partitionera den andra Àn sÄ lÀnge.

Vi startar installationen.

Postinstallation

SÄ, Àntligen har det nyskapade systemet startat. Det första vi mÄste kontrollera Àr internetanslutningen.

ping ya.ru

Fick vi svar? – UtmĂ€rkt, tryck pĂ„ Ctrl-C.
Om inte – gĂ„ och konfigurera nĂ€tverket, utan det gĂ„r livet inte, men min artikel handlar inte om det.

Nu, om vi inte redan Àr inloggade som root, loggar vi in som root, för att skriva sÄdant antalet kommandon med sudo Àr personligen lite trist för mig (och mÄ admin-paranoikerna förlÄta mig):

sudo -i

Nu skriver vi först

dnf -y update

Och om du lÀser den hÀr artikeln Är 2019, troligtvis kommer inget att hÀnda, men det var vÀrt att prova.

Nu ska vi konfigurera den ÄterstÄende disken

Anta att partitionen med systemet Àr xvda, dÄ blir datadisken xvdb. Okej.

De flesta rĂ„d kommer att börja med orden "Kör fdisk och skapa en partition
"

SÄ hÀr Àr grejen, det Àr!

inte korrekt. Jag upprepar en gĂ„ng till, eftersom det hĂ€r Ă€r viktigt! I det hĂ€r fallet Ă€r det skadligt att skapa partitioner pĂ„ en disk som anvĂ€nds av LVM, Ă€ven om det Ă€r en virtuell disk! Varje ord i denna mening Ă€r viktigt. Om vi arbetar utan LVM – dĂ„ Ă€r det nödvĂ€ndigt. Om vi har system och data pĂ„ disken – dĂ„ Ă€r det nödvĂ€ndigt. Om vi av nĂ„gon anledning vill lĂ€mna hĂ€lften av disken tom – Ă€r det ocksĂ„ nödvĂ€ndigt. Men vanligtvis Ă€r alla dessa antaganden rent teoretiska. För om vi beslutar att utöka utrymmet för den befintliga partitionen, Ă€r det lĂ€ttast att göra det just med en sĂ„dan konfiguration. Och bekvĂ€mligheten i administrationen vĂ€ger sĂ„ mycket mer att vi medvetet strĂ€var efter den hĂ€r konfigurationen.

BekvĂ€mligheten ligger i att om du vill utöka datasektionen sĂ„ lĂ€gger du helt enkelt till utrymme i den virtuella sektionen, varefter du expanderar gruppen med vgextend och allt Ă€r klart! I sĂ€llsynta fall kan det behövas nĂ„got mer, men minst sagt behöver du inte utöka den logiska volym som redan finns, vilket Ă€r trevligt. IstĂ€llet rekommenderar de att först ta bort den befintliga volymen och sedan skapa en ny ovanpÄ  vilket inte ser sĂ€rskilt trevligt ut och inte kan göras live, medan utvidgning enligt det jag just nĂ€mnde kan utföras "on-the-fly" utan att montera sektionen.

SÄ, vi skapar en fysisk volym, sedan en volymgrupp som inkluderar den och dÀrefter en sektion för vÄr server:

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

HÀr kan du istÀllet för stort "L" (och storleken i GB) ange litet och dÀrmed anvÀnda relativ storlek; till exempel, för att anvÀnda hÀlften av det lediga utrymmet i volymgruppen just nu, mÄste du ange "-l +50%FREE".

Den sista kommandot formaterar sektionen i ext4 filsystemet (vilket, enligt min erfarenhet, för tillfÀllet visar bÀst stabilitet om nÄgot gÄr fel, sÄ jag föredrar det).

Nu monterar vi sektionen pÄ rÀtt stÀlle. För att göra detta lÀgger vi till rÀtt rad i /etc/fstab:

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

Och vi skriver in

mount /var/www

Om det uppstĂ„r ett fel — slĂ„ larm! För det betyder att vi har ett fel i /etc/fstab. Och att vi vid nĂ€sta omstart kommer att ha stora problem. Systemet kanske inte ens startar, vilket ofta Ă€r mycket olyckligt för molntjĂ€nster. DĂ€rför mĂ„ste vi antingen snabbt Ă„tgĂ€rda den senaste tillagda raden eller ta bort den helt! Just dĂ€rför skrev vi inte in monteringskommandot manuellt — dĂ„ skulle vi inte fĂ„ möjlighet att kontrollera konfigurationen precis nu.

Nu installerar vi allt vi ville ha och öppnar portar för webb:

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

Om man vill kan man ocksĂ„ installera databasen hĂ€r, men personligen försöker jag hĂ„lla den separat frĂ„n webbservern. Även om det Ă€r snabbare att ha den nĂ€ra, visst. Hastigheten pĂ„ virtuella nĂ€tverkskort ligger vanligtvis runt en gigabit, och nĂ€r man arbetar pĂ„ samma maskin sker kommunikationen nĂ€stan omedelbart. Men det Ă€r mindre sĂ€kert. HĂ€r handlar det om vad som Ă€r viktigast för en.

Nu lÀgger vi till en parameter i konfigurationsfilen (skapar en ny, den moderna idéen med CentOS Àr sÄdan)

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

Starta om servern.
I kommentarerna blev jag kritiserad för rÄd om att stÀnga av SeLinux, sÄ jag ska rÀtta till det och skriva att man efter detta inte fÄr glömma att konfigurera SeLinux.
SĂ„, profit! 🙂

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster