Webbediener op CentOS 8 met php7, node.js en redis

voorwoord

Dit is 2 dae sedert die vrystelling van 'n nuwe weergawe van die CentOS-bedryfstelsel, naamlik CentOS 8. En tot dusver is daar 'n hele paar artikels op die internet oor hoe dinge daarin gedoen word, so ek het besluit om hierdie leemte te vul. Boonop sal ek jou nie net vertel oor hoe om hierdie paar programme te installeer nie, maar ook oor hoe ek oor die algemeen sien om Linux in 'n virtuele omgewing in die moderne wêreld te installeer vir tipiese take, insluitend partisionering van skywe en so aan.

Maar aan die begin wil ek kortliks praat oor hoekom dit die moeite werd is om na hierdie weergawe van alle voriges oor te skakel, en daar is twee redes hiervoor:

  1. php7! In die vorige weergawe van CentOS is die "Ortodokse" php5.4 geïnstalleer ...

    Goed, om 'n bietjie ernstiger te wees, het baie pakkette massaal deur verskeie weergawes gespring. Ons (aanhangers van redhat-agtige bedryfstelsels) het uiteindelik ingegaan, indien nie in die toekoms nie, dan ten minste in die hede. En Ubuntu-ondersteuners sal nie meer vir ons lag en vinger na ons wys nie, wel... ten minste vir 'n rukkie ;).

  2. Oorgang van yum na dnf. Die belangrikste verskil is dat dit nou amptelik ondersteun word om met verskeie weergawes van pakkette gelyktydig te werk. Reg in die agttal het ek dit nog nooit nuttig gevind nie, maar dit klink belowend.

Skep 'n virtuele masjien

Daar is verskillende hiperviseerders en ek het geen doel om die leser aan te pas by 'n spesifieke een nie, ek sal jou vertel van die algemene beginsels.

geheue

Eerstens... Om vir seker 'n CentOS-stelsel te installeer wat vanaf 7 begin, en na my mening was dit ook die geval in 6 ("maar dit is nie seker nie"), moet jy minimum 2 GB RAM. Daarom raai ek jou aan om eers soveel uit te gee.

Maar as daar iets is, na die installasie kan die geheue-grootte verminder word. By 1 GB werk die kaal stelsel redelik goed, het ek nagegaan.

skyf

Vir 'n normale installasie moet u 'n virtuele skyf met 'n kapasiteit van 20-30 GB skep. Dit is genoeg vir die stelsel. En 'n tweede skyf vir data. Dit kan bygevoeg word op die stadium van die skep van 'n virtuele masjien en daarna. Ek voeg dit gewoonlik later by.

verwerker

Op een kern vertraag die kaal stelsel nie. En aangesien hulpbronne vrylik skaalbaar is, sien ek geen sin daarin om meer te gee tydens die installasiestadium nie (tensy jy die vereistes perfek ken en te lui is om weer in die konfigurator in te gaan)

Die res kan gewoonlik as verstek gelaat word.

Die werklike installasie

So... Kom ons begin die installeerder... Persoonlik installeer ek al lankal sulke dienste net in die vorm van virtuele masjiene, so ek sal nie allerhande verspreidingsrekords op 'n flash drive beskryf nie - ek monteer net die ISO as 'n CD in my gunsteling hypervisor, laai af en gaan.

Die basiese installasie is nogal tipies, ek sal net stilstaan ​​by 'n paar punte.

Bronkeuse

Sedert die vrystelling van die agtste weergawe, lê die spieël van Yandex al dae lank. Wel, dit wil sê, dit styg van tyd tot tyd en begin dan weer 'n fout wys. Ek is seker dit is as gevolg van oormatige las op die diens. Daarom, om die bron aan te dui, moes ek persoonlik, in plaas daarvan om die gewone adres in te voer, gaan hier, kies die spieël waarvan ek hou daar en voer die adres handmatig in die installeerdervenster in. Dit is belangrik om hier te onthou dat jy die pad na die gids moet spesifiseer waar die gids geleë is repodata. Byvoorbeeld, mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Skyfpartisionering

Hierdie vraag is na my mening nogal godsdienstig. Elke admin het sy eie standpunt oor hierdie saak. Maar ek sal steeds my standpunt oor die kwessie deel.

Ja, in beginsel kan jy die hele spasie aan die wortel toewys en dit sal werk, meestal selfs redelik goed. Waarom dan 'n tuin met verskillende afdelings omhein? — Na my mening is daar twee hoofredes hiervoor: kwotas en oordraagbaarheid.

Byvoorbeeld, as iets verkeerd loop en foute op die hoofdatapartisie voorkom, wil jy steeds die stelsel kan selflaai en resussitasiemaatreëls kan uitvoer. Daarom ken ek persoonlik 'n aparte partisie toe vir /boot. Daar is 'n kern en 'n selflaaiprogram. Gewoonlik is 500 megagrepe genoeg, maar in seldsame gevalle kan meer nodig wees, en aangesien ons reeds daaraan gewoond is om spasie in teragrepe te meet, ken ek 2GB toe vir hierdie afdeling. En die belangrike ding hier is dat dit nie gedoen kan word lvm.

Volgende kom die wortel van die stelsel. Vir 'n normale installasie het ek nog nooit meer as 4 GB per stelsel nodig gehad nie, maar tydens geskeduleerde gebeure gebruik ek dikwels die /tmp-gids om verspreidings uit te pak, en ek sien geen sin daarin om dit aan 'n aparte partisie toe te wy nie - in moderne stelsels dit word outomaties skoongemaak, dus word dit nie gevul nie. So ek ken 8GB toe vir die wortel.

Ruil... Oor die algemeen is daar min praktiese nut daarvan. As jy swap op jou bediener begin gebruik, beteken dit vandag in die regte wêreld net dat die bediener meer RAM moet byvoeg. Andersins word probleme met werkverrigting gewaarborg (of 'n program "lek" geheue). Daarom is hierdie afdeling slegs vir diagnostiese doeleindes nodig. Daarom is 2 GB 'n uitstekende nommer. Ja, ongeag hoeveel geheue daar op die bediener is. Ja, ek het al daardie artikels gelees waar daar geskryf word oor die verhouding van geheuevolume tot ruilvolume... IMHO, hulle is verouderd. In 10 jaar se praktyk het ek dit nog nooit nodig gehad nie. 15 jaar gelede het ek hulle gebruik, ja.

IMHO, elkeen kan self besluit of /huis in 'n aparte partisie toegewys moet word. As iemand op die bediener hierdie gids aktief sal gebruik, is dit beter om dit toe te ken. As niemand, is daar geen behoefte.

Volgende, /var. Na my mening moet dit beslis uitgelig word. Om mee te begin, kan jy jouself beperk tot 4 GB, en kyk hoe dit gaan. En ja, met "hoe dit gaan" bedoel ek dit

  1. Eerstens kan u altyd 'n ander skyf in die /var-subgids monteer (wat ek later met 'n voorbeeld sal wys)
  2. Tweedens, ons het lvm - jy kan dit altyd byvoeg. En jy moet dit gewoonlik byvoeg wanneer te veel stompe daar begin instroom. Maar ek kon nog nooit hierdie syfer vooraf voorspel nie, so ek begin met 2 GB en kyk dan.

Die ontoegekende spasie sal in die volumegroep vry bly en kan altyd later gebruik word.

LVM

Alle Dit maak sin om ander partisies as /boot in LVM te maak. Ja, insluitend ruil. Ja, volgens al die raad, moet ruil aan die begin van die skyf wees, maar in die geval van LVM kan sy ligging nie in beginsel bepaal word nie. Maar soos ek hierbo geskryf het, jou stelsel moet nie gebruik enigsins swap. Daarom maak dit nie saak waar hy is nie. Wel, ons leef nie in ’95 nie, eerlik!

Verder, in LVM is daar verskeie basiese entiteite waarmee jy moet kan saamleef:

  • fisiese volume
  • volume groep
  • logiese volume

Fisiese volumes word in groepe gekombineer, en elke fisiese volume kan slegs in een groep wees, en 'n groep kan op verskeie fisiese volumes gelyktydig geleë wees.
En die logiese volumes is elk in een groep.

Maar ... Verdomp, dit is weer die 21ste eeu. En die bedieners is virtueel. Dit maak geen sin om dieselfde meganismes op hulle toe te pas as wat op fisiese meganismes toegepas is nie. En vir virtuele is dit belangrik om data apart van die stelsel te hê! Dit is baie belangrik, veral vir die vermoë om data vinnig na 'n ander virtuele masjien oor te skakel (byvoorbeeld wanneer daar na 'n nuwe bedryfstelsel oorgeskakel word) en in die algemeen vir allerhande nuttige goedjies (afsonderlike rugsteune deur partisies met gebruik van hipervisor-nutsgoed, byvoorbeeld) . Daarom word een volumegroep vir die stelsel gebruik en 'n ander een word noodwendig vir data gebruik! Hierdie logiese verdeling help baie in die lewe!

As jy net een virtuele hardeskyf geskep het toe jy 'n virtuele masjien geskep het, is dit waar die konfigurasie eindig. En as daar twee is, moet dan net nog nie die tweede een merk nie.

Kom ons begin die installasie.

Na-installasie

So, die nuut geïnstalleerde stelsel het uiteindelik begin. Die eerste ding wat jy moet nagaan, is die internet.

ping ya.ru

Is daar 'n antwoord? - Groot, druk Ctrl-C.
Indien nie, gaan stel 'n netwerk op, daar is geen lewe hiersonder nie, maar dit is nie waaroor my artikel gaan nie.

Nou as ons nog nie onder wortel is nie, gaan onder wortel, want tik hierdie die aantal opdragte met sudo het my persoonlik gebreek (en mag die paranoïese admins my vergewe):

sudo -i

Nou is die eerste ding wat ons doen, tik

dnf -y update

En as jy hierdie artikel in 2019 lees, sal daar heel waarskynlik niks gebeur nie, maar dit was die moeite werd om te probeer.

Kom ons stel nou die oorblywende skyf op

Kom ons sê die partisie met die stelsel was xvda, dan sal die dataskyf xvdb wees. OK.

Die meeste raad sal begin met "Laat fdisk en skep 'n partisie ..."

So dit is verkeerde!

Ek sal dit weer sê, want dit is so belangrik! In hierdie geval, om met LVM te werk, wat een hele virtuele skyf beslaan, is dit skadelik om partisies daarop te skep! Elke woord in hierdie frase is belangrik. As ons sonder LVM werk, moet ons. As ons 'n stelsel en data op die skyf het, het ons dit nodig. As ons om een ​​of ander rede die helfte van die skyf leeg moet laat, moet ons ook. Maar gewoonlik is al hierdie aannames suiwer teoreties. Want as ons besluit om spasie by 'n bestaande partisie te voeg, dan is die maklikste manier om dit te doen met hierdie konfigurasie. En die gemak van administrasie swaarder as baie ander dinge is so dat ons doelgerig na hierdie opset beweeg.

En die gerief is dat as jy die datapartisie wil uitbrei, jy eenvoudig spasies by die virtuele partisie voeg, dan die groep uitbrei met vgextend en dis dit! In seldsame gevalle kan iets anders vereis word, maar jy hoef ten minste nie die logiese volume aan die begin uit te brei nie, wat reeds lekker is. Andersins, om hierdie einste volume uit te brei, beveel hulle aan om eers die bestaande een uit te vee, en dan 'n nuwe een te skep... Wat nie baie mooi lyk nie en nie regstreeks gedoen kan word nie, maar uitbreiding volgens die scenario wat ek aangedui het kan "on-die-vlieg" uitgevoer word sonder om eers die afskorting te demonteer.

Dus, ons skep 'n fisiese volume, dan 'n volumegroep wat dit insluit, en dan 'n partisie vir ons bediener:

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

Hier, in plaas van 'n hoofletter "L" (en die grootte in GB), kan u 'n klein een spesifiseer, en dan, in plaas van 'n absolute grootte, 'n relatiewe een spesifiseer, byvoorbeeld om die helfte van die tans vrye spasie te gebruik in 'n volumegroep, moet jy "-l +50%FREE" spesifiseer

En die laaste opdrag formateer die partisie in die ext4-lêerstelsel (wat tot dusver, volgens my ervaring, die grootste stabiliteit toon ingeval alles breek, so ek verkies dit).

Nou monteer ons die partisie op die regte plek. Om dit te doen, voeg die korrekte reël by /etc/fstab:

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

En ons skakel

mount /var/www

As 'n fout voorkom, maak die alarm! Omdat dit beteken dat ons 'n fout in /etc/fstab het. En dat ons met die volgende herlaai baie groot probleme sal hê. Die stelsel sal dalk glad nie selflaai nie, wat dikwels baie hartseer is vir wolkdienste. Daarom is dit nodig om óf die laaste reël wat bygevoeg is dringend reg te stel, óf dit heeltemal te skrap! Dit is hoekom ons nie die mount opdrag met die hand geskryf het nie - dan sou ons nie so 'n uitstekende geleentheid gehad het om die konfigurasie dadelik na te gaan nie.

Nou installeer ons eintlik alles wat ons wou hê en maak die poorte vir die web oop:

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

As jy wil, kan jy ook 'n databasis hier plaas, maar persoonlik probeer ek dit apart van die webbediener hou. Alhoewel dit vinniger is om haar naby te hou, ja. Die spoed van virtuele netwerkadapters is gewoonlik rondom gigabit, en wanneer daar op dieselfde masjien gewerk word, vind oproepe byna onmiddellik plaas. Maar dit is minder veilig. Wat is belangriker vir wie?

Nou voeg ons die parameter by die konfigurasielêer (ons skep 'n nuwe een, die moderne ideologie van CentOS is so)

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

Ons herlaai die bediener.
In die kommentaar is ek uitgeskel omdat ek my aangeraai het om SeLinux af te skakel, so ek sal myself regstel en skryf oor die feit dat jy hierna moet onthou om SeLinux op te stel.
Eintlik wins! 🙂

Bron: will.com

Voeg 'n opmerking