Webserver op CentOS 8 mei php7, node.js en redis

Foarwurd

It is 2 dagen sûnt de frijlitting fan in nije ferzje fan it CentOS-bestjoeringssysteem, nammentlik CentOS 8. En oant no binne der nochal wat artikels op it ynternet oer hoe't dingen dêryn dien wurde, dat ik besleat dit gat te foljen. Boppedat sil ik jo net allinich fertelle oer hoe't jo dit pear programma's kinne ynstallearje, mar ek oer hoe't ik oer it algemien sjoch it ynstallearjen fan Linux yn in firtuele omjouwing yn 'e moderne wrâld foar typyske taken, ynklusyf partitionearjen fan skiven ensafuorthinne.

Mar oan it begjin wol ik koart prate oer wêrom't it wurdich is om te wikseljen nei dizze ferzje fan alle eardere, en d'r binne twa redenen foar dit:

  1. php7! Yn 'e foarige ferzje fan CentOS waard de "Ortodokse" php5.4 ynstalleare ...

    Okee, om wat serieuzer te wêzen, sprongen in protte pakketten massaal troch ferskate ferzjes. Wy (fans fan redhat-like OS's) binne einlings yngien, as net yn 'e takomst, dan teminsten yn' e hjoeddeiske. En Ubuntu-supporters sille net mear om ús laitsje en fingers nei ús wize, no... alteast noch efkes ;).

  2. Oergong fan yum nei dnf. It wichtichste ferskil is dat it no offisjeel wurdt stipe om te wurkjen mei ferskate ferzjes fan pakketten tagelyk. Rjochts yn 'e acht haw ik dit noait nuttich fûn, mar it klinkt belofte.

Meitsje in firtuele masine

D'r binne ferskate hypervisors en ik haw gjin doel om de lêzer oan te passen op in spesifike, ik sil jo fertelle oer de algemiene prinsipes.

ûnthâld

Earst ... Om in CentOS-systeem te ynstallearjen fanôf 7 foar wis, en nei myn miening wie dit ek it gefal yn 6 ("mar dit is net wis"), moatte jo minimum 2 GB RAM. Dêrom ried ik jo oan om earst safolle út te jaan.

Mar as der wat is, nei ynstallaasje kin de ûnthâldgrutte wurde fermindere. By 1 GB wurket it bleate systeem frij goed, haw ik kontrolearre.

skiif

Foar in normale ynstallaasje moatte jo in firtuele skiif meitsje mei in kapasiteit fan 20-30 GB. Dit is genôch foar it systeem. En in twadde skiif foar gegevens. It kin wurde tafoege sawol op it poadium fan it meitsjen fan in firtuele masine en nei. Ik foegje it meastentiids letter ta.

Processor

Op ien kearn fertraget it bleate systeem net. En om't boarnen frij skalberber binne, sjoch ik gjin punt om mear te jaan yn it ynstallaasjestadium (útsein as jo de easken perfekt kenne en te lui binne om wer yn 'e konfigurator te gean)

De rest kin normaal wurde oerlitten as standert.

De eigentlike ynstallaasje

Dus... Litte wy it ynstallearder starte... Persoanlik haw ik sokke tsjinsten allinich yn 'e foarm fan firtuele masines ynstalleare, dus ik sil net allerhanne distribúsjerecords op in flash drive beskriuwe - ik montearje gewoan de ISO as in CD yn myn favorite hypervisor, download en gean.

De basisynstallaasje is hiel typysk, ik sil mar op in pear punten stean.

Boarne seleksje

Sûnt de frijlitting fan 'e achtste ferzje hat de spegel fan Yandex al dagen lein. No, dat is, it komt periodyk omheech, en begjint dan wer in flater te sjen. Ik bin der wis fan dat it komt troch te folle lêst op 'e tsjinst. Dêrom, om de boarne oan te jaan, moast ik persoanlik, ynstee fan it gewoane adres yn te fieren, gean hjir, selektearje de spegel dy't ik dêr leuk fyn en fier it adres manuell yn yn it ynstallearderfinster. It is wichtich om hjir te ûnthâlden dat jo it paad moatte opjaan nei de map wêr't de map leit repodata. Bygelyks mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Skiif partitioning

Dizze fraach is neffens my nochal religieus. Elke admin hat syn eigen posysje oer dizze saak. Mar ik sil myn stânpunt oer de kwestje noch diele.

Ja, yn prinsipe kinne jo de hiele romte oan 'e woartel tawize en it sil wurkje, meastentiids sels frij goed. Wêrom dan in tún mei ferskate seksjes omheine? - Der binne neffens my twa wichtichste redenen foar: kwota en portabiliteit.

Bygelyks, as der wat mis giet en flaters foarkomme op 'e haadgegevensdieling, wolle jo it systeem noch kinne opstarte en reanimaasjemaatregels útfiere. Dêrom tawize ik persoanlik in aparte partysje foar /boot. D'r is in kernel en in bootloader. Meastentiids is 500 megabytes genôch, mar yn seldsume gefallen kin mear nedich wêze, en jûn dat wy al wend binne om romte te mjitten yn terabytes, allocearje ik 2GB foar dizze seksje. En it wichtige ding hjir is dat it kin net dien wurde lvm.

Dêrnei komt de woartel fan it systeem. Foar in normale ynstallaasje haw ik noait mear nedich as 4 GB per systeem, mar tidens plande eveneminten brûk ik faaks de map /tmp om distribúsjes út te pakken, en ik sjoch gjin punt om it oan in aparte partysje te wijen - yn moderne systemen it wurdt automatysk skjinmakke, dus it is net fol. Dat ik allocearje 8GB foar de root.

Ruilje... Oer it algemien is der net folle praktysk nut fan. As jo ​​begjinne te brûken swap op jo tsjinner, hjoed yn 'e echte wrâld betsjut dit allinnich dat de tsjinner moat tafoegje mear RAM. Oars wurde problemen mei prestaasjes garandearre (of guon programma "lekken" ûnthâld). Dêrom is dizze seksje allinich nedich foar diagnostyske doelen. Dêrom is 2 GB in poerbêst getal. Ja, nettsjinsteande hoefolle ûnthâld der is op de tsjinner. Ja, ik lês al dy artikels dêr't it wurdt skreaun oer de ferhâlding fan ûnthâld folume te wikseljen folume ... IMHO, se binne ferâldere. Yn 10 jier praktyk haw ik dit noait nedich. 15 jier lyn haw ik se brûkt, ja.

IMHO, elkenien kin foar harsels beslute of hy / thús yn in aparte partition tawize. As immen op 'e tsjinner dizze map aktyf sil brûke, is it better om it te allocearjen. As gjinien, is der gjin need.

Folgjende, /var. Neffens my moat it perfoarst beljochte wurde. Om te begjinnen mei, kinne jo beheine josels ta 4 GB, en sjen hoe't it giet. En ja, mei "hoe it giet" bedoel ik dat

  1. As earste kinne jo altyd in oare skiif montearje yn 'e / var subdirectory (dy't ik letter sil sjen litte mei in foarbyld)
  2. As twadde hawwe wy lvm - jo kinne it altyd tafoegje. En jo moatte it meastentiids tafoegje as der tefolle logs begjinne te streamen. Mar ik haw nea west by steat om te foarsizze dit figuer foarôf, dus ik begjin mei 2 GB en dan sjoch.

De net-allokearre romte bliuwt fergees yn 'e folumegroep en kin letter altyd brûkt wurde.

LVM

All It makket sin om partysjes oars te meitsjen as /boot yn LVM. Ja, ynklusyf ruil. Ja, neffens alle advys, swap moat wêze oan it begjin fan 'e skiif, mar yn it gefal fan LVM syn lokaasje kin net bepaald wurde yn prinsipe. Mar lykas ik hjirboppe skreau, jo systeem soe net moatte brûke swap hielendal. Dêrom makket it net út wêr't hy is. No, wy libje net yn '95, earlik sein!

Fierder binne d'r yn LVM ferskate basisentiteiten wêrmei jo moatte kinne libje:

  • fysike folume
  • volume groep
  • logyske folume

Fysike folumes wurde kombinearre yn groepen, en elk fysike folume kin wêze yn mar ien groep, en in groep kin lizze op ferskate fysike folume tagelyk.
En de logyske folumes binne elk yn ien groep.

Mar... Ferdomme, it is wer de 21e ieu. En de servers binne firtuele. It hat gjin sin om deselde meganismen op har ta te passen dy't waarden tapast op fysike. En foar firtuele is it wichtich om gegevens apart fan it systeem te hawwen! Dit is heul wichtich, benammen foar de mooglikheid om gegevens fluch te wikseljen nei in oare firtuele masine (bygelyks by it wikseljen nei in nij OS) en yn 't algemien foar allerhanne nuttige guod (ôfsûnderlike backups troch partysjes mei help fan hypervisor-ark, bygelyks) . Dêrom wurdt ien folume groep brûkt foar it systeem en needsaaklikerwize in oare wurdt brûkt foar gegevens! Dizze logyske ferdieling helpt in protte yn it libben!

As jo ​​​​mar ien firtuele hurde skiif makke hawwe by it meitsjen fan in firtuele masine, dit is wêr't de konfiguraasje einiget. En as der twa binne, markearje dan de twadde noch net.

Litte wy de ynstallaasje begjinne.

Post-ynstallaasje

Dat, it nij ynstalleare systeem is einlings opstart. It earste ding dat jo moatte kontrolearje is it ynternet.

ping ya.ru

Is der in antwurd? - Geweldich, druk op Ctrl-C.
As net, gean dan in netwurk op, d'r is gjin libben sûnder dit, mar dat is net wêr't myn artikel oer giet.

No as wy noch net ûnder root binne, gean dan ûnder root, want typen sokke it oantal kommando's mei sudo bruts my persoanlik (en meie de paranoïde admins my ferjaan):

sudo -i

No is it earste ding dat wy dogge type

dnf -y update

En as jo dit artikel yn 2019 lêze, sil nei alle gedachten neat barre, mar it wie it besykjen wurdich.

Litte wy no de oerbleaune skiif konfigurearje

Litte wy sizze dat de partition mei it systeem xvda wie, dan sil de gegevensskiif xvdb wêze. OK.

De measte advys sil begjinne mei "Run fdisk en meitsje in partition ..."

Dit is dus ferkeard!

Ik sil it nochris sizze, om't it sa wichtich is! Yn dit gefal, om te wurkjen mei LVM, dy't ien folsleine firtuele skiif beslacht, it meitsjen fan partysjes op it is skealik! Elk wurd yn dizze sin is wichtich. As wy wurkje sûnder LVM, wy moatte. As wy in systeem en gegevens op 'e skiif hawwe, hawwe wy it nedich. As wy om ien of oare reden de helte fan 'e skiif leech litte moatte, moatte wy ek. Mar meastal binne al dizze oannames suver teoretysk. Want as wy beslute om romte ta te foegjen oan in besteande partysje, dan is de maklikste manier om it te dwaan mei dizze konfiguraasje. En it gemak fan administraasje is sa grutter as in protte oare dingen dat wy doelbewust nei dizze konfiguraasje geane.

En it gemak is dat as jo de datapartition útwreidzje wolle, jo gewoan spaasjes tafoegje oan 'e firtuele partysje, dan de groep útwreidzje mei vgextend en dat is it! Yn seldsume gefallen kin wat oars nedich wêze, mar jo hoege teminsten it logyske folume oan it begjin net út te wreidzjen, dat is al moai. Oars, om dizze bondel út te wreidzjen, riede se oan om earst de besteande te wiskjen, en dan boppe-op in nije te meitsjen... Dat sjocht der net sa moai út en kin net live dien wurde, mar útwreiding neffens it senario dat ik oanjûn kin wêze útfierd "on the fly" sûnder iens unmounting de ôfskieding.

Dat, wy meitsje in fysyk folume, dan in folumegroep dy't it omfettet, en dan in partition foar ús server:

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

Hjir kinne jo, ynstee fan in haadletter "L" (en de grutte yn GB), in lytse opjaan, en dan ynstee fan in absolute grutte, in relative opjaan, bygelyks om de helte fan 'e op it stuit frije romte te brûken yn in folume groep, jo moatte opjaan "-l +50% FREE"

En it lêste kommando formattearret de partysje yn it ext4-bestânsysteem (dat oant no ta, yn myn ûnderfining, de grutste stabiliteit toant yn gefal alles brekt, dus ik leaver it).

No montearje wy de partysje op it goede plak. Om dit te dwaan, foegje de juste rigel ta oan /etc/fstab:

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

En wy belje

mount /var/www

As der in flater optreedt, lûd dan it alarm! Om't dit betsjut dat wy in flater hawwe yn /etc/fstab. En dat wy by de folgjende reboot tige grutte problemen sille hawwe. It systeem kin hielendal net boote, wat faaks heul spitich is foar wolktsjinsten. Dêrom is it needsaaklik om de lêste rigel dy't tafoege is driuwend te korrigearjen, of it hielendal te wiskjen! Dêrom hawwe wy it mount-kommando net mei de hân skreaun - dan soene wy ​​net sa'n geweldige kâns hân hawwe om de konfiguraasje daliks te kontrolearjen.

No ynstallearje wy eins alles wat wy woenen en iepenje de havens foar it web:

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

As jo ​​​​wolle, kinne jo hjir ek in databank pleatse, mar persoanlik besykje ik dy apart te hâlden fan de webserver. Hoewol't har ticht hâlde is flugger, ja. De snelheid fan firtuele netwurkadapters is meastentiids om gigabit, en as jo wurkje op deselde masine, komme oproppen hast direkt. Mar it is minder feilich. Wat is wichtiger foar wa?

No foegje wy de parameter ta oan it konfiguraasjetriem (wy meitsje in nije, de moderne ideology fan CentOS is sa)

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

Wy rebootje de tsjinner.
Yn 'e kommentaren waard ik útskold om my te advisearjen om SeLinux út te skeakeljen, dus ik sil mysels korrigearje en skriuwe oer it feit dat jo nei dit moatte ûnthâlde om SeLinux te konfigurearjen.
Eins, winst! 🙂

Boarne: www.habr.com

Add a comment