php8, node.js және redis бар CentOS 7 веб-сервері

Алғы сөз

CentOS операциялық жүйесінің жаңа нұсқасы, атап айтқанда CentOS 2 шығарылғанына 8 күн болды. Әзірге Интернетте ондағы істердің қалай орындалатыны туралы бірнеше мақалалар бар, сондықтан мен бұл олқылықтың орнын толтыруды шештім. Сонымен қатар, мен сізге осы бағдарламалар жұбын қалай орнату керектігі туралы ғана емес, сонымен қатар әдеттегі тапсырмалар үшін, соның ішінде дискілерді бөлу және т.б. үшін қазіргі әлемде виртуалды ортада Linux орнатуды қалай көретінімді айтамын.

Бірақ басында мен бұл нұсқаға неліктен алдыңғы нұсқалардан ауысу керек екендігі туралы қысқаша айтқым келеді және мұның екі себебі бар:

  1. php7! CentOS-тың алдыңғы нұсқасында «православие» php5.4 орнатылған...

    Жарайды, сәл байсалдырақ айтсақ, көптеген пакеттер бірнеше нұсқалардан жаппай өтті. Біз (redhat-тәрізді операциялық жүйелердің жанкүйерлері) ақыры болашаққа болмасақ, ең болмағанда қазіргі уақытқа кірдік. Ал Ubuntu қолдаушылары бұдан былай бізге күлмейді және бізге саусақтарын көрсетпейді, жақсы... кем дегенде біраз уақытқа;).

  2. yum-дан dnf-ге көшу. Негізгі айырмашылығы - қазір пакеттердің бірнеше нұсқасымен бір уақытта жұмыс істеуге ресми түрде қолдау көрсетіледі. Сегіздікте мен мұны ешқашан пайдалы деп таппадым, бірақ бұл перспективалы болып көрінеді.

Виртуалды машина жасаңыз

Әртүрлі гипервизорлар бар және мен оқырманды нақтыға бейімдеу мақсатым жоқ, мен жалпы принциптер туралы айтып беремін.

жад

Біріншіден... CentOS жүйесін 7-ден бастап орнату үшін, және менің ойымша, бұл 6-да да болған («бірақ бұл анық емес»), сізге қажет ең аз 2 ГБ жедел жады. Сондықтан, мен сізге алдымен осыны беруге кеңес беремін.

Бірақ бірдеңе болса, орнатудан кейін жад көлемін азайтуға болады. 1 Гбайтта жалаң жүйе өте жақсы жұмыс істейді, мен тексердім.

диск

Қалыпты орнату үшін сыйымдылығы 20-30 ГБ виртуалды дискіні жасау керек. Бұл жүйе үшін жеткілікті. Және деректерге арналған екінші диск. Оны виртуалды машинаны құру кезеңінде де, одан кейін де қосуға болады. Мен оны әдетте кейін қосамын.

процессор

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

Қалғанын әдетте әдепкі ретінде қалдыруға болады.

Нақты орнату

Сонымен... Орнатушыны іске қосайық... Жеке өзім мұндай қызметтерді тек виртуалды машиналар түрінде орнатып келемін, сондықтан мен флэш-дисктегі тарату жазбаларының барлық түрлерін сипаттамаймын - мен жай ғана ISO файлын менің сүйікті гипервизорыма ықшам дискі ретінде орнатыңыз, жүктеп алыңыз да, кеттік.

Негізгі орнату өте тән, мен тек бірнеше тармаққа тоқталамын.

Дереккөзді таңдау

Сегізінші нұсқасы шыққаннан бері Яндекстің айнасы бірнеше күн бойы жатыр. Яғни, ол мезгіл-мезгіл көтеріледі, содан кейін қайтадан қатені көрсете бастайды. Бұл қызметтің шамадан тыс жүктелуіне байланысты екеніне сенімдімін. Сондықтан, дереккөзді көрсету үшін мен әдеттегі мекен-жайды енгізудің орнына баруға тура келді осында, сол жерден маған ұнайтын айнаны таңдап, орнату терезесінде мекенжайды қолмен енгізіңіз. Бұл жерде каталог орналасқан қалтаға жолды көрсету керек екенін есте ұстаған жөн қайталау. Мысалы, mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Дискіні бөлу

Бұл сұрақ менің ойымша діни. Бұл мәселеде әр админнің өз ұстанымы бар. Бірақ мен әлі де мәселе бойынша өз көзқарасымды бөлісемін.

Ия, негізінен, сіз бүкіл кеңістікті түбірге бөле аласыз және ол жұмыс істейді, көбінесе өте жақсы. Неліктен әртүрлі бөлімдері бар бақшаны қоршау керек? — Менің ойымша, мұның екі негізгі себебі бар: квота және тасымалдану.

Мысалы, бірдеңе дұрыс болмаса және негізгі деректер бөлімінде қателер орын алса, жүйені әлі де жүктеп, реанимациялық шараларды орындағыңыз келеді. Сондықтан мен /boot үшін жеке бөлімді бөлемін. Ядро және жүктеуші бар. Әдетте 500 мегабайт жеткілікті, бірақ сирек жағдайларда көбірек қажет болуы мүмкін және біз терабайтпен кеңістікті өлшеуге дағдыланғанымызды ескере отырып, мен бұл бөлімге 2 ГБ бөлемін. Бұл жерде маңызды нәрсе - мұны lvm жасау мүмкін емес.

Содан кейін жүйенің түбірі келеді. Қалыпты орнату үшін бір жүйеге ешқашан 4 ГБ-тан артық қажет болған емес, бірақ жоспарланған оқиғалар кезінде мен дистрибутивтерді шығару үшін жиі /tmp каталогын қолданамын және оны жеке бөлімге арнаудың ешқандай мәні жоқ - заманауи жүйелерде ол автоматты түрде тазаланады, сондықтан ол толтырылмайды. Сондықтан мен түбірге 8 ГБ бөлемін.

Своп... Жалпы алғанда, оның практикалық пайдасы аз. Егер сіз өзіңіздің серверіңізде свопты пайдалана бастасаңыз, бүгінгі күні нақты әлемде бұл серверге көбірек жедел жад қосу керек дегенді білдіреді. Әйтпесе, өнімділікке қатысты ақауларға кепілдік беріледі (немесе кейбір бағдарлама жадты «ағытып жібереді»). Сондықтан бұл бөлім тек диагностикалық мақсаттар үшін қажет. Сондықтан 2 ГБ - тамаша сан. Иә, серверде қанша жад бар екеніне қарамастан. Иә, мен жад көлемінің своп көлеміне қатынасы туралы жазылған мақалалардың барлығын оқыдым... IMHO, олар ескірген. 10 жылдық тәжірибемде маған бұл ешқашан қажет емес. 15 жыл бұрын мен оларды қолдандым, иә.

IMHO, әркім /үйді бөлек бөлімге бөлуді өзі шеше алады. Егер серверде біреу бұл каталогты белсенді түрде пайдаланатын болса, оны бөлген дұрыс. Ешкім болмаса, қажеті жоқ.

Келесі, /var. Менің ойымша, оны міндетті түрде атап өту керек. Бастау үшін сіз өзіңізді 4 Гбайтпен шектей аласыз және оның қалай жүретінін көре аласыз. Иә, «бұл қалай жүреді» деп мен мұны айтамын

  1. Біріншіден, сіз әрқашан /var ішкі каталогында басқа дискіні орнатуға болады (оны кейінірек мысалмен көрсетемін)
  2. Екіншіден, бізде lvm бар - оны әрқашан қосуға болады. Әдетте тым көп бөренелер құйыла бастағанда оны қосу керек. Бірақ мен бұл көрсеткішті ешқашан алдын ала болжай алмадым, сондықтан мен 2 ГБ-тан бастаймын, содан кейін қараймын.

Бөлінбеген кеңістік дыбыс тобында бос қалады және әрқашан кейінірек пайдалануға болады.

LVM

Барлық LVM жүйесінде /boot бөлімінен басқа бөлімдерді жасау мағынасы бар. Иә, свопты қоса. Ия, барлық кеңестерге сәйкес, своп дискінің басында болуы керек, бірақ LVM жағдайында оның орнын принципті түрде анықтау мүмкін емес. Бірақ жоғарыда жазғанымдай, сіздің жүйеңіз болмауы керек свопты мүлдем пайдаланыңыз. Сондықтан оның қайда екені маңызды емес. Біз 95-те өмір сүрмейміз, шынымды айтсам!

Сонымен қатар, LVM-де сіз өмір сүре алатын бірнеше негізгі нысандар бар:

  • физикалық көлем
  • көлем тобы
  • логикалық көлем

Физикалық көлемдер топтарға біріктіріледі және әрбір физикалық көлем тек бір топта болуы мүмкін, ал топ бірден бірнеше физикалық томдарда орналасуы мүмкін.
Ал логикалық томдар әрқайсысы бір топта.

Бірақ... Қарғыс атсын, тағы да 21 ғасыр. Ал серверлер виртуалды. Оларға физикалық механизмдерге қолданылған механизмдерді қолданудың мағынасы жоқ. Ал виртуалдылар үшін деректердің жүйеден бөлек болуы маңызды! Бұл өте маңызды, атап айтқанда деректерді басқа виртуалды машинаға жылдам ауыстыру мүмкіндігі үшін (мысалы, жаңа ОЖ-ге ауысқанда) және жалпы пайдалы нәрселердің барлық түрлері үшін (мысалы, гипервизор құралдарын пайдаланып бөлімдер бойынша сақтық көшірмелерді бөлу) . Сондықтан, бір том тобы жүйе үшін пайдаланылады және міндетті түрде басқасы деректер үшін пайдаланылады! Бұл логикалық бөлу өмірде көп көмектеседі!

Виртуалды машина жасау кезінде тек бір виртуалды қатты диск жасасаңыз, конфигурация осы жерде аяқталады. Ал егер екеуі болса, екіншісін әлі белгілемеңіз.

Запускаем установку.

Орнатудан кейінгі

Сонымен, жаңадан орнатылған жүйе ақыры жүктелді. Біріншіден, сіз Интернетті тексеруіңіз керек.

ping ya.ru

Жауабы бар ма? - Керемет, Ctrl-C пернелерін басыңыз.
Олай болмаса, желіні орнатыңыз, онсыз өмір жоқ, бірақ менің мақалам бұл туралы емес.

Енді біз әлі түбірдің астында болмасақ, тамырдың астына өтіңіз, өйткені теру осындай sudo көмегімен командалардың саны мені жеке бұзды (және параноидтық әкімшілер мені кешірсін):

sudo -i

Енді біз жасайтын бірінші нәрсе - теру

dnf -y update

Егер сіз осы мақаланы 2019 жылы оқып жатсаңыз, ештеңе болмайды, бірақ бұл тырысуға тұрарлық.

Енді қалған дискіні конфигурациялайық

Айталық, жүйемен бөлім xvda болды, содан кейін деректер дискісі xvdb болады. ЖАРАЙДЫ МА.

Көптеген кеңестер «fdisk іске қосыңыз және бөлім жасаңыз...» деп басталады.

Демек, бұл дұрыс емес!

Мен мұны қайталаймын, өйткені бұл өте маңызды! Бұл жағдайда бір виртуалды дискіні алып жатқан LVM-мен жұмыс істеу, онда бөлімдер жасау зиянды! Бұл сөйлемдегі әрбір сөз маңызды. Егер біз LVMсіз жұмыс істейтін болсақ, бізге қажет. Егер дискіде жүйе мен деректер болса, бізге қажет. Егер қандай да бір себептермен дискінің жартысын бос қалдыру керек болса, біз де керек. Бірақ әдетте бұл болжамдардың барлығы тек теориялық. Өйткені, егер біз бар бөлімге бос орын қосуды шешсек, оны жасаудың ең оңай жолы - осы конфигурация. Басқарудың қарапайымдылығы көптеген басқа нәрселерден асып түсетіні сонша, біз осы конфигурацияға мақсатты түрде көшеміз.

Қолайлылығы мынада, егер сіз деректер бөлімін кеңейткіңіз келсе, виртуалды бөлімге жай ғана бос орындар қосасыз, содан кейін vgextend арқылы топты кеңейтесіз және бәрі аяқталды! Сирек жағдайларда, басқа нәрсе қажет болуы мүмкін, бірақ кем дегенде, сіз басында логикалық көлемді кеңейтудің қажеті жоқ, бұл қазірдің өзінде жақсы. Әйтпесе, дәл осы көлемді кеңейту үшін олар алдымен барын жоюды, содан кейін үстіне жаңасын жасауды ұсынады... Бұл өте жақсы көрінбейді және тікелей эфирде орындау мүмкін емес, бірақ мен көрсеткен сценарий бойынша кеңейту болуы мүмкін. тіпті бөлімді ажыратпай-ақ «ұшатын» жүзеге асырылады.

Сонымен, біз физикалық көлемді, содан кейін оны қамтитын көлем тобын, содан кейін серверіміз үшін бөлімді жасаймыз:

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

Мұнда бас «L» әрпінің орнына (және ГБ өлшемі) кішігірім көрсетуге болады, содан кейін абсолютті өлшемнің орнына салыстырмалы өлшемді көрсетуге болады, мысалы, қазіргі уақытта бос кеңістіктің жартысын пайдалану үшін. көлем тобы үшін «-l +50% ТЕГІН» көрсету керек

Және соңғы пәрмен 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 конфигурациялауды есте сақтау керек екендігі туралы жазамын.
Шын мәнінде, пайда! 🙂

Ақпарат көзі: www.habr.com

пікір қалдыру