Veebiserver CentOS 8-s koos php7, node.js ja redisega

Eessõna

CentOS-i operatsioonisüsteemi uue versiooni, nimelt CentOS 2, ilmumisest on möödas 8 päeva. Ja siiani on Internetis üsna palju artikleid selle kohta, kuidas selles asju tehakse, nii et otsustasin selle tühimiku täita. Veelgi enam, ma räägin teile mitte ainult selle programmipaari installimisest, vaid ka sellest, kuidas ma üldiselt näen Linuxi installimist virtuaalsesse keskkonda tänapäeva maailmas tüüpiliste ülesannete jaoks, sealhulgas ketaste partitsioonideks ja nii edasi.

Kuid alguses tahan lühidalt rääkida sellest, miks tasub kõigilt eelmistelt sellele versioonile üle minna ja sellel on kaks põhjust:

  1. php7! CentOS-i eelmises versioonis oli installitud "Orthodox" php5.4...

    Okei, kui natukene tõsisem olla, siis palju pakette hüppas massiliselt mitmest versioonist läbi. Meie (redhat-laadsete OS-ide fännid) oleme lõpuks sisenenud kui mitte tulevikku, siis vähemalt olevikku. Ja Ubuntu toetajad ei hakka enam meie üle naerma ja meie peale näpuga näitama, noh... vähemalt mõnda aega ;).

  2. Üleminek yumilt dnf-ile. Peamine erinevus seisneb selles, et nüüd toetatakse ametlikult töötamist mitme paketi versiooniga korraga. Kaheksas pole see mulle kunagi kasulik olnud, kuid see kõlab paljutõotavalt.

Looge virtuaalne masin

Hüperviisoreid on erinevaid ja mul pole eesmärki lugejat konkreetsele kohandada, räägin teile üldpõhimõtetest.

mälu

Esiteks... Et kindlasti paigaldada CentOS-i süsteem alates 7-st ja minu arvates oli see nii ka 6-s (“aga see pole kindel”), on vaja minimaalselt 2 GB RAM. Seetõttu soovitan teil esmalt nii palju välja anda.

Aga kui midagi, siis pärast installimist saab mälu mahtu vähendada. 1 GB juures töötab paljas süsteem päris hästi, kontrollisin.

ketas

Tavaliseks installimiseks peaksite looma virtuaalse ketta mahuga 20-30 GB. Sellest süsteemi jaoks piisab. Ja teine ​​ketas andmete jaoks. Seda saab lisada nii virtuaalmasina loomise etapis kui ka pärast seda. Tavaliselt lisan selle hiljem.

protsessor

Ühel tuumal paljas süsteem ei aeglustu. Ja kuna ressursid on vabalt skaleeritavad, ei näe ma mõtet installietapis rohkem anda (välja arvatud juhul, kui tunnete täpselt nõudeid ja olete liiga laisk, et uuesti konfiguraatorisse minna)

Ülejäänu võib tavaliselt vaikimisi jätta.

Tegelik paigaldus

Niisiis... Käivitame installija... Mina isiklikult olen selliseid teenuseid juba pikka aega installinud ainult virtuaalmasinate kujul, nii et ma ei hakka kirjeldama igasuguseid jaotuskirjeid mälupulgal - ma lihtsalt ühendan ISO CD-na minu lemmik hüperviisoris, laadige alla ja minge.

Põhiinstallatsioon on üsna tüüpiline, peatun vaid mõnel punktil.

Allika valik

Alates kaheksanda versiooni väljaandmisest on Yandexi peegel juba päevi lebanud. Noh, see tähendab, et see tõuseb perioodiliselt ja hakkab siis uuesti viga näitama. Olen kindel, et selle põhjuseks on teenuse liigne koormus. Seetõttu pidin allika märkimiseks isiklikult tavapärase aadressi sisestamise asemel minema kliki siia, valige sealt mulle meeldiv peegel ja sisestage installiaknasse käsitsi aadress. Siin on oluline meeles pidada, et peate määrama tee kausta, kus kataloog asub repodata. Näiteks mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Ketta partitsioonid

See küsimus on minu meelest pigem religioosne. Igal administraatoril on selles küsimuses oma seisukoht. Aga ma jagan siiski oma seisukohta selles küsimuses.

Jah, põhimõtteliselt saate kogu ruumi juurele eraldada ja see töötab, enamasti isegi üsna hästi. Miks siis aeda erinevate sektsioonidega tarastada? — Minu arvates on sellel kaks peamist põhjust: kvoodid ja teisaldatavus.

Näiteks kui midagi läheb valesti ja peamises andmesektsioonis ilmnevad tõrked, soovite, et teil oleks võimalik siiski süsteemi alglaadimine ja elustamismeetmed läbi viia. Seetõttu eraldan isiklikult /boot jaoks eraldi partitsiooni. Seal on kernel ja alglaadur. Tavaliselt piisab 500 megabaidist, kuid harvadel juhtudel võib vaja minna rohkemgi ja arvestades, et oleme juba harjunud ruumi mõõtma terabaitides, eraldan selle jaotise jaoks 2 GB. Ja siin on oluline, et seda ei saa teha lvm-ga.

Edasi tuleb süsteemi juur. Tavapaigalduse jaoks pole mul kunagi vaja rohkem kui 4 GB süsteemi kohta, kuid plaaniliste sündmuste ajal kasutan distributsioonide lahtipakkimiseks sageli /tmp kataloogi ja ma ei näe mõtet selle eraldamisel eraldi partitsioonile – tänapäevastes süsteemides. see puhastatakse automaatselt, nii et seda ei täideta. Seega eraldan juure jaoks 8 GB.

Vahetada... Praktilist kasu on sellest üldiselt vähe. Kui hakkate oma serveris kasutama vahetust, tähendab see tänapäeval reaalses maailmas ainult seda, et server peab lisama rohkem RAM-i. Vastasel juhul on jõudlusega seotud probleemid garanteeritud (või mõni programm "lekib" mälu). Seetõttu on see jaotis vajalik ainult diagnostilistel eesmärkidel. Seetõttu on 2 GB suurepärane arv. Jah, olenemata sellest, kui palju mälu serveris on. Jah, ma lugesin kõiki neid artikleid, kus on kirjutatud mälumahu ja vahetusmahu suhte kohta... IMHO, need on aegunud. 10-aastase praktika jooksul pole mul seda kordagi vaja läinud. 15 aastat tagasi kasutasin neid jah.

IMHO, igaüks saab ise otsustada, kas eraldada /home eraldi partitsiooniks. Kui keegi serveris kasutab seda kataloogi aktiivselt, on parem see eraldada. Kui mitte kedagi, siis pole ka vajadust.

Järgmine, /var. Minu meelest tuleks seda kindlasti esile tõsta. Alustuseks võite piirduda 4 GB-ga ja vaadata, kuidas see läheb. Ja jah, "kuidas see läheb" mõtlen ma seda

  1. Esiteks saate alati ühendada teise ketta alamkataloogi /var (mida näitan hiljem näitega)
  2. Teiseks on meil lvm – seda saab alati lisada. Ja tavaliselt tuleb see lisada siis, kui sinna hakkab liiga palju palke sisse valguma. Kuid ma pole kunagi suutnud seda arvu ette ennustada, nii et alustan 2 GB-st ja siis vaatan.

Jaotamata ruum jääb mahurühmas vabaks ja seda saab alati hiljem kasutada.

LVM

Kõik LVM-is on mõttekas teha muud partitsioonid peale /boot. Jah, sealhulgas vahetus. Jah, kõigi nõuannete järgi peaks swap olema ketta alguses, kuid LVM-i puhul ei saa selle asukohta põhimõtteliselt määrata. Aga nagu ma eespool kirjutasin, teie süsteem ei peaks kasuta vahetust üldse. Seetõttu pole vahet, kus ta on. No ausalt, me ei ela 95. aastal!

Lisaks on LVM-is mitu põhiolemit, millega peate elama:

  • füüsiline maht
  • mahurühm
  • loogiline maht

Füüsilised mahud ühendatakse rühmadesse ja iga füüsiline maht võib olla ainult ühes rühmas ja rühm võib asuda korraga mitmel füüsilisel köitel.
Ja loogilised mahud on igaüks ühes rühmas.

Aga... Kurat, käes on jälle 21. sajand. Ja serverid on virtuaalsed. Pole mõtet rakendada neile samu mehhanisme, mida rakendati füüsilistele. Ja virtuaalsete jaoks on oluline, et andmed oleksid süsteemist eraldi! See on väga oluline, eriti selleks, et saaksite kiiresti vahetada andmeid teisele virtuaalmasinale (näiteks uuele OS-ile üleminekul) ja üldiselt igasuguste kasulike asjade jaoks (näiteks eraldage varukoopiad partitsioonide kaupa, kasutades hüperviisori tööriistu). . Seetõttu kasutatakse süsteemi jaoks ühte köiterühma ja andmete jaoks tingimata teist! See loogiline jaotus aitab elus palju!

Kui lõite virtuaalse masina loomisel ainult ühe virtuaalse kõvaketta, siis siin konfiguratsioon lõpeb. Ja kui neid on kaks, siis ärge lihtsalt teist veel märkige.

Alustame installimist.

Paigaldusjärgne

Niisiis, äsja installitud süsteem lõpuks käivitati. Esimene asi, mida peate kontrollima, on Internet.

ping ya.ru

Kas on vastus? - Suurepärane, vajutage Ctrl-C.
Kui ei, siis looge võrk, ilma selleta pole elu, kuid minu artikkel sellest ei räägi.

Nüüd, kui me pole veel juure all, minge juure alla, sest tippimine selline a sudo käskude arv rikkus mind isiklikult (ja andku paranoilised administraatorid mulle andeks):

sudo -i

Nüüd esimene asi, mida teeme, on tippimine

dnf -y update

Ja kui loete seda artiklit 2019. aastal, siis tõenäoliselt ei juhtu midagi, kuid see oli proovimist väärt.

Nüüd konfigureerime ülejäänud ketta

Oletame, et süsteemiga partitsioon oli xvda, siis on andmekettaks xvdb. OKEI.

Enamik nõuandeid algab sõnadega "Käivita fdisk ja loo partitsioon..."

Nii see on valesti!

Ma ütlen seda uuesti, sest see on nii oluline! Sel juhul on LVM-iga töötamine, mis hõivab terve virtuaalse ketta, partitsioonide loomine kahjulik! Iga sõna selles fraasis on oluline. Kui töötame ilma LVM-ita, peame seda tegema. Kui meil on kettal süsteem ja andmed, siis me vajame seda. Kui meil on mingil põhjusel vaja pool kettast tühjaks jätta, peaksime ka seda tegema. Kuid tavaliselt on kõik need oletused puhtalt teoreetilised. Sest kui otsustame olemasolevale partitsioonile ruumi lisada, siis kõige lihtsam on seda teha selle konfiguratsiooniga. Ja haldamise lihtsus kaalub nii palju üles, et liigume sihikindlalt selle konfiguratsiooni poole.

Ja mugavus on see, et kui soovite andmepartitsiooni laiendada, lisage virtuaalsele partitsioonile lihtsalt tühikud, seejärel laiendage rühma vgextendi abil ja ongi kõik! Harvadel juhtudel võib vaja minna midagi muud, kuid vähemalt ei pea te alguses loogilist helitugevust laiendama, mis on juba tore. Muidu just selle mahu laiendamiseks soovitavad nad esmalt kustutada olemasolev ja siis peale uus luua... Mis ei näe eriti ilus välja ja seda ei saa teha otse-eetris, kuid laiendamine minu näidatud stsenaariumi järgi võib olla teostada "lennult" isegi vaheseina lahti ühendamata.

Seega loome füüsilise köite, seejärel seda sisaldava köiterühma ja seejärel oma serveri partitsiooni:

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

Siin saab suure L-tähe (ja suurus GB-des) asemel määrata väikese ja siis absoluutsuuruse asemel määrata suhtelise, näiteks kasutada poole hetkel vabast ruumist. helitugevuse rühma, peate määrama "-l +50%TASUTA"

Ja viimane käsk vormindab partitsiooni ext4 failisüsteemis (mis minu kogemuse järgi näitab seni suurimat stabiilsust juhuks, kui kõik puruneb, seega eelistan seda).

Nüüd paigaldame partitsiooni õigesse kohta. Selleks lisage faili /etc/fstab õige rida:

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

Ja me valime

mount /var/www

Kui ilmneb tõrge, anna häire! Sest see tähendab, et failis /etc/fstab on viga. Ja et järgmisel taaskäivitamisel on meil väga suured probleemid. Süsteem ei pruugi üldse käivituda, mis on pilveteenuste puhul sageli väga kurb. Seetõttu on vaja viimati lisatud rida kiiresti parandada või see üldse kustutada! Seetõttu ei kirjutanud me mount käsku käsitsi - siis poleks olnud nii suurepärast võimalust konfiguratsiooni kohe kontrollida.

Nüüd installime tegelikult kõik, mida tahtsime, ja avame veebi pordid:

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

Soovi korral võid siia panna ka andmebaasi, aga isiklikult püüan seda veebiserverist eraldi hoida. Kuigi tema lähedal hoidmine on kiirem, jah. Virtuaalsete võrguadapterite kiirus on tavaliselt gigabiti ringis ja samas masinas töötades tekivad kõned peaaegu silmapilkselt. Kuid see on vähem ohutu. Mis on kellele olulisem?

Nüüd lisame parameetri konfiguratsioonifaili (loome uue, CentOS-i kaasaegne ideoloogia on selline)

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

Taaskäivitame serveri.
Kommentaarides sain noomida, et soovitasin SeLinux välja lülitada, nii et parandan ennast ja kirjutan sellest, et pärast seda peate meeles pidama SeLinuxi seadistamist.
Tegelikult kasum! 🙂

Allikas: www.habr.com

Lisa kommentaar