Pêşkêşkara malperê li ser CentOS 8 bi php7, node.js û redis

Pêşniyar

Di ser derketina guhertoyek nû ya pergala xebatê CentOS re, ango CentOS 2, 8 roj derbas bûn. Û heta niha li ser înternetê çend gotar hene ku tiştên tê de çawa têne kirin, lewra min biryar da ku vê valahiyê dagirim. Wekî din, ez ê ne tenê ji we re bibêjim ka meriv çawa vê cotê bernameyan saz dike, lê di heman demê de di heman demê de ez ê çawa bi gelemperî di cîhana nûjen de sazkirina Linux-ê di hawîrdorek virtual de ji bo karên tîpîk, di nav de dîskên dabeşkirinê û hwd, dibînim.

Lê di destpêkê de, ez dixwazim bi kurtî biaxivim ka çima hêja ye ku ji hemî yên berê veguhezîne vê guhertoyê, û ji bo vê du sedem hene:

  1. php7! Di guhertoya berê ya CentOS de, "Ortodoks" php5.4 hate saz kirin ...

    Baş e, ji bo ku hinekî ciddî be, gelek pakêt bi girseyî di nav çend guhertoyan de derketin. Em (heywanên OS-yên mîna redhat) di dawiyê de ketine, ger ne paşerojê ne, bi kêmanî di dema niha de. Û piştgirên Ubuntuyê êdî dê bi me nekenin û tiliyên xwe nîşanî me nedin, baş e... qet nebe ji bo demekê ;).

  2. Derbasbûna ji yum ber dnf. Cûdahiya sereke ev e ku naha ew bi fermî tê piştgirî kirin ku bi yekcarî bi çend guhertoyên pakêtan re bixebite. Rast di heştan de, min çu carî ev kêrhatî nedît, lê ew sozdar xuya dike.

Makîneyek virtual biafirînin

Hîpervisorên cihêreng hene û mebesta min tune ku ez xwendevanan li ser yek taybetî bikim, ez ê li ser prensîbên gelemperî ji we re vebêjim.

bîra

Pêşî... Ji bo sazkirina pergalek CentOS ku ji 7-an dest pê dike bê guman, û bi dîtina min di 6-an de jî wusa bû ("lê ev ne diyar e"), hûn hewce ne herî kêm 2 GB RAM. Ji ber vê yekê, ez ji we re şîret dikim ku hûn pêşî ew qas bidin.

Lê heke tiştek hebe, piştî sazkirinê mezinahiya bîranînê dikare kêm bibe. Li 1 GB pergala tazî pir baş dixebite, min kontrol kir.

dîskê

Ji bo sazkirinek normal, divê hûn dîskek virtual bi kapasîteya 20-30 GB biafirînin. Ev besî sîstemê ye. Û dîskek duyemîn ji bo daneyan. Hem di qonaxa afirandina makîneyek virtual û hem jî piştî wê de dikare were zêdekirin. Ez bi gelemperî paşê lê zêde dikim.

processor

Li ser yek bingehîn, pergala tazî hêdî nabe. Û ji ber ku çavkanî bi serbestî berbelav in, ez ti xalê nabînim ku hûn di qonaxa sazkirinê de bêtir bidin (heya ku hûn hewcedariyên bêkêmasî zanibin û pir tembel bin ku hûn dîsa biçin nav konfiguratorê)

Ya mayî bi gelemperî dikare wekî xwerû were hiştin.

Sazkirina rastîn

Ji ber vê yekê... Werin em sazkerê bidin destpêkirin... Bi kesane, ez ji demek dirêj ve karûbarên weha tenê di forma makîneyên virtual de saz dikim, ji ber vê yekê ez ê her cûre tomarên belavkirinê li ser ajokerek flash-ê vebêjim - ez tenê siwar dikim ISO wekî CD-ya di hypervisorê min ê bijare de, dakêşin û biçin.

Sazkirina bingehîn pir tîpîk e, ez ê tenê li ser çend xalan bisekinim.

Hilbijartina çavkaniyê

Ji berdana guhertoya heştemîn, neynika ji Yandex bi rojan li dora xwe radiweste. Welê, ev e, ew dem bi dem radibe, û dûv re dîsa dest bi xeletiyek nîşan dide. Ez bawer im ku ew ji ber barkirina zêde ya li ser karûbarê ye. Ji ber vê yekê, ji bo ku çavkaniyê destnîşan bikim, min bi xwe neçar ma ku, li şûna ku ez navnîşana asayî binivîsim, biçim vir, neynika ku ez li wir hez dikim hilbijêrin û bi destan navnîşana di pencereya sazkerê de têkevin. Girîng e ku li vir ji bîr mekin ku hûn hewce ne ku riya peldanka ku pelrêça lê ye diyar bikin repodata. Mînakî mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Parvekirina dîskê

Ev pirs bi dîtina min pir olî ye. Her rêveberek di vê mijarê de helwesta xwe heye. Lê dîsa jî ez ê nêrîna xwe ya li ser mijarê parve bikim.

Erê, di prensîbê de, hûn dikarin hemî cîhê ji root re veqetînin û ew ê bixebite, pir caran jî pir baş. Wê hingê çima baxçeyek bi beşên cûda dorpêç bikin? — Bi dîtina min, du sedemên vê yê sereke hene: kota û barkêşî.

Mînakî, heke tiştek xelet biçe û xeletî li ser dabeşkirina daneya sereke çêbibin, hûn dixwazin hîn jî pergalê boot bikin û tedbîrên vejînê pêk bînin. Ji ber vê yekê, ez bixwe ji bo /boot dabeşek veqetandî veqetînim. Kernel û bootloader heye. Bi gelemperî 500 megabayt bes e, lê di rewşên kêm de dibe ku bêtir hewce bike, û ji ber ku em jixwe bi pîvandina cîhê bi terabytes re aşiyane, ez ji bo vê beşê 2 GB veqetînim. Û ya girîng li vir ev e ku ew lvm nayê kirin.

Dû re koka pergalê tê. Ji bo sazkirinek normal, min çu carî ji pergalê re ji 4 GB zêdetir ne hewce ye, lê di dema bûyerên plansazkirî de ez pir caran pelrêça /tmp bikar tînim da ku belavkirinan vekim, û ez ti xalê nabînim ku ew veqetînim dabeşek cûda - di pergalên nûjen de ew bixweber tê paqij kirin, ji ber vê yekê nayê dagirtin. Ji ber vê yekê ez 8 GB ji bo root veqetînim.

Swap... Bi gelemperî, karanîna pratîkî ya hindik heye. Ger hûn dest bi karanîna swap-ê li ser servera xwe bikin, îro di cîhana rastîn de ev tenê tê vê wateyê ku server pêdivî ye ku RAM-ê bêtir zêde bike. Wekî din, pirsgirêkên performansê têne garantî kirin (an jî hin bername bîranîn "diqeliqe"). Ji ber vê yekê, ev beş tenê ji bo armancên tespîtkirinê hewce ye. Ji ber vê yekê, 2 GB hejmareke hêja ye. Erê, bêyî ku çiqas bîranîn li ser serverê heye. Erê, min hemî wan gotaran xwend ku tê de li ser rêjeya volta bîranînê ya guheztinê hatî nivîsandin ... IMHO, ew kevnar in. Di pratîka 10 salan de qet hewcedariya min bi vê yekê nebû. 15 sal berê min ew bikar anîn, erê.

IMHO, her kes dikare bi xwe biryarê bide ka dê /malê li dabeşek cûda veqetîne. Ger kesek li ser serverê dê bi çalak vê pelrêçê bikar bîne, çêtir e ku ew veqetînin. Ger kesek nebe, hewce nake.

Piştre, /var. Bi dîtina min, divê teqez were ronî kirin. Ji bo destpêkê, hûn dikarin xwe bi 4 GB sînor bikin, û bibînin ka ew çawa diçe. Û erê, bi "çawa diçe" mebesta min ew e

  1. Pêşîn, hûn dikarin her gav dîskek din li jêrpelêktora /var siwar bikin (ya ku ez ê paşê bi mînakek nîşan bidim)
  2. Ya duyemîn, me lvm heye - hûn her gav dikarin wê lê zêde bikin. Û bi gelemperî pêdivî ye ku hûn wê lê zêde bikin gava ku pir têketin dest pê dikin li wir dirijin. Lê min çu carî nekariye vê hejmarê pêşwext pêşbîn bikim, ji ber vê yekê ez bi 2 GB dest pê dikim û dûv re temaşe dikim.

Cihê ne veqetandî dê di koma volumê de belaş bimîne û her dem dikare paşê were bikar anîn.

LVM

gişt Aqil e ku meriv di LVM-ê de ji bilî /boot dabeşan çêbikin. Erê, di nav de swap. Erê, li gorî hemî şîretan, swap divê di destpêka dîskê de be, lê di doza LVM de cîhê wê di prensîbê de nayê destnîşankirin. Lê wek ku min li jor nivîsî, pergala te nabe bi tevahî swap bikar bînin. Ji ber vê yekê, ne girîng e ku ew li ku ye. Welê, em di sala 95-an de najîn, bi rastî!

Wekî din, di LVM de çend saziyên bingehîn hene ku hûn hewce ne ku bi wan re bijîn:

  • volume fîzîkî
  • koma volume
  • volume mentiqî

Berhemên fizîkî di koman de têne berhev kirin, û her cildek laşî dikare tenê di yek komê de be, û komek dikare li ser çend cildên laşî bi yekcarî were bicîh kirin.
Û cildên mantiqî her yek di yek komê de ne.

Lê... Lanet, dîsa sedsala 21. e. Û pêşkêşkerên virtual in. Bê wate ye ku meriv heman mekanîzmayên ku li yên fizîkî hatine sepandin li wan jî were sepandin. Û ji bo yên virtual girîng e ku daneyên ji pergalê veqetînin! Ev pir girîng e, nemaze ji bo kapasîteya zû veguheztina daneyan li makîneyek din a virtual (mînakî, dema guheztina OS-ya nû) û bi gelemperî ji bo her cûre qenciyên bikêr (veqetandina paşvekişandinê ji hêla dabeşan ve bi karanîna amûrên hypervisor, mînakî) . Ji ber vê yekê, komek volume ji bo pergalê tê bikar anîn û pêdivî ye ku yek ji bo daneyan tê bikar anîn! Ev dabeşkirina mentiqî di jiyanê de gelek alîkariyê dike!

Ger we dema afirandina makîneyek virtual tenê yek dîskek hişk çêkir, li vir veavakirin bi dawî dibe. Û heke du hebin, wê hingê tenê ya duyemîn hêj nîşan nekin.

Werin em dest bi sazkirinê bikin.

Piştî-sazkirinê

Ji ber vê yekê, pergala ku nû hatî saz kirin di dawiyê de dest pê kir. Yekem tiştê ku hûn hewce ne ku kontrol bikin Înternetê ye.

ping ya.ru

Ma bersivek heye? - Mezin, Ctrl-C bikirtînin.
Ger na, herin torgilokek saz bikin, bêyî vê jiyan tune, lê gotara min ne ew e.

Îcar eger em hîn ne di bin root de bin, ji ber ku dinivîsin biçin bin root vî awayî hejmara fermanên bi sudo kesane min şikand (û dibe ku rêvebirên paranoîd min bibaxşînin):

sudo -i

Naha yekem tiştê ku em dikin tîp e

dnf -y update

Û heke hûn vê gotarê di sala 2019-an de dixwînin, bi îhtîmalek mezin dê tiştek neqewime, lê hêjayî ceribandinê bû.

Naha em dîska mayî mîheng bikin

Em bêjin dabeşkirina bi pergalê xvda bû, wê hingê dîska daneyê dê xvdb be. OK.

Piraniya şîretan dê bi "Fdisk Run û dabeşek çêbikin ..." dest pê bikin.

Ji ber vê yekê ev e qelp!

Ez ê dîsa bibêjim ji ber ku ew pir girîng e! Di vê rewşê de, xebitandina bi LVM-ê, ku yek dîskek virtual dagîr dike, çêkirina dabeşan li ser wê zirar e! Di vê hevokê de her peyv girîng e. Ger em bêyî LVM bixebitin, em hewce ne. Ger pergal û daneya me li ser dîskê hebe, em pê hewce ne. Ger ji ber hin sedeman hewce bike ku em nîvê dîskê vala bihêlin, divê em jî. Lê bi gelemperî hemî van texmînan bi tevahî teorîk in. Ji ber ku heke em biryar bidin ku cîh li dabeşek heyî zêde bikin, wê hingê awayê herî hêsan ku meriv wiya bike bi vê veavakirinê ye. Û hêsaniya rêveberiyê ew qas ji gelek tiştên din zêdetir e ku em bi mebest ber bi vê veavakirinê ve diçin.

Û rehetî ev e ku heke hûn dixwazin dabeşa daneyê berfireh bikin, hûn tenê cîhan li dabeşkirina virtual zêde dikin, dûv re komê bi karanîna vgextend berfireh bikin û ew e! Di rewşên hindik de, dibe ku tiştek din hewce be, lê bi kêmanî hûn neçar in ku di destpêkê de voltama mantiqî berfireh bikin, ku jixwe xweş e. Wekî din, ji bo berfirehkirina vê hejmarê, ew pêşniyar dikin ku pêşî ya heyî were jêbirin û dûv re yekî nû li ser were çêkirin... Ku pir xweş xuya nake û zindî nayê kirin, lê berfirehkirina li gorî senaryoya ku min destnîşan kir dikare bibe. "li ser firînê" pêk hat bêyî ku dabeşkirinê jî bê rakirin.

Ji ber vê yekê, em cildek laşî, dûv re komek volum ku wê tê de, û dûv re jî dabeşek ji bo servera xwe diafirînin:

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

Li vir, li şûna tîpa mezin "L" (û mezinahiya bi GB), hûn dikarin piçûkek diyar bikin, û dûv re li şûna mezinahiyek mutleq, yekî têkildar diyar bikin, mînakî, ku hûn nîvê cîhê belaş ê heyî bikar bînin. komek volum, divê hûn "-l +50% BELAŞ" diyar bikin

Û fermana paşîn dabeşkirinê di pergala pelê ext4 de format dike (ya ku heya nuha, li gorî ezmûna min, îstîqrara herî mezin nîşan dide ku her tişt bişkê, ji ber vê yekê ez wê tercîh dikim).

Naha em dabeşkirinê li cîhê rast siwar dikin. Ji bo vê yekê, rêza rast li /etc/fstab zêde bikin:

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

Û em dipeyivin

mount /var/www

Ger xeletiyek çêbibe, alarmê bidin! Ji ber ku ev tê vê wateyê ku me di /etc/fstab de xeletiyek heye. Û ku di reboota paşîn de em ê pirsgirêkên pir mezin hebin. Dibe ku pergal bi tevahî dest pê neke, ku pir caran ji bo karûbarên cloudê pir xemgîn e. Ji ber vê yekê, pêdivî ye ku bi lezgîn rêza paşîn a lêzêdekirî rast bikin, an jî bi tevahî jêbirin! Ji ber vê yekê me fermana mountê bi destan nenivîsand - wê hingê me fersendek wusa hêja tunebû ku em tavilê konfigurasyonê kontrol bikin.

Naha em bi rastî her tiştê ku me dixwest saz dikin û portan ji bo tevnê vedikin:

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

Ger hûn bixwazin, hûn dikarin databasek jî li vir bixin, lê ez bixwe ez hewl didim ku wê ji servera malperê veqetînim. Her çend girtina wê zûtir e, erê. Leza adapterên torê yên virtual bi gelemperî li dora gigabit e, û dema ku li ser heman makîneyê dixebitin, bang hema gavê çêdibe. Lê ew kêmtir ewle ye. Çi ji kê re girîngtir e?

Naha em parametreyê li pelê veavakirinê zêde dikin (em yek nû diafirîne, îdeolojiya nûjen a CentOS bi vî rengî ye)

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

Em serverê ji nû ve saz bikin.
Di şîroveyan de, ez ji ber ku şîret li min kir ku ez SeLinux-ê vekim, min şermezar kir, ji ber vê yekê ez ê xwe rast bikim û li ser vê yekê binivîsim ku piştî vê yekê hûn hewce ne ku ji bîr mekin ku SeLinux mîheng bikin.
Bi rastî, qezenc! 🙂

Source: www.habr.com

Add a comment