Web server sa CentOS 8 na may php7, node.js at redis

paunang salita

2 araw na ang nakalipas mula nang ilabas ang isang bagong bersyon ng operating system ng CentOS, katulad ng CentOS 8. At sa ngayon ay may kaunting mga artikulo sa Internet kung paano ginagawa ang mga bagay dito, kaya nagpasya akong punan ang puwang na ito. Bukod dito, sasabihin ko sa iyo hindi lamang ang tungkol sa kung paano i-install ang pares na ito ng mga programa, kundi pati na rin ang tungkol sa kung paano ko karaniwang nakikita ang pag-install ng Linux sa isang virtual na kapaligiran sa modernong mundo para sa mga tipikal na gawain, kabilang ang mga partitioning disk at iba pa.

Ngunit sa simula, nais kong maikling pag-usapan kung bakit sulit na lumipat sa bersyong ito mula sa lahat ng nauna, at mayroong dalawang dahilan para dito:

  1. php7! Sa nakaraang bersyon ng CentOS, na-install ang β€œOrthodox” php5.4...

    Okay, upang maging mas seryoso, maraming mga pakete ang tumalon sa ilang mga bersyon nang maramihan. Tayo (mga tagahanga ng mala-redhat na OS) ay nakapasok na, kung hindi man sa hinaharap, at least sa kasalukuyan. At ang mga tagasuporta ng Ubuntu ay hindi na tatawa at tuturo sa amin, well... kahit saglit lang ;).

  2. Transition mula yum hanggang dnf. Ang pangunahing pagkakaiba ay na ngayon ay opisyal na itong sinusuportahan upang gumana sa ilang mga bersyon ng mga pakete nang sabay-sabay. Sa mismong walo, hindi ko nakitang kapaki-pakinabang ito, ngunit mukhang may pag-asa.

Paglikha ng isang virtual machine

Mayroong iba't ibang mga hypervisor at wala akong layunin na maiangkop ang mambabasa sa isang tiyak, sasabihin ko sa iyo ang tungkol sa mga pangkalahatang prinsipyo.

memorya

Una... Para siguradong mag-install ng CentOS system simula 7, at sa palagay ko ganito rin ang nangyari sa 6 (β€œngunit hindi ito tiyak”), kailangan mo minimum 2 GB ng RAM. Samakatuwid, ipinapayo ko sa iyo na ibigay muna ang magkano.

Ngunit kung mayroon man, pagkatapos ng pag-install ay maaaring mabawasan ang laki ng memorya. Sa 1 GB ang hubad na sistema ay gumagana nang maayos, sinuri ko.

Disk

Para sa isang normal na pag-install, dapat kang lumikha ng isang virtual na disk na may kapasidad na 20-30 GB. Ito ay sapat na para sa sistema. At isang pangalawang disk para sa data. Maaari itong idagdag pareho sa yugto ng paglikha ng isang virtual machine at pagkatapos. Karaniwan kong idinadagdag ito sa ibang pagkakataon.

Processor

Sa isang core, ang hubad na sistema ay hindi bumabagal. At dahil ang mga mapagkukunan ay malayang nasusukat, wala akong nakikitang anumang punto sa pagbibigay ng higit pa sa yugto ng pag-install (maliban kung alam mo nang perpekto ang mga kinakailangan at masyadong tamad na pumunta muli sa configurator)

Ang natitira ay karaniwang maaaring iwanang default.

Ang aktwal na pag-install

Kaya... Ilunsad natin ang installer... Sa personal, matagal na akong nag-i-install ng mga ganitong serbisyo sa anyo ng mga virtual machine, kaya hindi ko ilalarawan ang lahat ng uri ng mga talaan ng pamamahagi sa isang flash drive - nag-mount lang ako ang ISO bilang isang CD sa aking paboritong hypervisor, i-download at pumunta.

Ang pangunahing pag-install ay medyo pangkaraniwan, tatalakayin ko lamang ang ilang mga punto.

Pagpili ng pinagmulan

Mula nang ilabas ang ikawalong bersyon, ang salamin mula sa Yandex ay nakahiga nang ilang araw. Well, iyon ay, ito ay pana-panahong tumataas, at pagkatapos ay muling magsisimulang magpakita ng isang error. Sigurado ako na ito ay dahil sa labis na pagkarga sa serbisyo. Samakatuwid, upang ipahiwatig ang pinagmulan, personal kong kinailangan, sa halip na ipasok ang karaniwang address, pumunta dito, piliin ang salamin na gusto ko doon at manu-manong ipasok ang address sa window ng installer. Mahalagang tandaan dito na kailangan mong tukuyin ang landas sa folder kung saan matatagpuan ang direktoryo repodata. Halimbawa mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Paghati sa disk

Ang tanong na ito ay medyo relihiyoso sa aking opinyon. Ang bawat admin ay may kanya-kanyang posisyon sa usaping ito. Ngunit ibabahagi ko pa rin ang aking pananaw sa isyu.

Oo, sa prinsipyo, maaari mong ilaan ang buong puwang sa ugat at gagana ito, kadalasan kahit na medyo maayos. Bakit pagkatapos ay bakod ang isang hardin na may iba't ibang mga seksyon? β€” Sa aking palagay, mayroong dalawang pangunahing dahilan para dito: quota at portability.

Halimbawa, kung may nagkamali at naganap ang mga error sa pangunahing partition ng data, gusto mong ma-boot pa rin ang system at magsagawa ng mga hakbang sa resuscitation. Samakatuwid, personal kong inilalaan ang isang hiwalay na partisyon para sa /boot. Mayroong isang kernel at isang bootloader. Karaniwan ay sapat na ang 500 megabytes, ngunit sa mga bihirang kaso ay maaaring kailanganin pa, at dahil sanay na tayo sa pagsukat ng espasyo sa terabytes, naglalaan ako ng 2GB para sa seksyong ito. At ang mahalaga dito ay hindi ito magagawa lvm.

Susunod ay ang ugat ng sistema. Para sa isang normal na pag-install, hindi ko kailanman kailangan ng higit sa 4 GB bawat system, ngunit sa mga naka-iskedyul na kaganapan ay madalas kong ginagamit ang direktoryo ng /tmp upang i-unpack ang mga distribusyon, at wala akong nakikitang punto sa pag-aalay nito sa isang hiwalay na partisyon - sa mga modernong sistema awtomatiko itong nililinis, kaya hindi ito napupuno . Kaya naglalaan ako ng 8GB para sa ugat.

Pagpalitin... Sa pangkalahatan, may kaunting praktikal na paggamit mula rito. Kung magsisimula kang gumamit ng swap sa iyong server, ngayon sa totoong mundo nangangahulugan lamang ito na ang server ay kailangang magdagdag ng higit pang RAM. Kung hindi man, ang mga problema sa pagganap ay ginagarantiyahan (o ang ilang programa ay "tagas" ng memorya). Samakatuwid, ang seksyong ito ay kailangan para sa mga layuning diagnostic lamang. Samakatuwid, ang 2 GB ay isang mahusay na numero. Oo, hindi alintana kung gaano karaming memory ang mayroon sa server. Oo, nabasa ko ang lahat ng mga artikulo kung saan nakasulat tungkol sa ratio ng dami ng memorya sa dami ng swap... IMHO, luma na ang mga ito. Sa 10 taon ng pagsasanay ay hindi ko na kailangan ito. 15 years ago ginamit ko sila, oo.

IMHO, lahat ay maaaring magpasya para sa kanilang sarili kung ilalaan ang /home sa isang hiwalay na partisyon. Kung ang isang tao sa server ay aktibong gagamit ng direktoryo na ito, mas mahusay na ilaan ito. Kung walang tao, hindi na kailangan.

Susunod, /var. Sa aking opinyon, ito ay dapat na tiyak na naka-highlight. Upang magsimula, maaari mong limitahan ang iyong sarili sa 4 GB, at tingnan kung paano ito pupunta. At oo, sa pamamagitan ng "kung paano ito napupunta" ang ibig kong sabihin iyan

  1. Una, maaari mong palaging i-mount ang isa pang disk sa /var subdirectory (na ipapakita ko sa ibang pagkakataon na may isang halimbawa)
  2. Pangalawa, mayroon kaming lvm - maaari mo itong idagdag palagi. At karaniwan mong kailangang idagdag ito kapag masyadong maraming log ang nagsimulang bumuhos doon. Ngunit hindi ko pa nahuhulaan ang figure na ito nang maaga, kaya nagsisimula ako sa 2 GB at pagkatapos ay manood.

Ang hindi nakalaang espasyo ay mananatiling libre sa pangkat ng volume at palaging magagamit sa ibang pagkakataon.

LVM

lahat Makatuwirang gumawa ng mga partisyon maliban sa /boot sa LVM. Oo, kasama ang swap. Oo, ayon sa lahat ng payo, ang swap ay dapat nasa simula ng disk, ngunit sa kaso ng LVM ang lokasyon nito ay hindi matukoy sa prinsipyo. Ngunit tulad ng isinulat ko sa itaas, ang iyong sistema hindi dapat gumamit ng swap sa lahat. Samakatuwid, hindi mahalaga kung nasaan siya. Well, hindi kami nakatira sa '95, sa totoo lang!

Dagdag pa, sa LVM mayroong ilang pangunahing entity na kailangan mong mabuhay kasama:

  • pisikal na dami
  • pangkat ng volume
  • lohikal na dami

Ang mga pisikal na volume ay pinagsama sa mga grupo, at ang bawat pisikal na volume ay maaaring nasa isang grupo lamang, at ang isang grupo ay maaaring matatagpuan sa ilang mga pisikal na volume nang sabay-sabay.
At ang mga lohikal na volume ay bawat isa sa isang grupo.

Pero... Damn, it's the 21st century again. At ang mga server ay virtual. Walang saysay na ilapat sa kanila ang parehong mga mekanismo na inilapat sa mga pisikal. At para sa mga virtual ay mahalaga na magkaroon ng data nang hiwalay sa system! Napakahalaga nito, lalo na para sa kakayahang mabilis na lumipat ng data sa isa pang virtual machine (halimbawa, kapag lumipat sa isang bagong OS) at sa pangkalahatan para sa lahat ng uri ng mga kapaki-pakinabang na goodies (paghiwalayin ang mga backup sa pamamagitan ng mga partisyon gamit ang mga tool ng hypervisor, halimbawa) . Samakatuwid, ang isang pangkat ng dami ay ginagamit para sa system at kinakailangang isa pa ang ginagamit para sa data! Malaki ang naitutulong ng logical division na ito sa buhay!

Kung lumikha ka lamang ng isang virtual hard disk kapag lumilikha ng isang virtual machine, dito magtatapos ang pagsasaayos. At kung may dalawa, huwag mo na lang markahan ang pangalawa.

Simulan natin ang pag-install.

Pagkatapos ng pag-install

Kaya, ang bagong naka-install na sistema sa wakas ay nag-boot. Ang unang bagay na kailangan mong suriin ay ang Internet.

ping ya.ru

may sagot ba? - Mahusay, pindutin ang Ctrl-C.
Kung hindi, mag-set up ng isang network, walang buhay kung wala ito, ngunit hindi iyon ang tungkol sa aking artikulo.

Ngayon kung hindi pa tayo nasa ilalim ng ugat, pumunta sa ilalim ng ugat, dahil ang pag-type tulad ang bilang ng mga utos na may sudo ay personal na sinira ako (at nawa'y patawarin ako ng mga paranoid admin):

sudo -i

Ngayon ang unang bagay na ginagawa namin ay mag-type

dnf -y update

At kung binabasa mo ang artikulong ito sa 2019, malamang na walang mangyayari, ngunit sulit itong subukan.

Ngayon ay i-configure natin ang natitirang disk

Sabihin nating ang partition sa system ay xvda, at ang data disk ay magiging xvdb. OK.

Karamihan sa mga payo ay magsisimula sa β€œPatakbuhin ang fdisk at gumawa ng partition...”

Kaya ito ay hindi tama!

Uulitin ko dahil napakahalaga nito! Sa kasong ito, upang gumana sa LVM, na sumasakop sa isang buong virtual disk, ang paglikha ng mga partisyon dito ay nakakapinsala! Ang bawat salita sa pariralang ito ay mahalaga. Kung nagtatrabaho tayo nang walang LVM, kailangan natin. Kung mayroon kaming system at data sa disk, kailangan namin ito. Kung sa ilang kadahilanan kailangan nating iwanang walang laman ang kalahati ng disk, dapat din natin. Ngunit kadalasan ang lahat ng mga pagpapalagay na ito ay puro teoretikal. Dahil kung magpasya kaming magdagdag ng espasyo sa isang umiiral na partition, kung gayon ang pinakamadaling paraan upang gawin ito ay sa pagsasaayos na ito. At ang kadalian ng pangangasiwa ay higit na nakahihigit sa maraming iba pang mga bagay na sinasadya naming lumipat patungo sa pagsasaayos na ito.

At ang kaginhawahan ay kung gusto mong palawakin ang partition ng data, magdagdag ka lang ng mga puwang sa virtual partition, pagkatapos ay palawakin ang grupo gamit ang vgextend at iyon na! Sa mga bihirang kaso, maaaring kailanganin ang ibang bagay, ngunit hindi bababa sa hindi mo na kailangang palawakin ang lohikal na dami sa simula, na maganda na. Kung hindi, upang palawakin ang mismong volume na ito, inirerekomenda nila na tanggalin muna ang umiiral na isa, at pagkatapos ay lumikha ng bago sa itaas... Na mukhang hindi masyadong maganda at hindi maaaring gawin nang live, ngunit ang pagpapalawak ayon sa senaryo na ipinahiwatig ko ay maaaring isinagawa "on the fly" nang hindi man lang inaalis ang partition.

Kaya, gumawa kami ng pisikal na volume, pagkatapos ay isang pangkat ng volume na kinabibilangan nito, at pagkatapos ay isang partition para sa aming server:

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

Dito, sa halip na isang malaking titik na "L" (at ang laki sa GB), maaari mong tukuyin ang isang maliit, at pagkatapos ay sa halip na isang ganap na sukat, tukuyin ang isang kamag-anak, halimbawa, upang gamitin ang kalahati ng kasalukuyang libreng espasyo sa isang pangkat ng volume, kailangan mong tukuyin ang "-l +50%LIBRE"

At ang huling command ay nag-format ng partisyon sa ext4 file system (na sa ngayon, sa aking karanasan, ay nagpapakita ng pinakamalaking katatagan kung sakaling masira ang lahat, kaya mas gusto ko ito).

Ngayon inilalagay namin ang partisyon sa tamang lugar. Upang gawin ito, idagdag ang tamang linya sa /etc/fstab:

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

At nagdial kami

mount /var/www

Kung may naganap na error, tunog ang alarma! Dahil nangangahulugan ito na mayroon tayong error sa /etc/fstab. At na sa susunod na pag-reboot magkakaroon tayo ng napakalaking problema. Maaaring hindi mag-boot ang system, na kadalasang napakalungkot para sa mga serbisyo sa cloud. Samakatuwid, kinakailangang agarang itama ang huling linyang idinagdag, o tanggalin ito nang buo! Iyon ang dahilan kung bakit hindi namin isinulat nang manu-mano ang mount command - kung gayon hindi kami magkakaroon ng napakagandang pagkakataon upang suriin kaagad ang config.

Ngayon ay aktwal naming ini-install ang lahat ng gusto namin at binuksan ang mga port para sa web:

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

Kung nais mo, maaari ka ring maglagay ng database dito, ngunit personal kong sinusubukan na panatilihin itong hiwalay sa web server. Bagaman mas mabilis ang pagpapanatiling malapit sa kanya, oo. Ang bilis ng mga virtual network adapter ay karaniwang nasa gigabit, at kapag nagtatrabaho sa parehong makina, ang mga tawag ay nangyayari halos kaagad. Ngunit ito ay hindi gaanong ligtas. Ano ang mas mahalaga para kanino?

Ngayon ay idinagdag namin ang parameter sa file ng pagsasaayos (gumawa kami ng bago, ang modernong ideolohiya ng CentOS ay ganito)

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

I-reboot ang server.
Sa mga komento, pinagalitan ako sa pagpapayo sa akin na i-off ang SeLinux, kaya itatama ko ang aking sarili at isulat ang tungkol sa katotohanan na pagkatapos nito kailangan mong tandaan na i-configure ang SeLinux.
Sa totoo lang, tubo! πŸ™‚

Pinagmulan: www.habr.com

Magdagdag ng komento