CentOS 8 дээрх php7, node.js болон redis-тай вэб сервер

Өмнөх үг

CentOS үйлдлийн системийн шинэ хувилбар болох CentOS 2 гарснаас хойш 8 хонож байна. Одоогоор Интернэт дээр үүнийг хэрхэн хийдэг талаар цөөнгүй нийтлэл байгаа тул би энэ цоорхойг нөхөхөөр шийдсэн. Нэмж дурдахад, би зөвхөн энэ хос програмыг хэрхэн суулгах талаар төдийгүй орчин үеийн ертөнцөд виртуал орчинд Линуксыг хэрхэн суулгах талаар ерөнхийд нь хэлж өгөх болно, үүнд диск хуваах гэх мэт ердийн ажлуудыг хийх болно.

Гэхдээ эхэнд би яагаад өмнөх бүх хувилбараас энэ хувилбар руу шилжих нь зүйтэй вэ гэдгийг товчхон ярихыг хүсч байна, үүнд хоёр шалтгаан бий.

  1. php7! CentOS-ийн өмнөх хувилбарт "Ортодокс" php5.4 суулгасан...

    За, бага зэрэг нухацтай байхын тулд маш олон багцууд хэд хэдэн хувилбаруудыг бөөнөөр нь үсэрсэн. Бид (redhat-тай төстэй үйлдлийн системүүдийн шүтэн бишрэгчид) эцэст нь ирээдүйд биш юмаа гэхэд ядаж өнөөдрийг хүртэл орлоо. Тэгээд Ubuntu-г дэмжигчид бидэн рүү инээж, хуруугаараа дохихоо больчихно, за... нэг хэсэг ч гэсэн ;).

  2. yum-аас dnf руу шилжих. Гол ялгаа нь одоо багцын хэд хэдэн хувилбартай нэг дор ажиллахыг албан ёсоор дэмждэг болсон явдал юм. Яг XNUMX-д би үүнийг хэзээ ч ашигтай гэж олсонгүй, гэхдээ энэ нь ирээдүйтэй сонсогдож байна.

Виртуал машин үүсгэх

Өөр өөр гипервизорууд байдаг бөгөөд би уншигчийг тодорхой нэгд нь тохируулах зорилгогүй, би ерөнхий зарчмуудын талаар танд хэлье.

санах ойн

Эхлээд ... CentOS системийг 7-оос эхлэн суулгахын тулд, миний бодлоор энэ нь 6-д ч байсан (“гэхдээ энэ нь тодорхой биш”) байх ёстой. хамгийн бага 2 GB RAM. Тиймээс эхлээд тэр ихийг өгөхийг зөвлөж байна.

Гэхдээ ямар нэгэн зүйл байвал суулгасны дараа санах ойн хэмжээг багасгаж болно. 1 ГБ-т нүцгэн систем маш сайн ажилладаг, би шалгасан.

диск

Ердийн суулгацын хувьд та 20-30 ГБ багтаамжтай виртуал диск үүсгэх хэрэгтэй. Энэ нь системийн хувьд хангалттай юм. Мөн өгөгдөлд зориулсан хоёр дахь диск. Үүнийг виртуал машин үүсгэх үе шатанд болон дараа нь нэмж болно. Би үүнийг ихэвчлэн дараа нь нэмдэг.

CPU

Нэг цөм дээр нүцгэн систем нь удааширдаггүй. Мөн нөөцийг чөлөөтэй өргөжүүлэх боломжтой тул суулгах шатанд илүү их зүйл өгөх ямар ч утгагүй гэж би олж харахгүй байна (хэрэв та шаардлагуудыг сайн мэдэж, дахин тохируулагч руу орохоос залхуу биш бол)

Үлдсэн хэсгийг нь ихэвчлэн анхдагч байдлаар үлдээж болно.

Бодит суурилуулалт

Тэгэхээр... Суулгагчаа ажиллуулъя... Би хувьдаа ийм үйлчилгээг зөвхөн виртуал машин хэлбэрээр суулгаж байгаад удаж байгаа тул флаш диск дээрх бүх төрлийн түгээлтийн бичлэгүүдийг тайлбарлахгүй - Би зүгээр л холбоно. ISO-г миний дуртай гипервизорт CD болгон татаж аваад яв.

Үндсэн суурилуулалт нь нэлээд ердийн зүйл тул би зөвхөн цөөн хэдэн зүйл дээр анхаарлаа хандуулах болно.

Эх сурвалжийн сонголт

Найм дахь хувилбар гарснаас хойш Yandex-ийн толь хэдэн өдрийн турш хэвтэж байна. Энэ нь үе үе нэмэгдэж, дараа нь дахин алдаа гарч эхэлдэг. Энэ нь үйлчилгээний хэт ачаалалтай холбоотой гэдэгт би итгэлтэй байна. Тиймээс эх сурвалжаа хэлэхийн тулд би хувьдаа ердийн хаягаа оруулахын оронд явах хэрэгтэй болсон энд, тэндээс надад таалагдсан толин тусгалыг сонгоод суулгагч цонхонд хаягийг гараар оруулна уу. Лавлах байрлаж буй хавтсанд хүрэх замыг зааж өгөх хэрэгтэй гэдгийг энд санах нь чухал юм хуулбар. Жишээлбэл, mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Диск хуваах

Энэ асуулт миний бодлоор шашин шүтлэгтэй холбоотой юм. Админ бүр энэ асуудалд өөрийн гэсэн байр суурьтай байдаг. Гэхдээ би асуудлын талаар өөрийн байр сууриа хуваалцах болно.

Тиймээ, зарчмын хувьд та бүхэл бүтэн зайг үндэс рүү хуваарилж болох бөгөөд энэ нь ихэвчлэн сайн ажиллах болно. Яагаад өөр өөр хэсэг бүхий цэцэрлэгийг хашдаг вэ? — Миний бодлоор үүнд квот, зөөвөрлөх хоёр үндсэн шалтгаан бий.

Жишээлбэл, хэрэв ямар нэг зүйл буруу болж, мэдээллийн үндсэн хэсэгт алдаа гарвал та системийг асааж, сэхээн амьдруулах арга хэмжээ авах боломжтой хэвээр байхыг хүсч байна. Тиймээс би хувьдаа /boot-д тусдаа хуваалт хуваарилдаг. Цөм болон ачаалагч байдаг. Ихэвчлэн 500 мегабайт хангалттай байдаг, гэхдээ ховор тохиолдолд илүү их шаардлагатай байж болох бөгөөд бид терабайтаар зайг хэмжиж дассан тул би энэ хэсэгт 2 ГБ зай хуваарилдаг. Энд хамгийн чухал зүйл бол үүнийг хийх боломжгүй юм lvm.

Дараа нь системийн үндэс ирдэг. Ердийн суулгацын хувьд надад нэг системд 4 ГБ-аас илүү зай шаардагдахгүй байсан ч хуваарьт үйл явдлын үеэр би түгээлтүүдийг задлахад /tmp санг ашигладаг бөгөөд орчин үеийн системд үүнийг тусдаа хуваалтад зориулах нь утгагүй юм. Энэ нь автоматаар цэвэрлэгддэг тул дүүргэдэггүй. Тиймээс би root-д зориулж 8GB хуваарилдаг.

Солилцоо... Ер нь бол практик хэрэглээ бага. Хэрэв та сервер дээрээ своп ашиглаж эхэлбэл, өнөөдөр бодит ертөнцөд энэ нь сервер илүү RAM нэмэх шаардлагатай гэсэн үг юм. Үгүй бол гүйцэтгэлтэй холбоотой асуудал гарах болно (эсвэл зарим програм нь санах ойг "алддаг"). Тиймээс энэ хэсэг нь зөвхөн оношлогооны зорилгоор шаардлагатай. Тиймээс 2 ГБ бол маш сайн тоо юм. Тийм ээ, сервер дээр хэр их санах ой байгаагаас үл хамааран. Тийм ээ, би санах ойн эзэлхүүнийг своп эзлэхүүнтэй харьцуулсан тухай бичсэн бүх нийтлэлийг уншсан ... IMHO, тэдгээр нь хуучирсан. 10 жилийн дадлага хийхэд надад ийм зүйл огт хэрэггүй байсан. 15 жилийн өмнө би тэдгээрийг ашиглаж байсан, тийм ээ.

IMHO, хүн бүр / гэрийг тусдаа хуваалтад хуваарилах эсэхээ өөрөө шийдэж болно. Хэрэв сервер дээрх хэн нэгэн энэ санг идэвхтэй ашиглах юм бол үүнийг хуваарилах нь дээр. Хэрэв хэн ч байхгүй бол шаардлагагүй болно.

Дараа нь /var. Миний бодлоор үүнийг заавал онцлох ёстой. Эхлэхийн тулд та өөрийгөө 4 ГБ хүртэл хязгаарлаж, энэ нь хэрхэн явагдаж байгааг харах боломжтой. Тийм ээ, "яаж явдаг вэ" гэж би үүнийг хэлж байна

  1. Нэгдүгээрт, та үргэлж өөр дискийг /var дэд директорт холбож болно (би үүнийг дараа нь жишээгээр харуулах болно)
  2. Хоёрдугаарт, бидэнд lvm байна - та үүнийг үргэлж нэмж болно. Мөн хэт олон гуалин цутгаж эхлэхэд та үүнийг ихэвчлэн нэмэх хэрэгтэй болдог. Гэхдээ би энэ тоог урьдчилан таамаглаж чадаагүй тул 2 ГБ-аас эхэлж, дараа нь үздэг.

Хуваарилагдаагүй зай нь эзлэхүүний бүлэгт чөлөөтэй хэвээр байх бөгөөд дараа нь үргэлж ашиглах боломжтой.

ХЧУР

мэдээлэл LVM дээр /boot-оос өөр хуваалт хийх нь утга учиртай. Тиймээ, солилцоо орно. Тиймээ, бүх зөвлөмжийн дагуу солилцоо нь дискний эхэнд байх ёстой, гэхдээ LVM-ийн хувьд түүний байршлыг зарчмын хувьд тодорхойлох боломжгүй юм. Гэхдээ дээр бичсэнчлэн таны систем байх ёсгүй свопыг огт ашигла. Тиймээс түүний хаана байх нь хамаагүй. За, бид 95 онд амьдардаггүй, үнэнийг хэлэхэд!

Цаашилбал, LVM-д та амьдрах чадвартай байх шаардлагатай хэд хэдэн үндсэн байгууллагууд байдаг:

  • физик хэмжээ
  • эзлэхүүний бүлэг
  • логик хэмжээ

Физик эзэлхүүнүүдийг бүлэг болгон нэгтгэдэг бөгөөд физик хэмжээ бүр нь зөвхөн нэг бүлэгт багтах бөгөөд бүлэг нь хэд хэдэн физик эзлэхүүн дээр нэгэн зэрэг байрлаж болно.
Мөн логик боть тус бүр нэг бүлэгт байна.

Гэхдээ... Хараал ид, дахиад 21-р зуун ирлээ. Мөн серверүүд нь виртуал юм. Физик механизмтай ижил механизмыг тэдэнд хэрэглэх нь утгагүй юм. Виртуал хүмүүсийн хувьд өгөгдөл нь системээс тусдаа байх нь чухал юм! Энэ нь маш чухал, ялангуяа өгөгдлийг өөр виртуал машин руу хурдан солих (жишээлбэл, шинэ үйлдлийн систем рүү шилжих үед) болон ерөнхийдөө бүх төрлийн ашигтай зүйлсийн хувьд (жишээлбэл, гипервизорын хэрэгслийг ашиглан хуваалтуудыг тусад нь нөөцлөх) маш чухал юм. . Тиймээс нэг эзлэхүүний бүлгийг системд ашигладаг бөгөөд заавал өөр нэг бүлэг нь өгөгдөлд ашиглагддаг! Энэ логик хуваагдал нь амьдралд маш их тусалдаг!

Хэрэв та виртуал машин үүсгэхдээ зөвхөн нэг виртуал хатуу диск үүсгэсэн бол тохиргоо энд дуусна. Хэрэв хоёр байгаа бол хоёр дахь нэгийг нь тэмдэглэж болохгүй.

Суулгацыг эхлүүлье.

Суулгасны дараа

Тиймээс шинээр суулгасан систем эцэст нь ачаалагдсан. Таны шалгах ёстой хамгийн эхний зүйл бол интернет юм.

ping ya.ru

Хариулт байна уу? - Гайхалтай, Ctrl-C дарна уу.
Үгүй бол сүлжээгээ байгуулаарай, үүнгүйгээр амьдрал байхгүй, гэхдээ миний нийтлэлийн тухай биш юм.

Одоо бид root доор хийгээгүй бол root дор оч, учир нь бичих ийм 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" том үсгийн оронд (болон GB-ийн хэмжээ) жижиг үсгийг зааж өгч, үнэмлэхүй хэмжээсийн оронд харьцангуй нэгийг зааж өгч болно, жишээлбэл, одоо байгаа хоосон зайны талыг ашиглахын тулд. эзлэхүүний бүлгийн хувьд та "-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

сэтгэгдэл нэмэх