Servitore web in CentOS 8 cù php7, node.js è redis

Prélude

Hè passatu 2 ghjorni da a liberazione di una nova versione di u sistema upirativu CentOS, vale à dì CentOS 8. È finu à quì ci sò parechji articuli in Internet nantu à cumu si facenu e cose in questu, cusì aghju decisu di cumpricà sta lacuna. Inoltre, vi dicu micca solu di cumu installà stu paru di prugrammi, ma ancu di cumu in generale vede installà Linux in un ambiente virtuale in u mondu mudernu per i travaglii tipici, cumpresi i dischi di particione è cusì.

Ma à u principiu, vogliu parlà brevemente perchè vale a pena cambià à sta versione da tutti i precedenti, è ci sò dui motivi per questu:

  1. php7! In a versione precedente di CentOS, u "Ortodossu" php5.4 hè statu stallatu ...

    Va bè, per esse un pocu più seriu, assai pacchetti saltavanu attraversu parechje versioni in massa. Noi (fans of redhat-like OS) avemu finalmente intrutu, se micca in u futuru, almenu in u presente. È i sustenidori d'Ubuntu ùn ridiranu più di noi è ci puntanu u dito, bè... almenu per un pezzu ;).

  2. Transizione da yum à dnf. A principal diferenza hè chì avà hè ufficialmente supportatu per travaglià cù parechje versioni di pacchetti à una volta. Giustu in l'ottu, ùn aghju mai trovu questu utile, ma sona promettente.

Crea una macchina virtuale

Ci sò ipervisori diffirenti è ùn aghju micca scopu di adattà u lettore à un specificu, vi dicu di i principii generali.

memoria

Prima ... Per installà un sistema CentOS chì partenu da 7 di sicuru, è in u mo scusa era ancu u casu in 6 ("ma questu ùn hè micca sicuru"), avete bisognu. minimu 2 GB di RAM. Per quessa, vi cunsigliu di dà cusì prima.

Ma se qualcosa, dopu a stallazione, a dimensione di memoria pò esse ridutta. À 1 GB u sistema nudu funziona abbastanza bè, aghju verificatu.

u discu

Per una installazione normale, duvete creà un discu virtuale cù una capacità di 20-30 GB. Questu hè abbastanza per u sistema. È un secondu discu per i dati. Pò esse aghjuntu sia in u stadiu di creazione di una macchina virtuale sia dopu. Di solitu aghjunghje dopu.

prucissuri

Nantu à un core, u sistema nudu ùn rallenta. E postu chì e risorse sò liberamente scalabili, ùn vecu micca nunda di dà più in u stadiu di a stallazione (a menu chì ùn cunnosci perfettamente i requisiti è sò troppu pigri per andà in u cunfiguratore di novu)

U restu pò esse generalmente lasciatu in modu predeterminatu.

L'installazione vera

Allora... Lanciamu l'installatore... In modu persunale, aghju installatu tali servizii solu in forma di macchine virtuali per un bellu pezzu, cusì ùn descriveraghju micca ogni tipu di registri di distribuzione nantu à una unità flash - aghju ghjustu muntatu. l'ISO cum'è un CD in u mo hypervisor preferitu, scaricate è andate.

A stallazione di basa hè abbastanza tipica, ùn aghju micca solu uni pochi di punti.

Scelta di a fonte

Dapoi a liberazione di l'ottava versione, u specchiu di Yandex hè stendu per ghjorni. Ebbè, vale à dì, cresce periodicamente, è poi torna à vede un errore. Sò sicuru chì hè dovutu à una carica eccessiva in u serviziu. Dunque, per indicà a fonte, aghju avutu personalmente, invece di entre in l'indirizzu di solitu, andà ccà, sceglite u specchiu chì mi piace quì è entre manualmente l'indirizzu in a finestra di l'installazione. Hè impurtante di ricurdà quì chì avete bisognu di specificà u percorsu à u cartulare induve si trova u cartulare repodata. Per esempiu, mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Particionamentu di u discu

Sta quistione hè piuttostu religiosa in u mo parè. Ogni amministratore hà a so propria pusizioni in questa materia. Ma sempre sparteraghju u mo puntu di vista nantu à u prublema.

Iè, in principiu, pudete assignà tuttu u spaziu à a radica è hà da travaglià, a maiò spessu ancu bè. Perchè allora chjappà un giardinu cù diverse sezioni? — In u mo parè, ci sò dui motivi principali per questu: quotes è portabilità.

Per esempiu, se qualcosa va male è l'errori si trovanu nantu à a partizione di dati principali, vulete esse capace di stillu u sistema è eseguisce misure di risuscitazione. Per quessa, aghju attribuitu personalmente una partizione separata per /boot. Ci hè un kernel è un bootloader. Di solitu 500 megabytes hè abbastanza, ma in casi rari pò esse necessariu più, è datu chì avemu digià abituatu à misurà u spaziu in terabytes, aghju attribuitu 2GB per questa sezione. È l'impurtante quì hè chì ùn si pò micca fà lvm.

Dopu vene a radica di u sistema. Per una installazione normale, ùn aghju mai bisognu di più di 4 GB per sistema, ma durante l'avvenimenti pianificati spessu aduprate u repertoriu /tmp per sbulicà e distribuzioni, è ùn aghju micca vistu nunda di dedicà à una partizione separata - in i sistemi muderni. hè pulita automaticamente, cusì ùn hè micca pienu. Allora aghju attribuitu 8GB per a radica.

Swap... In generale, ci hè pocu usu praticu da ellu. Sè avete principiatu à utilizà swap in u vostru servitore, oghje in u mondu reale questu significa solu chì u servitore hà bisognu di aghjunghje più RAM. Altrimenti, i prublemi cù u funziunamentu sò garantiti (o qualchì prugramma "perte" memoria). Per quessa, sta sezione hè necessaria solu per scopi diagnostichi. Dunque, 2 GB hè un numeru eccellente. Iè, a priscinniri di quantu memoria ci hè nantu à u servitore. Iè, aghju lettu tutti quelli articuli induve hè scrittu annantu à u rapportu di u voluminu di memoria per scambià u voluminu ... IMHO, sò obsoleti. In 10 anni di pratica ùn aghju mai bisognu di questu. 15 anni fà li aghju utilizatu, iè.

IMHO, ognunu pò decide per sè stessu se attribuisce / casa in una partizione separata. Se qualchissia nantu à u servitore utilizeghja attivamente stu repertoriu, hè megliu di assignà. Sì nimu, ùn ci hè bisognu.

Dopu, /var. In u mo parè, deve esse definitamente evidenziatu. Per principià, pudete limità à 4 GB, è vede cumu si va. È iè, per "cumu si va" intesu

  1. Prima, pudete sempre muntà un altru discu in u subdirectory /var (chì mostraraghju dopu cù un esempiu)
  2. Siconda, avemu lvm - pudete sempre aghjunghje. È avete di solitu aghjunghje quandu troppu ghjurnali cumincianu à versà quì. Ma ùn aghju mai statu capaci di predichendu sta figura in anticipu, cusì cumminciate cù 2 GB è poi fighjate.

U spaziu micca allocatu resterà liberu in u gruppu di volumi è pò sempre esse usatu dopu.

LVM

tutte Hè sensu per fà partizioni altru da / boot in LVM. Iè, cumpresu u scambiu. Iè, sicondu tutti i cunsiglii, u swap deve esse à u principiu di u discu, ma in u casu di LVM u so locu ùn pò esse determinatu in principiu. Ma cum'è aghju scrittu sopra, u vostru sistema ùn deve micca aduprà swap in tuttu. Dunque, ùn importa micca induve ellu hè. Ebbè, ùn campemu micca in u 95, onestamente !

In più, in LVM ci sò parechje entità basi chì avete bisognu di pudè campà cù:

  • volume fisicu
  • gruppu di volumi
  • volume logicu

I volumi fisichi sò cumminati in gruppi, è ogni voluminu fisicu pò esse in un solu gruppu, è un gruppu pò esse situatu nantu à parechji volumi fisichi à una volta.
È i volumi lògichi sò ognunu in un gruppu.

Ma... Damn, hè di novu u XXI seculu. È i servitori sò virtuali. Ùn hà micca sensu di applicà à elli i stessi miccanismi chì sò stati appiicati à quelli fisichi. È per i virtuali hè impurtante avè dati separatamente da u sistema! Questu hè assai impurtante, in particulare per a capacità di cambià rapidamente e dati à un'altra macchina virtuale (per esempiu, quandu si passa à un novu sistema operativu) è in generale per ogni tipu di boni utili (copia di salvezza separata per partizioni utilizendu strumenti di ipervisore, per esempiu) . Dunque, un gruppu di volumi hè utilizatu per u sistema è necessariamente un altru hè utilizatu per i dati! Sta divisione logica aiuta assai in a vita!

Sè avete creatu solu un discu duru virtuale quandu crea una macchina virtuale, questu hè quì a cunfigurazione finisci. È s'ellu ci sò dui, allora solu ùn marcate micca u sicondu.

Cuminciamu a stallazione.

Post-installazione

Allora, u sistema di novu stallatu hà finalmente avviatu. A prima cosa chì avete bisognu di verificà hè l'Internet.

ping ya.ru

Ci hè una risposta ? - Grande, appughjà Ctrl-C.
Se no, andate à stabilisce una reta, ùn ci hè micca vita senza questu, ma ùn hè micca ciò chì u mo articulu hè.

Avà s'è no simu ancu sottu à a radica, andate sottu à a radica, perchè scrive tali u numeru di cumandamenti cù sudo m'hà ruttu personalmente (è chì l'amministratori paranoidi mi perdonanu):

sudo -i

Avà u primu cosa chì facemu hè di tipu

dnf -y update

È s'è vo leghje stu articulu in 2019, assai prubabilmente nunda ùn succede, ma vale a pena pruvà.

Avà cunfiguremu u discu restante

Dicemu chì a partizione cù u sistema era xvda, allora u discu di dati serà xvdb. OK.

A maiò parte di i cunsiglii cumincianu cù "Esegui fdisk è crea una partizione ..."

Allora questu hè sbagliatu!

A dicu di novu perchè hè cusì impurtante! In questu casu, per travaglià cù LVM, chì occupa un discu virtuale sanu, crea partizioni nantu à questu hè dannusu! Ogni parolla in questa frasa hè impurtante. Se travagliamu senza LVM, avemu bisognu. Se avemu un sistema è dati nantu à u discu, avemu bisognu. Se per una certa ragione avemu bisognu di lascià a mità di u discu viotu, duvemu ancu. Ma di solitu tutti sti supposizioni sò puramente teorichi. Perchè se decide di aghjunghje spaziu à una partizione esistente, u modu più faciule per fà hè cù sta cunfigurazione. È a facilità di amministrazione supera cusì parechje altre cose chì andemu apposta versu sta cunfigurazione.

È a cunvenzione hè chì sè vo vulete espansione a partizione di dati, avete solu aghjunghje spazii à a partizione virtuale, poi espansione u gruppu cù vgextend è basta! In casi rari, qualcosa altru pò esse necessariu, ma almenu ùn avete micca bisognu di espansione u voluminu lògicu à u principiu, chì hè digià bellu. Altrimenti, per espansione stu voluminu, ricumandenu prima di sguassà l'esistente, è poi di creà un novu in cima ... Chì ùn pare micca assai bellu è ùn pò micca esse fattu in diretta, ma espansione secondu u scenariu chì aghju indicatu pò esse. realizatu "à a mosca" senza mancu unmounting a partition.

Allora, creemu un voluminu fisicu, dopu un gruppu di volumi chì include, è dopu una partizione per u nostru servitore:

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

Quì, invece di una lettera maiuscula "L" (è a dimensione in GB), pudete specificà una piccula, è poi invece di una dimensione assoluta, specificate una relativa, per esempiu, per utilizà a mità di u spaziu attualmente liberu in un gruppu di volumi, avete bisognu di specificà "-l +50%FREE"

È l'ultimu cumandamentu formate a partizione in u sistema di schedari ext4 (chì finu à quì, in a mo spirimintà, mostra a più grande stabilità in casu chì tuttu si rompe, cusì preferite).

Avà muntemu a partizione in u locu ghjustu. Per fà questu, aghjunghje a linea curretta à /etc/fstab:

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

È avemu marcatu

mount /var/www

Se si verifica un errore, sona l'alarma! Perchè questu significa chì avemu un errore in /etc/fstab. È chì à u prossimu reboot averemu prublemi assai grandi. U sistema ùn pò micca boot in tuttu, chì hè spessu assai tristu per i servizii di nuvola. Dunque, hè necessariu di curregà urgentemente l'ultima linea aghjuntu, o sguassate in tuttu! Hè per quessa chì ùn avemu micca scrittu u cumandamentu di muntagna manualmente - allora ùn avemu micca avutu una opportunità cusì eccellente per verificà a cunfigurazione subitu.

Avà installemu in realtà tuttu ciò chì vulemu è apre i porti per u web:

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

Sè vo vulete, pudete ancu mette una basa di dati quì, ma personalmente, pruvu di mantene separata da u servitore web. Ancu se mantenela vicinu hè più veloce, sì. A vitezza di l'adattatori di rete virtuale hè di solitu intornu à gigabit, è quandu si travaglia nantu à a listessa macchina, i chjamati sò casi istantaneamente. Ma hè menu sicuru. Cosa hè più impurtante per quale?

Avà aghjunghje u paràmetru à u schedariu di cunfigurazione (creemu un novu, l'ideulugia muderna di CentOS hè cusì)

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

Reboot u servitore.
In i cumenti, mi sò stata scundata per avè cunsigliatu per disattivà SeLinux, cusì mi correggeraghju è scriveraghju nantu à u fattu chì dopu à questu avete bisognu di ricurdà di cunfigurà SeLinux.
In fatti, prufittu ! 🙂

Source: www.habr.com

Add a comment