CentOS 8 da php7, node.js va redis bilan veb-server

muqaddima

CentOS operatsion tizimining yangi versiyasi, ya'ni CentOS 2 chiqqaniga 8 kun bo'ldi. Va hozirgacha Internetda unda ishlar qanday amalga oshirilayotgani haqida juda ko'p maqolalar mavjud, shuning uchun men bu bo'shliqni to'ldirishga qaror qildim. Bundan tashqari, men sizga nafaqat ushbu juft dasturlarni qanday o'rnatish haqida, balki oddiy vazifalar, jumladan disklarni bo'lish va hokazolar uchun zamonaviy dunyoda Linuxni virtual muhitda o'rnatishni qanday ko'rishim haqida gapirib beraman.

Ammo boshida men nima uchun oldingi versiyalardan ushbu versiyaga o'tish kerakligi haqida qisqacha gapirib bermoqchiman va buning ikkita sababi bor:

  1. php7! CentOS-ning oldingi versiyasida "Pravoslav" php5.4 o'rnatilgan edi...

    Yaxshi, biroz jiddiyroq bo'lish uchun, ko'plab paketlar ommaviy ravishda bir nechta versiyalardan o'tib ketdi. Biz (redhatga o'xshash operatsion tizimlarning muxlislari) nihoyat kelajakka bo'lmasa, hech bo'lmaganda hozirgi kunga kirdik. Ubuntu tarafdorlari esa endi bizni ustidan kulmaydilar va bizga barmoqlarini ishora qiladilar, yaxshi... hech bo'lmaganda bir muddat;).

  2. yum dan dnf ga o'tish. Asosiy farq shundaki, endi bir vaqtning o'zida paketlarning bir nechta versiyalari bilan ishlash rasman qo'llab-quvvatlanadi. Sakkiztasida men buni hech qachon foydali deb topmadim, lekin bu umid beruvchi ko'rinadi.

Virtual mashina yarating

Turli xil gipervizorlar mavjud va men o'quvchini ma'lum biriga moslashtirish maqsadim yo'q, men sizga umumiy tamoyillar haqida aytib beraman.

xotira

Birinchidan... CentOS tizimini 7 dan boshlab o'rnatish uchun, va menimcha, bu 6-da ham shunday bo'lgan (“lekin bu aniq emas”), sizga kerak eng kam 2 GB RAM. Shuning uchun, men sizga birinchi navbatda shuncha narsani berishingizni maslahat beraman.

Ammo, agar biror narsa bo'lsa, o'rnatishdan keyin xotira hajmini kamaytirish mumkin. 1 GB da yalang'och tizim juda yaxshi ishlaydi, men tekshirdim.

disk

Oddiy o'rnatish uchun siz 20-30 GB hajmli virtual disk yaratishingiz kerak. Bu tizim uchun etarli. Va ma'lumotlar uchun ikkinchi disk. Uni virtual mashinani yaratish bosqichida ham, undan keyin ham qo'shish mumkin. Men odatda keyinroq qo'shaman.

protsessor

Bir yadroda yalang'och tizim sekinlashmaydi. Resurslar erkin kengaytirilishi mumkinligi sababli, o'rnatish bosqichida ko'proq narsani ko'rmayapman (agar siz talablarni mukammal bilmasangiz va konfiguratorga qayta kirishga dangasa bo'lmasangiz)

Qolganlari odatda sukut bo'yicha qoldirilishi mumkin.

Haqiqiy o'rnatish

Shunday qilib... Keling, o'rnatuvchini ishga tushiramiz ... Shaxsan men bunday xizmatlarni uzoq vaqtdan beri faqat virtual mashinalar ko'rinishida o'rnataman, shuning uchun men flesh-diskdagi barcha turdagi tarqatish yozuvlarini tasvirlamayman - men faqat o'rnataman. ISOni mening sevimli hipervizorimdagi CD sifatida yuklab oling va o'ting.

Asosiy o'rnatish juda odatiy, men faqat bir nechta fikrlarga to'xtalaman.

Manba tanlash

Sakkizinchi versiya chiqarilgandan beri Yandex-dan ko'zgu bir necha kun davomida yotibdi. Ya'ni, vaqti-vaqti bilan ko'tariladi va keyin yana xato ko'rsata boshlaydi. Ishonchim komilki, bu xizmatning haddan tashqari yuklanishi bilan bog'liq. Shuning uchun, manbani ko'rsatish uchun men odatdagi manzilni kiritish o'rniga shaxsan borishim kerak edi shu yerda, u erda menga yoqadigan oynani tanlang va o'rnatish oynasiga manzilni qo'lda kiriting. Bu erda katalog joylashgan papkaga yo'lni ko'rsatish kerakligini yodda tutish kerak qayta ma'lumot. Masalan, mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Diskni qismlarga ajratish

Menimcha, bu savol juda diniy. Har bir adminning bu borada o'z pozitsiyasi bor. Lekin men hali ham masala bo'yicha o'z nuqtai nazarimni baham ko'raman.

Ha, printsipial jihatdan, siz butun joyni ildizga ajratishingiz mumkin va u ishlaydi, ko'pincha hatto juda yaxshi. Nima uchun bog'ni turli bo'limlar bilan o'rab oling? — Menimcha, buning ikkita asosiy sababi bor: kvotalar va ko‘chma.

Misol uchun, agar biror narsa noto'g'ri bo'lsa va asosiy ma'lumotlar bo'limida xatolar yuzaga kelsa, siz hali ham tizimni yuklashni va reanimatsiya choralarini ko'rishni xohlaysiz. Shuning uchun men shaxsan /boot uchun alohida bo'lim ajrataman. Yadro va bootloader mavjud. Odatda 500 megabayt kifoya qiladi, lekin kamdan-kam hollarda ko'proq kerak bo'lishi mumkin va biz allaqachon terabaytlarda bo'sh joyni o'lchashga o'rganib qolganimizni hisobga olsak, men ushbu bo'lim uchun 2 Gb ajrataman. Va bu erda eng muhimi, buni lvm qilib bo'lmaydi.

Keyinchalik tizimning ildizi keladi. Oddiy o'rnatish uchun menga hech qachon har bir tizim uchun 4 Gb dan ko'proq kerak bo'lmagan, lekin rejalashtirilgan tadbirlar paytida men tez-tez tarqatishlarni ochish uchun /tmp katalogidan foydalanaman va uni alohida bo'limga bag'ishlashning ma'nosini ko'rmayapman - zamonaviy tizimlarda u avtomatik ravishda tozalanadi, shuning uchun u to'ldirilmaydi. Shunday qilib, ildiz uchun 8 GB ajrataman.

Almashtirish... Umuman olganda, undan amaliy foyda kam. Agar siz serveringizda almashtirishdan foydalanishni boshlasangiz, bugungi kunda haqiqiy dunyoda bu faqat serverga ko'proq RAM qo'shishi kerakligini anglatadi. Aks holda, ishlash bilan bog'liq muammolar kafolatlanadi (yoki ba'zi dastur xotirani "oqish" qiladi). Shuning uchun bu bo'lim faqat diagnostika maqsadida kerak. Shuning uchun 2 GB ajoyib raqam. Ha, serverda qancha xotira borligidan qat'i nazar. Ha, men xotira hajmining almashinuv hajmiga nisbati haqida yozilgan barcha maqolalarni o'qib chiqdim ... IMHO, ular eskirgan. 10 yillik amaliyotda menga hech qachon kerak bo'lmagan. 15 yil oldin men ulardan foydalanganman, ha.

IMHO, har kim o'zi uchun /home-ni alohida bo'limga ajratish haqida qaror qabul qilishi mumkin. Agar serverdagi kimdir ushbu katalogdan faol foydalansa, uni ajratish yaxshiroqdir. Hech kim bo'lmasa, kerak emas.

Keyingi, /var. Menimcha, buni albatta ta'kidlash kerak. Boshlash uchun siz o'zingizni 4 GB bilan cheklashingiz va uning qanday ketayotganini ko'rishingiz mumkin. Ha, "qanday ketyapti" deganda men shuni nazarda tutyapman

  1. Birinchidan, siz har doim boshqa diskni /var pastki katalogiga o'rnatishingiz mumkin (buni keyinroq misol bilan ko'rsataman)
  2. Ikkinchidan, bizda lvm bor - uni har doim qo'shishingiz mumkin. Va odatda u erda juda ko'p jurnallar to'kila boshlaganda uni qo'shishingiz kerak. Lekin men bu raqamni hech qachon oldindan bashorat qila olmadim, shuning uchun men 2 GB dan boshlayman va keyin tomosha qilaman.

Ajratilmagan bo'sh joy ovoz balandligi guruhida bo'sh qoladi va har doim keyinroq ishlatilishi mumkin.

LVM

hamma LVM-da /boot-dan boshqa bo'limlarni yaratish mantiqiy. Ha, shu jumladan almashtirish. Ha, barcha tavsiyalarga ko'ra, almashtirish diskning boshida bo'lishi kerak, ammo LVM holatida uning joylashuvi printsipial jihatdan aniqlanmaydi. Lekin yuqorida yozganimdek, sizning tizimingiz bo'lmasligi kerak umuman almashtirishdan foydalaning. Shuning uchun, uning qaerda ekanligi muhim emas. To'g'risi, biz 95-yilda yashamayapmiz!

Bundan tashqari, LVM-da siz yashashingiz kerak bo'lgan bir nechta asosiy ob'ektlar mavjud:

  • jismoniy hajm
  • hajm guruhi
  • mantiqiy hajm

Jismoniy hajmlar guruhlarga birlashtiriladi va har bir jismoniy hajm faqat bitta guruhda bo'lishi mumkin va guruh bir vaqtning o'zida bir nechta jismoniy hajmlarda joylashgan bo'lishi mumkin.
Va mantiqiy jildlarning har biri bitta guruhda.

Lekin... Jin ursin, yana 21-asr. Va serverlar virtualdir. Ularga jismoniy mexanizmlarga nisbatan qo'llanilgan mexanizmlarni qo'llashning ma'nosi yo'q. Va virtuallar uchun tizimdan alohida ma'lumotlarga ega bo'lish muhimdir! Bu, xususan, ma'lumotlarni boshqa virtual mashinaga tezda o'tkazish qobiliyati uchun (masalan, yangi OTga o'tishda) va umuman, barcha turdagi foydali narsalar uchun (masalan, gipervisor vositalaridan foydalangan holda bo'limlar bo'yicha alohida zaxira nusxalari) uchun juda muhimdir. . Shuning uchun, tizim uchun bitta jild guruhi ishlatiladi va boshqasi ma'lumotlar uchun ishlatiladi! Bu mantiqiy bo'linish hayotda juda ko'p yordam beradi!

Agar siz virtual mashinani yaratishda faqat bitta virtual qattiq disk yaratgan bo'lsangiz, konfiguratsiya shu erda tugaydi. Va agar ikkita bo'lsa, ikkinchisini hali belgilamang.

O'rnatishni boshlaylik.

O'rnatishdan keyingi

Shunday qilib, yangi o'rnatilgan tizim nihoyat ishga tushirildi. Siz tekshirishingiz kerak bo'lgan birinchi narsa - bu Internet.

ping ya.ru

Javob bormi? - Ajoyib, Ctrl-C tugmalarini bosing.
Agar yo'q bo'lsa, tarmoqni o'rnating, busiz hayot yo'q, lekin bu mening maqolam haqida emas.

Endi biz hali ildiz ostida bo'lmagan bo'lsak, ildiz ostiga o'ting, chunki yozish mavjud sudo bilan buyruqlar soni shaxsan meni buzdi (va paranoyak administratorlar meni kechirsin):

sudo -i

Endi biz qiladigan birinchi narsa - yozish

dnf -y update

Va agar siz ushbu maqolani 2019 yilda o'qiyotgan bo'lsangiz, ehtimol hech narsa bo'lmaydi, lekin sinab ko'rishga arziydi.

Endi qolgan diskni sozlaymiz

Aytaylik, tizim bilan bo'linish xvda edi, keyin ma'lumotlar diski xvdb bo'ladi. KELISHDIKMI.

Ko'pgina maslahatlar "Fdiskni ishga tushiring va bo'lim yarating ..." bilan boshlanadi.

Demak, bu noto'g'ri!

Men buni yana bir bor aytaman, chunki bu juda muhim! Bunday holda, butun bir virtual diskni egallagan LVM bilan ishlash, unda bo'limlar yaratish zararli! Ushbu iboradagi har bir so'z muhim ahamiyatga ega. Agar biz LVMsiz ishlasak, kerak. Diskda tizim va ma'lumotlar mavjud bo'lsa, bizga kerak. Agar biron sababga ko'ra diskning yarmini bo'sh qoldirishimiz kerak bo'lsa, biz ham kerak. Ammo, odatda, bu taxminlarning barchasi faqat nazariydir. Chunki mavjud bo'limga bo'sh joy qo'shishga qaror qilsak, buni qilishning eng oson yo'li bu konfiguratsiyadir. Va ma'muriyatning qulayligi boshqa ko'p narsalardan shunchalik ustunki, biz maqsadli ravishda ushbu konfiguratsiyaga o'tmoqdamiz.

Va qulayligi shundaki, agar siz ma'lumotlar bo'limini kengaytirmoqchi bo'lsangiz, virtual bo'limga shunchaki bo'sh joylar qo'shasiz, keyin vgextend yordamida guruhni kengaytirasiz va tamom! Kamdan kam hollarda, yana bir narsa talab qilinishi mumkin, lekin hech bo'lmaganda boshida mantiqiy hajmni kengaytirishingiz shart emas, bu allaqachon yoqimli. Aks holda, aynan shu hajmni kengaytirish uchun avval mavjudni o'chirib tashlashni, keyin esa tepasida yangisini yaratishni tavsiya qiladilar... Bu unchalik yoqimli ko'rinmaydi va uni jonli bajarish mumkin emas, lekin men ko'rsatgan stsenariy bo'yicha kengaytirish mumkin. hatto bo'limni ajratmasdan "parvozda" amalga oshiriladi.

Shunday qilib, biz jismoniy hajmni, keyin uni o'z ichiga olgan hajmlar guruhini va serverimiz uchun bo'limni yaratamiz:

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

Bu erda "L" bosh harfi o'rniga (va o'lchami GB) kichikni belgilashingiz mumkin, so'ngra mutlaq o'lcham o'rniga nisbiyni ko'rsatishingiz mumkin, masalan, hozirda bo'sh joyning yarmidan foydalanish uchun. tovush guruhi uchun siz "-l +50%BEPUL" ni belgilashingiz kerak

Va oxirgi buyruq ext4 fayl tizimidagi bo'limni formatlaydi (bu mening tajribamga ko'ra, hamma narsa buzilgan taqdirda eng katta barqarorlikni ko'rsatadi, shuning uchun men buni afzal ko'raman).

Endi biz bo'limni kerakli joyga o'rnatamiz. Buning uchun /etc/fstab ga to'g'ri qatorni qo'shing:

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

Va biz qo'ng'iroq qilamiz

mount /var/www

Agar xatolik yuz bersa, signalni chaling! Chunki bu bizda /etc/fstab da xatolik borligini bildiradi. Va keyingi qayta yuklashda biz juda katta muammolarga duch kelamiz. Tizim umuman yuklanmasligi mumkin, bu ko'pincha bulutli xizmatlar uchun juda achinarli. Shuning uchun, oxirgi qo'shilgan qatorni zudlik bilan tuzatish yoki uni butunlay o'chirish kerak! Shuning uchun biz o'rnatish buyrug'ini qo'lda yozmadik - keyin biz konfiguratsiyani darhol tekshirish uchun bunday ajoyib imkoniyatga ega bo'lmagan bo'lardik.

Endi biz xohlagan hamma narsani o'rnatamiz va veb uchun portlarni ochamiz:

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

Agar xohlasangiz, bu erda ma'lumotlar bazasini ham qo'yishingiz mumkin, lekin shaxsan men uni veb-serverdan alohida saqlashga harakat qilaman. Garchi uni yaqin tutish tezroq bo'lsa-da, ha. Virtual tarmoq adapterlarining tezligi odatda gigabit atrofida bo'ladi va bir xil mashinada ishlaganda qo'ng'iroqlar deyarli bir zumda sodir bo'ladi. Ammo bu kamroq xavfsiz. Kim uchun nima muhimroq?

Endi biz parametrni konfiguratsiya fayliga qo'shamiz (biz yangisini yaratamiz, CentOS-ning zamonaviy mafkurasi shunday)

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

Biz serverni qayta ishga tushiramiz.
Sharhlarda meni SeLinux-ni o'chirishni maslahat berganim uchun tanqid qilishdi, shuning uchun men o'zimni tuzataman va bundan keyin SeLinux-ni sozlashni eslab qolish kerakligi haqida yozaman.
Aslida, foyda! 🙂

Manba: www.habr.com

a Izoh qo'shish