Web-palvelin CentOS 8:lla, jossa on php7, node.js ja redis

Esipuhe

On kulunut 2 päivää uuden CentOS-käyttöjärjestelmän version, nimittäin CentOS 8:n, julkaisusta. Ja toistaiseksi Internetissä on melko paljon artikkeleita siitä, miten siinä tehdään asioita, joten päätin täyttää tämän aukon. Lisäksi kerron sinulle tämän ohjelmaparin asennuksen lisäksi myös siitä, kuinka näen Linuxin asentamisen virtuaaliympäristöön nykymaailmassa tyypillisiin tehtäviin, mukaan lukien levyjen osiointi ja niin edelleen.

Mutta aluksi haluan puhua lyhyesti siitä, miksi kannattaa vaihtaa tähän versioon kaikista aiemmista, ja tähän on kaksi syytä:

  1. php7! Edellisessä CentOS-versiossa "Orthodox" php5.4 asennettiin...

    Okei, ollakseni hieman vakavampi, monet paketit hyppäsivät useiden versioiden läpi massalla. Me (redhat-tyyppisten käyttöjärjestelmien fanit) olemme vihdoin astuneet, jos emme tulevaisuuteen, niin ainakin nykyhetkeen. Ja Ubuntu-kannattajat eivät enää naura meille ja osoittavat meille sormella, no... ainakaan hetkeksi ;).

  2. Siirtyminen yumista dnf:ään. Suurin ero on, että nyt se on virallisesti tuettu työskentelemään useiden pakettien versioiden kanssa kerralla. Kahdeksassa en ole koskaan pitänyt tätä hyödyllisenä, mutta se kuulostaa lupaavalta.

Luo virtuaalikone

Hypervisoreita on erilaisia, eikä minulla ole tavoitetta räätälöidä lukijaa tietyn mukaan, kerron teille yleisistä periaatteista.

Память

Ensin... CentOS-järjestelmän asentamiseksi varmasti 7:stä alkaen, ja mielestäni näin oli myös 6:ssa ("mutta tämä ei ole varmaa"), tarvitset vähimmäis- 2 Gt RAM-muistia. Siksi suosittelen, että annat sen ensin.

Mutta jos mitään, asennuksen jälkeen muistin kokoa voidaan pienentää. 1 Gt:lla paljas järjestelmä toimii melko hyvin, tarkistin.

Диск

Normaalia asennusta varten sinun tulee luoda virtuaalinen levy, jonka kapasiteetti on 20-30 Gt. Tämä riittää järjestelmälle. Ja toinen levy datalle. Se voidaan lisätä sekä virtuaalikoneen luomisvaiheessa että sen jälkeen. Yleensä lisään sen myöhemmin.

suoritin

Yhdellä ytimellä paljas järjestelmä ei hidastu. Ja koska resurssit ovat vapaasti skaalautuvia, en näe mitään järkeä antaa enemmän asennusvaiheessa (ellet tunne vaatimuksia täydellisesti ja olet liian laiska menemään uudelleen konfiguraattoriin)

Loput voidaan yleensä jättää oletusarvoksi.

Varsinainen asennus

Joten... Käynnistetään asennusohjelma... Henkilökohtaisesti olen asentanut tällaisia ​​palveluita vain virtuaalikoneiden muodossa jo pitkään, joten en kuvaile kaikenlaisia ​​jakelutietueita flash-asemalla - liitän vain ISO CD-levynä suosikkihypervisorissani, lataa ja mene.

Perusasennus on melko tyypillistä, käsittelen vain muutamia kohtia.

Lähteen valinta

Kahdeksannen version julkaisusta lähtien Yandexin peili on makaanut päiviä. No, eli se nousee ajoittain ja alkaa sitten taas näyttää virhettä. Olen varma, että se johtuu palvelun liiallisesta kuormituksesta. Siksi minun oli henkilökohtaisesti mentävä lähteen ilmoittamiseksi tavallisen osoitteen kirjoittamisen sijaan täällä, valitse peili, josta pidän, ja kirjoita osoite manuaalisesti asennusikkunaan. Tässä on tärkeää muistaa, että sinun on määritettävä polku kansioon, jossa hakemisto sijaitsee repodata. Esimerkiksi mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Levyn osiointi

Tämä kysymys on mielestäni melko uskonnollinen. Jokaisella järjestelmänvalvojalla on oma kantansa tähän asiaan. Mutta jaan silti näkemykseni asiaan.

Kyllä, periaatteessa voit varata koko tilan juurille ja se toimii, useimmiten jopa melko hyvin. Miksi sitten aidata puutarha eri osilla? — Mielestäni tähän on kaksi pääasiallista syytä: kiintiöt ja siirrettävyys.

Jos esimerkiksi jokin menee pieleen ja päätietoosiossa ilmenee virheitä, haluat silti pystyä käynnistämään järjestelmän ja suorittamaan elvytystoimenpiteitä. Siksi varaan henkilökohtaisesti erillisen osion /bootille. Siellä on ydin ja käynnistyslatain. Yleensä 500 megatavua riittää, mutta harvoin voi tarvita enemmänkin, ja koska olemme jo tottuneet mittaamaan tilaa teratavuina, varaan tälle osalle 2 Gt. Ja tärkeintä tässä on, että sitä ei voi tehdä lvm: llä.

Seuraavaksi tulee järjestelmän juuri. Normaalia asennusta varten en ole koskaan tarvinnut enempää kuin 4 Gt järjestelmää kohden, mutta ajoitettujen tapahtumien aikana käytän usein /tmp-hakemistoa jakeluiden purkamiseen, enkä näe mitään järkeä omistaa sitä erilliseen osioon - nykyaikaisissa järjestelmissä. se puhdistetaan automaattisesti, joten sitä ei täytetä. Joten varaan 8 Gt rootille.

Vaihda... Yleisesti ottaen siitä on vähän käytännön hyötyä. Jos alat käyttää swapia palvelimellasi, tämä tarkoittaa nykyään todellisessa maailmassa vain sitä, että palvelimen on lisättävä RAM-muistia. Muuten suorituskykyongelmat taataan (tai jotkin ohjelmat "vuotavat" muistia). Siksi tätä osaa tarvitaan vain diagnostisiin tarkoituksiin. Siksi 2 Gt on erinomainen luku. Kyllä, riippumatta siitä, kuinka paljon muistia palvelimella on. Kyllä, luin kaikki ne artikkelit, joissa on kirjoitettu muistin ja swap-tilavuuden suhteesta... IMHO, ne ovat vanhentuneita. 10 vuoden harjoittelun aikana en ole koskaan tarvinnut tätä. 15 vuotta sitten käytin niitä, kyllä.

IMHO, jokainen voi päättää itse, allokoiko /home erilliseen osioon. Jos joku palvelimella käyttää aktiivisesti tätä hakemistoa, on parempi varata se. Jos ei kukaan, ei ole tarvettakaan.

Seuraavaksi /var. Mielestäni sitä pitäisi ehdottomasti korostaa. Aluksi voit rajoittaa itsesi 4 gigatavuun ja katsoa, ​​miten se menee. Ja kyllä, "miten se menee" tarkoitan sitä

  1. Ensinnäkin, voit aina liittää toisen levyn /var-alihakemistoon (jonka näytän myöhemmin esimerkin kanssa)
  2. Toiseksi meillä on lvm - voit aina lisätä sen. Ja se on yleensä lisättävä, kun sinne alkaa kaata liikaa tukkeja. Mutta en ole koskaan voinut ennustaa tätä lukua etukäteen, joten aloitan 2 Gt:sta ja katson sitten.

Kohdistamaton tila pysyy vapaana volyymiryhmässä ja voidaan aina käyttää myöhemmin.

LVM

kaikki On järkevää tehdä LVM:ssä muita osioita kuin /boot. Kyllä, mukaan lukien vaihto. Kyllä, kaikkien neuvojen mukaan swap pitäisi olla levyn alussa, mutta LVM:n tapauksessa sen sijaintia ei periaatteessa voida määrittää. Mutta kuten yllä kirjoitin, järjestelmäsi ei pitäisi käytä vaihtoa ollenkaan. Siksi sillä ei ole väliä missä hän on. No, me emme elä vuonna 95, rehellisesti!

Lisäksi LVM:ssä on useita peruskokonaisuuksia, joiden kanssa sinun on pystyttävä elämään:

  • fyysinen tilavuus
  • volyymiryhmä
  • looginen äänenvoimakkuus

Fyysiset volyymit yhdistetään ryhmiin, ja jokainen fyysinen tilavuus voi olla vain yhdessä ryhmässä ja ryhmä voi sijaita usealla fyysisellä tilavuudella kerralla.
Ja loogiset volyymit ovat kukin yhdessä ryhmässä.

Mutta... Vittu, on taas 21. vuosisata. Ja palvelimet ovat virtuaalisia. Ei ole järkevää soveltaa niihin samoja mekanismeja, joita sovellettiin fyysisiin. Ja virtuaalisille on tärkeää, että tiedot ovat erillään järjestelmästä! Tämä on erittäin tärkeää erityisesti kyvylle siirtää tietoja nopeasti toiseen virtuaalikoneeseen (esimerkiksi uuteen käyttöjärjestelmään vaihtaessasi) ja yleensä kaikenlaisten hyödyllisten herkkujen vuoksi (esimerkiksi osioiden erilliset varmuuskopiot hypervisor-työkaluilla) . Siksi järjestelmälle käytetään yhtä taltioryhmää ja datalle välttämättä toista! Tämä looginen jako auttaa paljon elämässä!

Jos loit vain yhden virtuaalisen kiintolevyn luodessasi virtuaalikoneen, konfigurointi päättyy tähän. Ja jos niitä on kaksi, älä merkitse vielä toista.

Aloitetaan asennus.

Asennuksen jälkeinen

Joten, juuri asennettu järjestelmä vihdoin käynnistyi. Ensimmäinen asia, joka sinun on tarkistettava, on Internet.

ping ya.ru

Onko vastausta? - Hienoa, paina Ctrl-C.
Jos ei, luo verkosto, ilman tätä ei ole elämää, mutta siitä ei artikkelissani ole kyse.

Nyt jos emme ole vielä pääkäyttäjän alaisina, mene pääkäyttäjän alle, koska kirjoittaminen sellainen a sudo-komentojen määrä rikkoi minut henkilökohtaisesti (ja antakoot vainoharhaiset järjestelmänvalvojat minulle anteeksi):

sudo -i

Nyt ensimmäinen asia, jonka teemme, on kirjoittaa

dnf -y update

Ja jos luet tätä artikkelia vuonna 2019, ei todennäköisesti tapahdu mitään, mutta se oli kokeilun arvoinen.

Määritetään nyt jäljellä oleva levy

Oletetaan, että järjestelmän osio oli xvda, sitten datalevystä tulee xvdb. OK.

Useimmat neuvot alkavat sanoilla "Suorita fdisk ja luo osio..."

Joten tämä on virheellisesti!

Sanon sen uudelleen, koska se on niin tärkeää! Tässä tapauksessa työskentely LVM:n kanssa, joka vie yhden kokonaisen virtuaalilevyn, osioiden luominen sille on haitallista! Jokainen sana tässä lauseessa on tärkeä. Jos työskentelemme ilman LVM:ää, meidän on tehtävä se. Jos meillä on järjestelmä ja tiedot levyllä, tarvitsemme niitä. Jos jostain syystä joudumme jättämään puolet levystä tyhjäksi, meidänkin pitäisi. Mutta yleensä kaikki nämä oletukset ovat puhtaasti teoreettisia. Koska jos päätämme lisätä tilaa olemassa olevaan osioon, helpoin tapa tehdä se on tällä kokoonpanolla. Ja hallinnan helppous on niin paljon tärkeämpää kuin monet muut asiat, että olemme määrätietoisesti siirtymässä kohti tätä kokoonpanoa.

Ja mukavuus on, että jos haluat laajentaa dataosiota, lisää vain välilyöntejä virtuaaliosioon ja laajenna sitten ryhmää vgextendillä ja se on siinä! Harvinaisissa tapauksissa saatetaan tarvita jotain muuta, mutta ainakaan sinun ei tarvitse laajentaa loogista äänenvoimakkuutta alussa, mikä on jo mukavaa. Muuten juuri tämän volyymin laajentamiseksi suositellaan ensin poistamaan vanha ja sitten luomaan uusi päälle... Mikä ei näytä kovin hyvältä eikä sitä voi tehdä livenä, mutta laajentaminen esittämäni skenaarion mukaan voi olla suoritettiin "lennossa" edes irroittamatta osiota.

Joten luomme fyysisen taltion, sitten sen sisältävän taltioryhmän ja sitten osion palvelimellemme:

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

Tässä voit ison L-kirjaimen (ja koon gigatavuina) sijaan määrittää pienen, ja sitten absoluuttisen koon sijaan suhteellisen, esimerkiksi käyttääksesi puolet tällä hetkellä vapaasta tilasta. tilavuusryhmä, sinun on määritettävä "-l +50%FREE"

Ja viimeinen komento muotoilee osion ext4-tiedostojärjestelmässä (joka toistaiseksi kokemukseni mukaan näyttää suurimman vakauden siltä varalta, että kaikki hajoaa, joten pidän siitä parempana).

Nyt asennamme osion oikeaan paikkaan. Voit tehdä tämän lisäämällä oikean rivin tiedostoon /etc/fstab:

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

Ja soitamme

mount /var/www

Jos tapahtuu virhe, soita hälytys! Koska tämä tarkoittaa, että meillä on virhe tiedostossa /etc/fstab. Ja että seuraavan uudelleenkäynnistyksen yhteydessä meillä on erittäin suuria ongelmia. Järjestelmä ei välttämättä käynnisty ollenkaan, mikä on usein erittäin surullista pilvipalveluille. Siksi on tarpeen joko korjata viimeksi lisätty rivi kiireellisesti tai poistaa se kokonaan! Siksi emme kirjoittaneet mount-komentoa manuaalisesti - silloin meillä ei olisi ollut niin erinomaista tilaisuutta tarkistaa konfiguraatiota heti.

Nyt asennamme itse asiassa kaiken, mitä halusimme, ja avaamme portit verkkoa varten:

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

Halutessasi voit laittaa tänne myös tietokannan, mutta henkilökohtaisesti yritän pitää sen erillään web-palvelimesta. Vaikka hänen lähellään pitäminen on nopeampaa, kyllä. Virtuaaliverkkosovittimien nopeus on yleensä noin gigabittiä, ja samalla koneella työskennellessä puhelut syntyvät lähes välittömästi. Mutta se on vähemmän turvallista. Mikä on tärkeämpää kenelle?

Nyt lisäämme parametrin asetustiedostoon (luomme uuden, CentOS:n moderni ideologia on tällainen)

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

Käynnistä palvelin uudelleen.
Kommenteissa minua moiti siitä, että minua neuvottiin sammuttamaan SeLinux, joten korjaan itseni ja kirjoitan siitä, että tämän jälkeen täytyy muistaa määrittää SeLinux.
Itse asiassa voittoa! 🙂

Lähde: will.com

Lisää kommentti