Servidor web a CentOS 8 amb php7, node.js i redis

Prefaci

Han passat 2 dies des del llançament d'una nova versió del sistema operatiu CentOS, concretament CentOS 8. I fins ara hi ha bastants articles a Internet sobre com s'hi fan les coses, així que vaig decidir omplir aquest buit. A més, us explicaré no només com instal·lar aquest parell de programes, sinó també com veig generalment la instal·lació de Linux en un entorn virtual al món modern per a tasques típiques, com ara particionar discos, etc.

Però al principi, vull parlar breument de per què val la pena canviar a aquesta versió de totes les anteriors, i hi ha dues raons per això:

  1. php7! A la versió anterior de CentOS, es va instal·lar el php5.4 "Orthodox"...

    D'acord, per ser una mica més seriosos, molts paquets van saltar a través de diverses versions en massa. Nosaltres (els fans dels sistemes operatius semblants a redhat) finalment hem entrat, si no en el futur, almenys en el present. I els partidaris d'Ubuntu ja no es riuen de nosaltres i ens assenyalaran amb el dit, bé... almenys durant una estona ;).

  2. Transició de yum a dnf. La diferència principal és que ara és oficialment compatible per treballar amb diverses versions de paquets alhora. Just al vuit, mai he trobat això útil, però sembla prometedor.

Crea una màquina virtual

Hi ha diferents hipervisors i no tinc cap objectiu d'adaptar el lector a un de concret, us explicaré els principis generals.

Память

Primer... Per instal·lar un sistema CentOS a partir del 7 segur, i al meu entendre també va ser el cas del 6 ("però això no és segur"), cal mínim 2 GB de RAM. Per tant, t'aconsello donar-ho primer.

Però en tot cas, després de la instal·lació, la mida de la memòria es pot reduir. Amb 1 GB el sistema nu funciona força bé, vaig comprovar.

Conduir

Per a una instal·lació normal, hauríeu de crear un disc virtual amb una capacitat de 20-30 GB. Això és suficient per al sistema. I un segon disc per a dades. Es pot afegir tant en l'etapa de creació d'una màquina virtual com després. Normalment l'afegeixo més tard.

Processador

En un nucli, el sistema nu s'alenteix. I com que els recursos són escalables lliurement, no veig cap sentit a donar-ne més en l'etapa d'instal·lació (tret que coneguis perfectament els requisits i et facis massa mandrós per tornar al configurador)

La resta normalment es pot deixar per defecte.

La instal·lació real

Així doncs... Anem a posar en marxa l'instal·lador... Personalment, he estat instal·lant aquests serveis només en forma de màquines virtuals durant molt de temps, així que no descriuré tota mena de registres de distribució en una unitat flaix, només munto l'ISO com a CD al meu hipervisor preferit, descarregueu-lo i va.

La instal·lació bàsica és força típica, només em detendré en alguns punts.

Selecció de la font

Des del llançament de la vuitena versió, el mirall de Yandex fa dies que es troba. Bé, és a dir, augmenta periòdicament i després torna a començar a mostrar un error. Estic segur que es deu a una càrrega excessiva del servei. Per tant, per indicar la font, personalment vaig haver d'anar, en comptes d'introduir l'adreça habitual aquí, seleccioneu el mirall que m'agrada allà i introduïu manualment l'adreça a la finestra de l'instal·lador. És important recordar aquí que heu d'especificar el camí a la carpeta on es troba el directori repodata. Per exemple mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Particionament del disc

Aquesta pregunta és més aviat religiosa al meu entendre. Cada administrador té la seva pròpia posició sobre aquest tema. Però encara compartiré el meu punt de vista sobre el tema.

Sí, en principi, podeu assignar tot l'espai a l'arrel i funcionarà, la majoria de vegades fins i tot força bé. Per què tancar un jardí amb diferents seccions? — Al meu entendre, hi ha dos motius principals per això: les quotes i la portabilitat.

Per exemple, si alguna cosa va malament i es produeixen errors a la partició de dades principal, voleu poder arrencar el sistema i dur a terme mesures de reanimació. Per tant, personalment assigno una partició separada per a /boot. Hi ha un nucli i un carregador d'arrencada. Normalment amb 500 megabytes n'hi ha prou, però en casos rars es poden necessitar més, i tenint en compte que ja estem acostumats a mesurar l'espai en terabytes, destino 2 GB per a aquesta secció. I l'important aquí és que no es pot fer lvm.

A continuació ve l'arrel del sistema. Per a una instal·lació normal, mai he necessitat més de 4 GB per sistema, però durant els esdeveniments programats sovint faig servir el directori /tmp per desempaquetar distribucions, i no veig cap sentit a dedicar-lo a una partició separada, en els sistemes moderns. es neteja automàticament, de manera que no s'omple. Així que assigno 8 GB per a l'arrel.

Canvi... En general, hi ha poc ús pràctic. Si comenceu a utilitzar l'intercanvi al vostre servidor, avui al món real això només vol dir que el servidor necessita afegir més memòria RAM. En cas contrari, els problemes de rendiment estan garantits (o algun programa "permet" memòria). Per tant, aquesta secció només és necessària per a finalitats de diagnòstic. Per tant, 2 GB és un nombre excel·lent. Sí, independentment de la quantitat de memòria que hi hagi al servidor. Sí, he llegit tots aquells articles on està escrit sobre la relació entre el volum de memòria i el volum d'intercanvi... IMHO, estan obsolets. En 10 anys de pràctica no he necessitat mai això. Fa 15 anys els vaig fer servir, sí.

IMHO, tothom pot decidir per si mateix si assigna /home a una partició separada. Si algú del servidor utilitzarà activament aquest directori, és millor assignar-lo. Si no hi ha ningú, no cal.

A continuació, /var. Al meu entendre, definitivament s'hauria de destacar. Per començar, podeu limitar-vos a 4 GB i veure com va. I sí, amb "com va" vull dir això

  1. En primer lloc, sempre podeu muntar un altre disc al subdirectori /var (que mostraré més endavant amb un exemple)
  2. En segon lloc, tenim lvm: sempre el podeu afegir. I normalment l'has d'afegir quan hi comencen a abocar massa troncs. Però mai he estat capaç de predir aquesta xifra amb antelació, així que començo amb 2 GB i després miro.

L'espai no assignat romandrà lliure al grup de volums i sempre es pot utilitzar més tard.

LVM

Tots Té sentit fer particions diferents de /boot a LVM. Sí, inclòs l'intercanvi. Sí, segons tots els consells, l'intercanvi hauria de ser al principi del disc, però en el cas de LVM, la seva ubicació no es pot determinar en principi. Però com he escrit més amunt, el vostre sistema no hauria de utilitzar l'intercanvi en absolut. Per tant, no importa on sigui. Bé, no vivim al 95, sincerament!

A més, a LVM hi ha diverses entitats bàsiques amb les quals necessiteu poder conviure:

  • volum físic
  • grup de volum
  • volum lògic

Els volums físics es combinen en grups, i cada volum físic només pot estar en un grup i un grup es pot localitzar en diversos volums físics alhora.
I els volums lògics estan cadascun en un grup.

Però... Caram, torna a ser el segle XXI. I els servidors són virtuals. No té sentit aplicar-los els mateixos mecanismes que s'aplicaven als físics. I per als virtuals és important tenir les dades separades del sistema! Això és molt important, en particular per a la capacitat de canviar ràpidament les dades a una altra màquina virtual (per exemple, quan es canvia a un sistema operatiu nou) i, en general, per a tot tipus de avantatges útils (còpies de seguretat separades per particions mitjançant eines d'hipervisor, per exemple) . Per tant, un grup de volums s'utilitza per al sistema i necessàriament un altre per a les dades! Aquesta divisió lògica ajuda molt a la vida!

Si només heu creat un disc dur virtual en crear una màquina virtual, aquí acaba la configuració. I si n'hi ha dos, no marqueu encara el segon.

Comencem la instal·lació.

Postinstal·lació

Per tant, el sistema recentment instal·lat finalment va arrencar. El primer que has de comprovar és Internet.

ping ya.ru

Hi ha una resposta? - Genial, premeu Ctrl-C.
Si no, vés a crear una xarxa, no hi ha vida sense això, però no és del que tracta el meu article.

Ara si encara no estem sota root, aneu a root, perquè escrivint такое el nombre d'ordres amb sudo em va trencar personalment (i que els administradors paranoics em perdonis):

sudo -i

Ara el primer que fem és escriure

dnf -y update

I si esteu llegint aquest article el 2019, probablement no passarà res, però valia la pena provar-ho.

Ara configurem el disc restant

Suposem que la partició amb el sistema era xvda, llavors el disc de dades serà xvdb. D'ACORD.

La majoria dels consells començaran amb "Executar fdisk i crear una partició..."

Així que això és incorrectament!

Ho tornaré a dir perquè és molt important! En aquest cas, treballar amb LVM, que ocupa un disc virtual sencer, crear-hi particions és perjudicial! Cada paraula d'aquesta frase és important. Si treballem sense LVM, ho hem de fer. Si tenim un sistema i dades al disc, ho necessitem. Si per algun motiu hem de deixar la meitat del disc buida, també ho hauríem de fer. Però normalment totes aquestes suposicions són purament teòriques. Perquè si decidim afegir espai a una partició existent, la manera més senzilla de fer-ho és amb aquesta configuració. I la facilitat d'administració supera tant moltes altres coses que estem avançant cap a aquesta configuració.

I la comoditat és que si voleu ampliar la partició de dades, només heu d'afegir espais a la partició virtual i, a continuació, ampliar el grup amb vgextend i ja està! En casos rars, pot ser que calgui una altra cosa, però almenys no haureu d'ampliar el volum lògic al principi, cosa que ja és agradable. En cas contrari, per ampliar aquest mateix volum, recomanen primer esborrar l'existent, i després crear-ne un de nou al damunt... La qual cosa no té molt bona pinta i no es pot fer en directe, però l'expansió segons l'escenari que he indicat es pot fer. realitzat "sobre la marxa" sense ni tan sols desmuntar la partició.

Per tant, creem un volum físic, després un grup de volums que l'inclogui i després una partició per al nostre servidor:

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

Aquí, en lloc d'una lletra majúscula "L" (i la mida en GB), podeu especificar-ne una petita i, a continuació, en lloc d'una mida absoluta, especificar-ne una relativa, per exemple, per utilitzar la meitat de l'espai lliure actualment a un grup de volums, heu d'especificar "-l +50% GRATIS"

I l'última comanda formatea la partició al sistema de fitxers ext4 (que fins ara, segons la meva experiència, mostra la major estabilitat en cas que tot es trenqui, així que ho prefereixo).

Ara muntem la partició al lloc correcte. Per fer-ho, afegiu la línia correcta a /etc/fstab:

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

I marquem

mount /var/www

Si es produeix un error, sona l'alarma! Perquè això vol dir que tenim un error a /etc/fstab. I que en el proper reinici tindrem problemes molt grans. És possible que el sistema no arrenqui del tot, cosa que sovint és molt trist per als serveis al núvol. Per tant, cal corregir urgentment l'última línia afegida o eliminar-la del tot! És per això que no hem escrit l'ordre mount manualment; llavors no hauríem tingut una oportunitat tan excel·lent per comprovar la configuració immediatament.

Ara instal·lem tot el que volíem i obrim els ports per a la web:

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

Si voleu, també podeu posar una base de dades aquí, però personalment intento mantenir-la separada del servidor web. Encara que mantenir-la a prop és més ràpid, sí. La velocitat dels adaptadors de xarxa virtual acostuma a rondar els gigabits i, quan es treballa a la mateixa màquina, les trucades es produeixen gairebé a l'instant. Però és menys segur. Què és més important per a qui?

Ara afegim el paràmetre al fitxer de configuració (en creem un de nou, la ideologia moderna de CentOS és així)

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

Reiniciem el servidor.
Als comentaris, em van increpar per haver-me aconsellat desactivar SeLinux, així que em corregiré i escriuré sobre el fet que després d'això haureu de recordar configurar SeLinux.
De fet, benefici! 🙂

Font: www.habr.com

Afegeix comentari