php8, node.js жана redis менен CentOS 7деги веб-сервер

сөздөр

CentOS операциялык тутумунун жаңы версиясы, тактап айтканда CentOS 2 чыккандан бери 8 күн өттү. Азырынча Интернетте анда кандай иштер жасалып жатканы тууралуу бир топ макалалар бар, ошондуктан мен бул боштукту толтурууну чечтим. Мындан тышкары, мен сизге бул жуп программаларды кантип орнотуу жөнүндө гана эмес, ошондой эле Linuxту виртуалдык чөйрөдө типтүү тапшырмалар үчүн, анын ичинде дисктерди бөлүү ж.б.

Бирок, башында, мен эмне үчүн бул версияга мурункулардын баарынан өтүү керектиги жөнүндө кыскача айткым келет жана мунун эки себеби бар:

  1. php7! CentOSтун мурунку версиясында "Православие" php5.4 орнотулган...

    Макул, бир аз олуттуураак болуш үчүн, көптөгөн пакеттер массалык түрдө бир нече версиялардан өтүп кетти. Биз (redhat сыяктуу OS күйөрмандары) акыры кирдик, эгерде келечекте болбосо, жок дегенде азыркы учурга. Ал эми Ubuntu тарапкерлери мындан ары бизге күлбөйт жана манжаларын көрсөтүшпөйт, жакшы... жок дегенде бир азга;).

  2. yum'дан dnfге өтүү. Негизги айырмасы, азыр расмий түрдө бир эле учурда пакеттердин бир нече версиялары менен иштөө колдоого алынган. Туура сегиз, мен муну эч качан пайдалуу деп тапкан эмесмин, бирок бул келечектүү угулат.

Виртуалдык машина түзүү

Ар кандай гипервизорлор бар жана мен окурманды конкреттүү бирине ылайыкташтыруу максатым жок, мен сизге жалпы принциптер жөнүндө айтып берем.

эс-тутум

Биринчиден... 7ден баштап CentOS системасын орнотуу үчүн, менин оюмча, бул 6да да болгон («бирок бул так эмес»), сизге керек минималдуу 2 ГБ RAM. Ошондуктан, мен сизге биринчиден ушуну берүүнү кеңеш кылам.

Бирок, бир нерсе болсо, орнотуудан кийин эстутум көлөмүн азайтууга болот. 1 ГБда жылаңач система жакшы иштейт, мен текшердим.

диск

Кадимки орнотуу үчүн сиз 20-30 ГБ сыйымдуулугу бар виртуалдык дискти түзүшүңүз керек. Бул система үчүн жетиштүү. Жана маалымат үчүн экинчи диск. Аны виртуалдык машинаны түзүү стадиясында да, андан кийин да кошууга болот. Мен көбүнчө кийинчерээк кошом.

иштетүү

Бир өзөктө, жылаңач система басаңдабайт. Ресурстар эркин масштабдуу болгондуктан, орнотуу стадиясында көбүрөөк берүүнүн эч кандай мааниси жок (эгер сиз талаптарды жакшы билбесеңиз жана конфигураторго кайра кирүү үчүн жалкоо болбосоңуз)

Калганын демейки катары калтырса болот.

Чыныгы орнотуу

Ошентип... Орноткучту ишке киргизели... Жеке мен мындай кызматтарды көптөн бери виртуалдык машиналар түрүндө гана орнотуп келем, андыктан флеш-дисктеги ар кандай бөлүштүрүү жазууларын сүрөттөбөй эле коёюн - мен жөн гана орнотуп жатам. менин сүйүктүү гипервизорумдагы CD катары ISO, жүктөп алып, барыңыз.

Негизги орнотуу абдан мүнөздүү, мен бир нече пунктка токтоло кетейин.

Булак тандоо

Сегизинчи версиясы чыккандан бери Яндекстен күзгү бир нече күн бою жатып калды. Ооба, башкача айтканда, ал мезгил-мезгили менен көтөрүлүп, анан кайра ката көрсөтө баштайт. Мен бул кызматтын ашыкча жүктөмүнөн улам деп ишенем. Ошондуктан, булакты көрсөтүү үчүн, мен жеке даректи киргизүүнүн ордуна, барууга туура келди бул жерде, ошол жерден мага жаккан күзгүнү тандап, орнотуучу терезеге даректи кол менен киргизиңиз. Бул жерде сиз каталог жайгашкан папкага жолду көрсөтүү керек экенин эстен чыгарбоо керек repodata. Мисалы, mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Дискти бөлүү

Бул суроо менин оюмча бир топ диний. Бул маселе боюнча ар бир админдин өзүнүн позициясы бар. Бирок мен дагы эле маселе боюнча өз көз карашымды бөлүшөм.

Ооба, негизи, сиз бүт мейкиндикти тамырга бөлсөңүз болот жана ал иштейт, көбүнчө жакшы болот. Эмне үчүн бакчаны ар кандай бөлүмдөр менен тосуу керек? — Менин оюмча, мунун негизги эки себеби бар: квота жана көчмө.

Мисалы, бир нерсе туура эмес болуп, негизги маалымат бөлүмүндө каталар пайда болсо, сиз дагы эле системаны жүктөө жана реанимация чараларды көргүңүз келет. Ошондуктан, мен жекече / жүктөө үчүн өзүнчө бөлүмдү бөлөм. Ядро жана жүктөгүч бар. Адатта 500 мегабайт жетиштүү, бирок сейрек учурларда көбүрөөк талап кылынышы мүмкүн жана биз терабайт менен мейкиндикти өлчөөгө көнүп калганыбызды эске алып, мен бул бөлүмгө 2 ГБ бөлөм. Ал эми бул жерде негизги нерсе lvm жасоо мүмкүн эмес.

Андан кийин системанын тамыры келет. Кадимки орнотуу үчүн мага эч качан системага 4 ГБ ашык керек болгон эмес, бирок пландаштырылган иш-чаралар учурунда мен бөлүштүрүүлөрдү ачуу үчүн көбүнчө /tmp каталогун колдоном жана аны өзүнчө бөлүмгө арнагандын эч кандай мааниси жок - заманбап системаларда ал автоматтык түрдө тазаланат, ошондуктан ал толтурулбайт. Ошентип, мен тамыр үчүн 8 ГБ бөлөм.

Алмашуу... Жалпысынан алганда, анын практикалык пайдасы аз. Эгер сиз сервериңизде своп колдоно баштасаңыз, анда бүгүнкү күндө реалдуу дүйнөдө бул сервер көбүрөөк RAM кошуу керек дегенди билдирет. Болбосо, аткаруу менен көйгөйлөр кепилденет (же кээ бир программа эстутум "агып кетет"). Ошондуктан, бул бөлүм диагностикалык максаттар үчүн гана керек. Демек, 2 ГБ эң сонун сан. Ооба, серверде канча эстутум бар экенине карабастан. Ооба, мен эстутум көлөмүнүн алмашуу көлөмүнүн катышы жөнүндө жазылган бардык макалаларды окудум ... IMHO, алар эскирген. 10 жылдык практикада мага бул эч качан керек болгон эмес. 15 жыл мурун мен аларды колдонгон, ооба.

IMHO, ар бир адам / үйдү өзүнчө бөлүмгө бөлүүнү чече алат. Эгер серверде кимдир бирөө бул каталогду жигердүү колдоно турган болсо, аны бөлүштүрүү жакшы. Эч ким жок болсо, кереги жок.

Кийинки, /var. Менимче, аны сөзсүз түрдө баса белгилеш керек. Баштоо үчүн, сиз өзүңүздү 4 ГБ менен чектеп, анын кандай болорун көрө аласыз. Ооба, "кандай болот" деп мен ошону айткым келет

  1. Биринчиден, сиз ар дайым башка дискти /var подкаталогуна орното аласыз (мен аны кийинчерээк мисал менен көрсөтөм)
  2. Экинчиден, бизде lvm бар - сиз аны ар дайым кошо аласыз. Ал эми, адатта, өтө көп журналдар ал жакка куюлуп баштаганда аны кошууга туура келет. Бирок мен эч качан бул көрсөткүчтү алдын ала айта алган эмесмин, ошондуктан мен 2 ГБ менен баштап, анан көрөм.

Бөлүнбөгөн мейкиндик көлөм тобунда бош бойдон калат жана аны кийинчерээк колдонууга болот.

LVM

бардык LVMде / жүктөөдөн башка бөлүмдөрдү жасоо мааниси бар. Ооба, анын ичинде алмашуу. Ооба, бардык кеңештерге ылайык, алмаштыруу дисктин башында болушу керек, бирок LVM учурда анын жайгашкан жерин аныктоо мүмкүн эмес. Бирок мен жогоруда жазгандай, сиздин система керек эмес, своп колдонуңуз. Ошондуктан, анын кайда экендиги маанилүү эмес. Ооба, биз 95-жылы жашаган жокпуз, чынын айтсам!

Андан тышкары, LVMде сиз менен жашай алышыңыз керек болгон бир нече негизги объекттер бар:

  • физикалык көлөмү
  • көлөм тобу
  • логикалык көлөм

Физикалык көлөмдөр топторго бириктирилет жана ар бир физикалык көлөм бир гана топто болушу мүмкүн, ал эми топ бир эле учурда бир нече физикалык томдордо жайгашышы мүмкүн.
Жана логикалык томдор ар бири бир топко кирет.

Бирок... Наалат, кайра 21-кылым. Ал эми серверлер виртуалдык. Аларга физикалык механизмдерди колдонуунун мааниси жок. Ал эми виртуалдуулар үчүн системадан өзүнчө маалымат болушу маанилүү! Бул, атап айтканда, маалыматтарды башка виртуалдык машинага тез которуу мүмкүнчүлүгү үчүн (мисалы, жаңы OSке өтүүдө) жана жалпысынан ар кандай пайдалуу жакшы нерселер үчүн (мисалы, гипервизор куралдарын колдонуу менен бөлүмдөр боюнча өзүнчө резервдик көчүрмөлөр) үчүн абдан маанилүү. . Демек, система үчүн бир том тобу колдонулат, ал эми маалымат үчүн сөзсүз түрдө башкасы колдонулат! Бул логикалык бөлүнүү жашоодо көп жардам берет!

Эгерде сиз виртуалдык машинаны түзүүдө бир гана виртуалдык катуу диск түзсөңүз, анда конфигурация ушул жерде аяктайт. Эгер экөө болсо, экинчисин белгилебеңиз.

Орнотууну баштайлы.

Орнотуудан кийинки

Ошентип, жаңы орнотулган система акыры жүктөлдү. Сиз текшерүү керек биринчи нерсе - Интернет.

ping ya.ru

Жооп барбы? - Жакшы, Ctrl-C басыңыз.
Болбосо, тармакты түзүңүз, ансыз жашоо жок, бирок бул менин макалам жөнүндө эмес.

Эми биз тамырга түшө элек болсок, тамырдын астына өтүңүз, анткени терүү бул sudo менен буйруктардын саны жеке мени сындырды (жана параноид админдер мени кечирсин):

sudo -i

Эми биз биринчи кыла турган нерсе - терүү

dnf -y update

Эгерде сиз бул макаланы 2019-жылы окуп жатсаңыз, анда эч нерсе болбойт, бирок аракет кылуу керек болчу.

Эми калган дискти конфигурациялайлы

Система менен бөлүү xvda болду дейли, анда маалымат диски xvdb болот. макул.

Көпчүлүк кеңештер "Fdiskти иштетип, бөлүм түзүңүз..." менен башталат.

Демек, бул туура эмес!

Мен дагы бир жолу айтам, анткени бул абдан маанилүү! Бул учурда, бүтүндөй бир виртуалдык дискти ээлеген LVM менен иштөө, анда бөлүмдөрдү түзүү зыяндуу! Бул фразадагы ар бир сөз маанилүү. Эгерде биз LVMсиз иштесек, анда биз керек. Эгерде бизде система жана дискте маалыматтар болсо, бизге керек. Эгер кандайдыр бир себептерден улам дисктин жарымын бош калтырышыбыз керек болсо, биз да керек. Бирок, адатта, бул божомолдордун бардыгы теоретикалык. Себеби, биз учурдагы бөлүмгө орун кошууну чечсек, анда муну жасоонун эң оңой жолу - бул конфигурация. Жана башкаруунун жөнөкөйлүгү башка көптөгөн нерселерден жогору болгондуктан, биз бул конфигурацияга максаттуу түрдө жылып жатабыз.

Жана ынгайлуулугу, эгер сиз маалымат бөлүмүн кеңейтүүнү кааласаңыз, виртуалдык бөлүмгө боштуктарды кошуп, андан кийин vgeextend аркылуу топту кеңейтесиз, ушуну менен! Сейрек учурларда, дагы бир нерсе талап кылынышы мүмкүн, бирок, жок эле дегенде, сиз башында логикалык көлөмүн кеңейтүү керек эмес, бул буга чейин жакшы. Болбосо, бул көлөмдү кеңейтүү үчүн, алар адегенде учурдагыны өчүрүп, анан үстүнө жаңысын түзүүнү сунушташат... Бул абдан жакшы көрүнбөйт жана түз эфирде аткаруу мүмкүн эмес, бирок мен көрсөткөн сценарий боюнча кеңейтүү болушу мүмкүн. ал тургай, бөлүктү чечпей туруп, "чымындап" жүзөгө ашырылат.

Ошентип, биз физикалык көлөмдү, андан кийин аны камтыган көлөм тобун, анан серверибиз үчүн бөлүмдү түзөбүз:

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

Бул жерде, "L" баш тамгасынын ордуна (жана ГБ өлчөмүндө) сиз кичинесин көрсөтсөңүз болот, андан кийин абсолюттук өлчөмдүн ордуна салыштырмалуусун көрсөтсөңүз болот, мисалы, учурда бош орундун жарымын колдонуу үчүн. көлөм тобу үчүн "-l +50%FREE" белгилешиңиз керек

Ал эми акыркы буйрук ext4 файл тутумундагы бөлүмдү форматтайт (бул менин тажрыйбам боюнча, баары бузулган учурда эң чоң туруктуулукту көрсөтөт, ошондуктан мен аны жактырам).

Эми биз бөлүмдү керектүү жерге орнотобуз. Бул үчүн, /etc/fstab дарегине туура сапты кошуңуз:

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

А биз теребиз

mount /var/www

Ката пайда болсо, сигнал бериңиз! Анткени бул бизде /etc/fstab ичинде ката бар экенин билдирет. Жана кийинки кайра жүктөөдө бизде абдан чоң көйгөйлөр болот. Система такыр жүктөлбөшү мүмкүн, бул көбүнчө булут кызматтары үчүн абдан кайгылуу. Ошондуктан, же акыркы кошулган сапты тез арада оңдоо керек, же аны таптакыр өчүрүү керек! Ошондуктан биз монтаждоо буйругун кол менен жазган жокпуз - анда конфигурацияны дароо текшерүүгө мынчалык сонун мүмкүнчүлүк болмок эмес.

Эми биз чындыгында каалаганыбызды орнотуп, желе үчүн портторду ачабыз:

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

Кааласаңыз, бул жерге маалымат базасын да койсоңуз болот, бирок жеке мен аны веб-серверден бөлөк кармоого аракет кылам. Аны жакын кармоо тезирээк болсо да, ооба. Виртуалдык тармак адаптерлеринин ылдамдыгы адатта гигабиттин тегерегинде болот жана бир эле машинада иштегенде чалуулар дээрлик ошол замат болот. Бирок ал анча коопсуз эмес. Ким үчүн эмне маанилүү?

Эми биз параметрди конфигурация файлына кошобуз (биз жаңысын түзөбүз, CentOSтун заманбап идеологиясы ушундай)

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

Биз серверди кайра жүктөйбүз.
Комментарийлерде мени SeLinuxту өчүрүүнү кеңеш кылганым үчүн урушту, ошондуктан мен өзүмдү оңдоп, андан кийин SeLinux конфигурациялоону унутпашыңыз керек экендиги жөнүндө жазам.
Чынында, пайда! 🙂

Source: www.habr.com

Комментарий кошуу