php8, node.js və redis ilə CentOS 7-də veb server

Müqəddimə

CentOS əməliyyat sisteminin yeni versiyasının, yəni CentOS 2-in buraxılışından 8 gün keçdi. İndiyə qədər İnternetdə orada işlərin necə aparıldığına dair kifayət qədər məqalələr var, ona görə də bu boşluğu doldurmaq qərarına gəldim. Üstəlik, mən sizə təkcə bu proqramlar cütünü necə quraşdırmaq barədə deyil, həm də Linux-u müasir dünyada virtual mühitdə tipik tapşırıqlar, o cümlədən diskləri bölmək və s. üçün quraşdırmağı necə görürəm.

Ancaq başlanğıcda, bütün əvvəlki versiyalardan niyə bu versiyaya keçməyə dəyər olduğu barədə qısaca danışmaq istəyirəm və bunun iki səbəbi var:

  1. php7! CentOS-un əvvəlki versiyasında “Ortodoks” php5.4 quraşdırılmışdı...

    Tamam, bir az daha ciddi olmaq üçün, bir çox paket kütləvi şəkildə bir neçə versiyadan keçdi. Biz (redhat kimi OS-lərin pərəstişkarları) nəhayət, gələcəyə deyilsə, heç olmasa indiki vaxta daxil olduq. Ubuntu tərəfdarları isə artıq bizə gülməyəcək və barmaqlarını göstərməyəcəklər, yaxşı... heç olmasa bir müddət ;).

  2. yum-dan dnf-ə keçid. Əsas fərq ondan ibarətdir ki, indi eyni anda paketlərin bir neçə versiyası ilə işləmək rəsmi olaraq dəstəklənir. Səkkizdə mən bunu heç vaxt faydalı hesab etməmişəm, amma ümidverici səslənir.

Virtual maşın yaradın

Müxtəlif hipervizorlar var və mənim oxucunu konkret birinə uyğunlaşdırmaq məqsədim yoxdur, mən sizə ümumi prinsiplər haqqında məlumat verəcəyəm.

yaddaş

Birincisi... CentOS sistemini 7-dən başlayaraq quraşdırmaq üçün, mənim fikrimcə, bu, 6-da da belə idi (“lakin bu dəqiq deyil”) sizə lazımdır. minimum 2 GB RAM. Ona görə də əvvəlcə o qədərini verməyi məsləhət görürəm.

Ancaq bir şey varsa, quraşdırmadan sonra yaddaş ölçüsü azaldıla bilər. 1 GB-da çılpaq sistem olduqca yaxşı işləyir, yoxladım.

disk

Normal quraşdırma üçün 20-30 GB tutumlu virtual disk yaratmalısınız. Bu sistem üçün kifayətdir. Və məlumat üçün ikinci bir disk. Həm virtual maşın yaratma mərhələsində, həm də sonra əlavə edilə bilər. Mən adətən sonra əlavə edirəm.

prosessor

Bir nüvədə çılpaq sistem yavaşlamır. Resurslar sərbəst şəkildə genişləndirilə bildiyindən, quraşdırma mərhələsində daha çox şey verməyin mənasını görmürəm (tələbləri mükəmməl bilməsəniz və konfiquratora yenidən daxil olmaq üçün çox tənbəl olmasanız)

Qalanları adətən standart olaraq buraxıla bilər.

Faktiki quraşdırma

Beləliklə... Quraşdırıcını işə salaq... Şəxsən mən uzun müddətdir ki, bu cür xidmətləri yalnız virtual maşınlar şəklində quraşdırıram, ona görə də bir flash sürücüdə hər cür paylama qeydlərini təsvir etməyəcəyəm - sadəcə montaj edirəm. ISO-nu mənim sevimli hipervizorumda CD kimi yükləyin və gedin.

Əsas quraşdırma olduqca tipikdir, mən yalnız bir neçə məqam üzərində dayanacağam.

Mənbə seçimi

Səkkizinci versiyanın buraxılışından bəri Yandex-dən gələn güzgü günlərlə uzanır. Yaxşı, yəni vaxtaşırı yüksəlir və sonra yenidən səhv göstərməyə başlayır. Əminəm ki, bu, xidmətin həddindən artıq yüklənməsi ilə bağlıdır. Ona görə də mənbəni göstərmək üçün şəxsən mən adi ünvanı daxil etmək əvəzinə getməli oldum burada, orada bəyəndiyim güzgünü seçin və quraşdırma pəncərəsində ünvanı əl ilə daxil edin. Burada yadda saxlamaq lazımdır ki, kataloqun yerləşdiyi qovluğa gedən yolu göstərməlisiniz redata. Məsələn, mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Disk bölməsi

Bu sual mənim fikrimcə bir qədər dinidir. Hər bir admin bu məsələdə öz mövqeyini bildirir. Amma yenə də məsələ ilə bağlı öz fikrimi bölüşəcəm.

Bəli, prinsipcə, bütün məkanı kökə ayıra bilərsiniz və o, işləyəcək, əksər hallarda hətta olduqca yaxşı. Bəs niyə müxtəlif bölmələri olan bir bağı hasarlayın? — Məncə, bunun iki əsas səbəbi var: kvota və daşınma.

Məsələn, bir şey səhv olarsa və əsas məlumat bölməsində səhvlər baş verərsə, siz hələ də sistemi yükləmək və reanimasiya tədbirləri həyata keçirmək istəyirsiniz. Buna görə mən şəxsən /boot üçün ayrıca bölmə ayırıram. Kernel və bootloader var. Adətən 500 meqabayt kifayətdir, lakin nadir hallarda daha çox tələb oluna bilər və biz artıq terabaytlarla yer ölçməyə öyrəşdiyimizi nəzərə alsaq, bu bölmə üçün 2 GB ayırıram. Burada vacib olan odur ki, bunu lvm etmək olmaz.

Sonra sistemin kökü gəlir. Normal quraşdırma üçün mənə heç vaxt sistem başına 4 GB-dan çox ehtiyac olmayıb, lakin planlaşdırılan tədbirlər zamanı paylamaları açmaq üçün tez-tez /tmp qovluğundan istifadə edirəm və onu ayrıca bölməyə ayırmağın mənasını görmürəm - müasir sistemlərdə avtomatik təmizlənir, ona görə də doldurulmur. Beləliklə, mən kök üçün 8 GB ayırıram.

Mübadilə... Ümumiyyətlə, ondan praktiki istifadə azdır. Serverinizdə svopdan istifadə etməyə başlasanız, bu gün real dünyada bu, yalnız serverin daha çox RAM əlavə etməli olması deməkdir. Əks halda, performansla bağlı problemlərə zəmanət verilir (və ya bəzi proqramlar yaddaşı "sızdırır"). Buna görə də, bu bölmə yalnız diaqnostik məqsədlər üçün lazımdır. Buna görə də 2 GB əla rəqəmdir. Bəli, serverdə nə qədər yaddaş olmasından asılı olmayaraq. Bəli, yaddaş həcminin dəyişdirmə həcminə nisbəti haqqında yazılan bütün məqalələri oxudum ... IMHO, köhnəlmişdir. 10 illik təcrübəmdə buna heç vaxt ehtiyacım olmayıb. 15 il əvvəl onlardan istifadə etdim, bəli.

IMHO, hər kəs /evin ayrı bir bölməyə ayrılıb-ayrılmayacağına özü qərar verə bilər. Əgər serverdə kimsə bu kataloqdan aktiv istifadə edərsə, onu ayırmaq daha yaxşıdır. Heç kim yoxdursa, ehtiyac yoxdur.

Sonra, /var. Məncə, bunu mütləq vurğulamaq lazımdır. Başlamaq üçün özünüzü 4 GB ilə məhdudlaşdıra və bunun necə getdiyini görə bilərsiniz. Bəli, “necə gedir” deyərkən mən bunu nəzərdə tuturam

  1. Birincisi, siz həmişə /var alt qovluğuna başqa bir disk quraşdıra bilərsiniz (bunu daha sonra nümunə ilə göstərəcəyəm)
  2. İkincisi, bizdə lvm var - onu həmişə əlavə edə bilərsiniz. Oraya çoxlu loglar tökülməyə başlayanda adətən onu əlavə etməlisiniz. Ancaq bu rəqəmi heç vaxt əvvəlcədən proqnozlaşdıra bilmədim, ona görə də 2 GB ilə başlayıram və sonra baxıram.

Bölünməmiş yer həcm qrupunda boş qalacaq və həmişə sonra istifadə edilə bilər.

LVM

Bütün LVM-də /boot-dan başqa arakəsmələr yaratmağın mənası var. Bəli, mübadilə də daxil olmaqla. Bəli, bütün tövsiyələrə görə, dəyişdirmə diskin başlanğıcında olmalıdır, lakin LVM vəziyyətində onun yerini prinsipcə müəyyən etmək mümkün deyil. Amma yuxarıda yazdığım kimi, sizin sisteminiz olmamalıdır ümumiyyətlə svopdan istifadə edin. Buna görə də onun harada olmasının əhəmiyyəti yoxdur. Düzü, biz 95-ci ildə yaşamırıq!

Bundan əlavə, LVM-də yaşamaq üçün lazım olan bir neçə əsas qurum var:

  • fiziki həcm
  • həcm qrupu
  • məntiqi həcm

Fiziki həcmlər qruplara birləşdirilir və hər bir fiziki həcm yalnız bir qrupda ola bilər və qrup bir anda bir neçə fiziki həcmdə yerləşə bilər.
Və məntiqi cildlərin hər biri bir qrupdadır.

Amma... Lənət olsun, yenə 21-ci əsrdir. Və serverlər virtualdır. Fiziki mexanizmlərə tətbiq edilən eyni mexanizmləri onlara tətbiq etməyin mənası yoxdur. Virtual olanlar üçün isə məlumatların sistemdən ayrı olması vacibdir! Bu, xüsusilə məlumatları tez bir zamanda başqa bir virtual maşına (məsələn, yeni bir OS-yə keçərkən) və ümumiyyətlə hər cür faydalı yaxşılıqlar üçün (məsələn, hipervizor alətlərindən istifadə edərək bölmələrlə ehtiyat nüsxələrini ayırmaq) üçün çox vacibdir. . Buna görə də, sistem üçün bir həcm qrupu istifadə olunur və məlumat üçün mütləq başqa bir qrup istifadə olunur! Bu məntiqi bölgü həyatda çox kömək edir!

Virtual maşın yaratarkən yalnız bir virtual sabit disk yaratmısınızsa, konfiqurasiya burada başa çatır. İki varsa, ikincisini hələ qeyd etməyin.

Quraşdırmaya başlayaq.

Quraşdırma sonrası

Beləliklə, yeni quraşdırılmış sistem nəhayət işə salındı. Yoxlamalı olduğunuz ilk şey İnternetdir.

ping ya.ru

Cavab var? - Əla, Ctrl-C düyməsini basın.
Yoxdursa, gedin bir şəbəkə qurun, onsuz həyat yoxdur, amma mənim məqaləm bu deyil.

İndi, hələ kök altında deyiliksə, kök altına keçin, çünki yazın budur sudo ilə əmrlərin sayı şəxsən məni sındırdı (və paranoid adminlər məni bağışlasın):

sudo -i

İndi etdiyimiz ilk şey yazın

dnf -y update

Və bu yazını 2019-cu ildə oxuyursan, çox güman ki, heç nə olmayacaq, amma cəhd etməyə dəyərdi.

İndi qalan diski konfiqurasiya edək

Tutaq ki, sistemlə bölmə xvda idi, onda məlumat diski xvdb olacaq. TAMAM.

Əksər məsləhətlər “Fdisk-i işə salın və bölmə yaradın...” ilə başlayacaq.

Deməli bu səhv!

Yenə deyirəm, çünki çox vacibdir! Bu halda, bütöv bir virtual diski tutan LVM ilə işləmək, onun üzərində bölmələr yaratmaq zərərlidir! Bu ifadədəki hər bir söz vacibdir. LVM olmadan işləyiriksə, etməliyik. Diskdə bir sistem və məlumatımız varsa, bizə lazımdır. Əgər nədənsə diskin yarısını boş qoymalıyıqsa, biz də etməliyik. Amma adətən bütün bu fərziyyələr sırf nəzəri xarakter daşıyır. Çünki mövcud bölməyə yer əlavə etmək qərarına gəlsək, o zaman bunu etmənin ən asan yolu bu konfiqurasiyadır. İdarəetmə asanlığı bir çox başqa şeylərdən o qədər üstündür ki, biz məqsədyönlü şəkildə bu konfiqurasiyaya doğru irəliləyirik.

Rahatlıq ondan ibarətdir ki, məlumat bölməsini genişləndirmək istəyirsinizsə, sadəcə virtual bölməyə boşluqlar əlavə edirsiniz, sonra vgeextend istifadə edərək qrupu genişləndirirsiniz və budur! Nadir hallarda, başqa bir şey tələb oluna bilər, lakin heç olmasa başlanğıcda məntiqi həcmi genişləndirmək məcburiyyətində qalmayacaqsınız, bu artıq gözəldir. Əks halda, məhz bu həcmi genişləndirmək üçün əvvəlcə mövcud olanı silməyi, sonra isə üstünə yenisini yaratmağı məsləhət görürlər... Bu, çox gözəl görünmür və canlı olaraq həyata keçirilə bilməz, lakin qeyd etdiyim ssenari üzrə genişləndirmə ola bilər. hətta arakəsməni sökmədən "tezliklə" həyata keçirilir.

Beləliklə, biz fiziki həcm, sonra onu daxil edən həcm qrupu və sonra serverimiz üçün bölmə yaradırıq:

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

Burada böyük "L" hərfi (və ölçüsü GB-da) əvəzinə kiçik, sonra mütləq ölçü əvəzinə nisbi olanı göstərə bilərsiniz, məsələn, hazırda boş yerin yarısını istifadə etmək üçün həcm qrupu üçün "-l +50% PULSUZ" təyin etməlisiniz

Və sonuncu əmr ext4 fayl sistemindəki bölməni formatlaşdırır (bu, mənim təcrübəmə görə, hər şey pozulduğu təqdirdə ən böyük sabitliyi göstərir, ona görə də mən buna üstünlük verirəm).

İndi bölməni lazımi yerə quraşdırırıq. Bunu etmək üçün /etc/fstab-a düzgün sətri əlavə edin:

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

Və yığırıq

mount /var/www

Səhv baş verərsə, həyəcan siqnalı çalın! Çünki bu o deməkdir ki, bizdə /etc/fstab-da xəta var. Və növbəti reboot zamanı çox böyük problemlərimiz olacaq. Sistem ümumiyyətlə yükləməyə bilər, bu da bulud xidmətləri üçün çox kədərlidir. Odur ki, ya son əlavə olunan sətri təcili düzəltmək, ya da tamamilə silmək lazımdır! Buna görə montaj əmrini əl ilə yazmadıq - onda konfiqurasiyanı dərhal yoxlamaq üçün belə əla fürsətimiz olmazdı.

İndi biz əslində istədiyimiz hər şeyi quraşdırırıq və veb üçün portları açırıq:

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

İstəyirsinizsə, burada verilənlər bazası da yerləşdirə bilərsiniz, amma şəxsən mən onu veb serverdən ayrı saxlamağa çalışıram. Onu yaxın saxlamaq daha sürətli olsa da, bəli. Virtual şəbəkə adapterlərinin sürəti adətən gigabit ətrafındadır və eyni maşında işləyərkən zənglər demək olar ki, dərhal baş verir. Ancaq daha az təhlükəsizdir. Kim üçün daha vacib olan nədir?

İndi parametri konfiqurasiya faylına əlavə edirik (yenisini yaradırıq, CentOS-un müasir ideologiyası belədir)

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

Serveri yenidən işə salırıq.
Şərhlərdə məni SeLinux-u söndürməyi tövsiyə etdiyim üçün danladım, ona görə də özümü düzəldəcəyəm və bundan sonra SeLinux-u konfiqurasiya etməyi unutmamalı olduğunuz barədə yazacağam.
Əslində, qazanc! 🙂

Mənbə: www.habr.com

Добавить комментарий