Xeyriyyəçilik üçün Bulud: Miqrasiya Bələdçisi

Xeyriyyəçilik üçün Bulud: Miqrasiya Bələdçisi

Bir müddət əvvəl Mail.Ru Cloud Solutions (MCS) və Dobro Mail.Ru xidməti layihəyə start verdi.Xeyriyyə təşkilatları üçün bulud”, bunun sayəsində qeyri-kommersiya təşkilatları MCS bulud platformasının resurslarını pulsuz əldə edə bilərlər. Xeyriyyə Fondu”Yaxşılığın arifmetikası» layihədə iştirak etmiş və MCS əsasında öz infrastrukturunun bir hissəsini uğurla tətbiq etmişdir.

Doğrulamadan keçdikdən sonra NPO MCS-dən virtual tutum əldə edə bilər, lakin sonrakı konfiqurasiya müəyyən ixtisas tələb edir. Bu materialda biz pulsuz SSL sertifikatlarından istifadə edərək əsas təməl veb saytını və bir sıra alt domenləri idarə etmək üçün Ubuntu Linux əsaslı serverin qurulması üçün xüsusi təlimatları bölüşmək istəyirik. Çoxları üçün bu, sadə bir bələdçi olacaq, lakin ümid edirik ki, təcrübəmiz təkcə deyil, digər qeyri-kommersiya təşkilatları üçün də faydalı olacaqdır.

Bilginize: MCS-dən nə əldə edə bilərsiniz? 4 CPU, 32 GB RAM, 1 TB HDD, Ubuntu Linux ƏS, 500 GB obyekt yaddaşı.

Addım 1: virtual serveri işə salın

Gəlin birbaşa mətləbə keçək və MCS şəxsi hesabınızda virtual serverimizi (aka “nümunə”) yaradaq. Tətbiq mağazasında siz əksər veb-saytları idarə etmək üçün lazım olan server proqram təminatı dəsti (LAMP = Linux, Apache, MySQL, PHP) olan hazır LAMP yığınını seçib quraşdırmalısınız.

Xeyriyyəçilik üçün Bulud: Miqrasiya Bələdçisi
Xeyriyyəçilik üçün Bulud: Miqrasiya Bələdçisi
Xeyriyyəçilik üçün Bulud: Miqrasiya Bələdçisi
Müvafiq server konfiqurasiyasını seçin və yeni SSH açarı yaradın. “Quraşdır” düyməsini kliklədikdən sonra serverin və LAMP yığınının quraşdırılması başlayacaq, bu bir az vaxt aparacaq. Sistem həmçinin konsol vasitəsilə virtual maşını idarə etmək, onu saxlamaq üçün kompüterinizə şəxsi açar yükləməyi təklif edəcək.

Tətbiqi quraşdırdıqdan sonra dərhal firewall quraşdıraq, bu da şəxsi hesabınızda edilir: “Bulud hesablamaları -> Virtual maşınlar” bölməsinə keçin və “Firewall qurulması” seçin:

Xeyriyyəçilik üçün Bulud: Miqrasiya Bələdçisi
Siz port 80 və 9997 vasitəsilə daxil olan trafik üçün icazə əlavə etməlisiniz. Bu, gələcəkdə SSL sertifikatlarını quraşdırmaq və phpMyAdmin ilə işləmək üçün lazımdır. Nəticədə, qaydalar toplusu belə görünməlidir:

Xeyriyyəçilik üçün Bulud: Miqrasiya Bələdçisi
İndi SSH protokolundan istifadə edərək komanda xətti ilə serverinizə qoşula bilərsiniz. Bunu etmək üçün kompüterinizdə SSH düyməsini və serverinizin xarici IP ünvanını göstərərək aşağıdakı əmri yazın (onu "Virtual maşınlar" bölməsində tapa bilərsiniz):

$ ssh -i /путь/к/ключу/key.pem ubuntu@<ip_сервера>

Serverə ilk dəfə qoşulduqda, bütün cari yeniləmələri ona quraşdırmaq və onu yenidən yükləmək tövsiyə olunur. Bunu etmək üçün aşağıdakı əmrləri yerinə yetirin:

$ sudo apt-get update

Sistem yeniləmələrin siyahısını alacaq, onları bu əmrdən istifadə edərək quraşdıracaq və təlimatlara əməl edin:

$ sudo apt-get upgrade

Yeniləmələri quraşdırdıqdan sonra serveri yenidən başladın:

$ sudo reboot

Addım 2: Virtual hostları qurun

Bir çox qeyri-kommersiya təşkilatı eyni vaxtda bir neçə domen və ya alt domen saxlamalıdır (məsələn, əsas vebsayt və tanıtım kampaniyaları üçün bir neçə açılış səhifəsi və s.). Bütün bunları bir neçə virtual host yaratmaqla rahatlıqla bir serverə yerləşdirmək olar.

Əvvəlcə ziyarətçilərə göstəriləcək saytlar üçün kataloq strukturu yaratmalıyıq. Bəzi kataloqlar yaradaq:

$ sudo mkdir -p /var/www/a-dobra.ru/public_html

$ sudo mkdir -p /var/www/promo.a-dobra.ru/public_html

Və cari istifadəçinin sahibini göstərin:

$ sudo chown -R $USER:$USER /var/www/a-dobra.ru/public_html

$ sudo chown -R $USER:$USER /var/www/promo.a-dobra.ru/public_html

Dəyişən $USER hazırda daxil olduğunuz istifadəçi adını ehtiva edir (defolt olaraq bu istifadəçidir ubuntu). İndi cari istifadəçi məzmunu saxlayacağımız public_html qovluqlarına sahibdir.

Paylaşılan veb qovluğuna və onun ehtiva etdiyi bütün fayl və qovluqlara oxumağa icazə verildiyinə əmin olmaq üçün icazələri bir az redaktə etməliyik. Bu, sayt səhifələrinin düzgün göstərilməsi üçün lazımdır:

$ sudo chmod -R 755 /var/www

Veb serveriniz indi məzmunu göstərmək üçün lazım olan icazələrə sahib olmalıdır. Bundan əlavə, istifadəçiniz artıq tələb olunan kataloqlarda məzmun yaratmaq imkanına malikdir.

Artıq /var/www/html qovluğunda index.php faylı var, gəlin onu yeni qovluqlarımıza köçürək – bu, hələlik bizim məzmunumuz olacaq:

$ cp /var/www/html/index.php /var/www/a-dobra.ru/public_html/index.php

$ cp /var/www/html/index.php /var/www/promo.a-dobra.ru/public_html/index.php

İndi istifadəçinin saytınıza daxil ola biləcəyinə əmin olmalısınız. Bunun üçün biz ilk növbədə Apache veb serverinin müxtəlif domenlərə edilən sorğulara necə cavab verəcəyini müəyyən edən virtual host fayllarını konfiqurasiya edəcəyik.

Varsayılan olaraq, Apache'nin başlanğıc nöqtəsi kimi istifadə edə biləcəyimiz 000-default.conf virtual host faylı var. Domenlərimizin hər biri üçün virtual host faylları yaratmaq üçün bunu kopyalayacağıq. Biz bir domenlə başlayacağıq, onu konfiqurasiya edəcəyik, başqa domenə kopyalayacağıq və sonra yenidən lazımi redaktələri edəcəyik.

Ubuntu-nun standart konfiqurasiyası hər bir virtual host faylının *.conf uzantısına malik olmasını tələb edir.

Birinci domen üçün faylı kopyalayaraq başlayaq:

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/a-dobra.ru.conf

Kök hüquqları olan redaktorda yeni fayl açın:

$ sudo nano /etc/apache2/sites-available/a-dobra.ru.conf

80 portunu göstərərək, məlumatları aşağıdakı kimi redaktə edin ServerAdmin, ServerName, ServerAlias, həmçinin saytınızın kök qovluğuna gedən yol kimi faylı yadda saxlayın (Ctrl+X, sonra Y):

<VirtualHost *:80>
 
    ServerAdmin [email protected]
    ServerName a-dobra.ru
    ServerAlias www.a-dobra.ru
 
    DocumentRoot /var/www/a-dobra.ru/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
 
    <Directory /var/www/a-dobra.ru/public_html>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
 
    <FilesMatch .php$>
        SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
    </FilesMatch>
 
</VirtualHost>

ServerName virtual host adına uyğun gəlməli olan əsas domeni təyin edir. Bu sizin domen adınız olmalıdır. İkinci, ServerAlias, əsas domen kimi şərh edilməli olan digər adları müəyyənləşdirir. Bu, əlavə domen adlarından istifadə etmək üçün əlverişlidir, məsələn, www.

Gəlin bu konfiqurasiyanı başqa host üçün kopyalayaq və eyni şəkildə redaktə edək:

$ sudo cp /etc/apache2/sites-available/a-dobra.ru.conf /etc/apache2/sites-available/promo.a-dobra.ru.conf

Veb saytlarınız üçün istədiyiniz qədər kataloq və virtual host yarada bilərsiniz! İndi virtual host fayllarımızı yaratdığımız üçün onları aktivləşdirməliyik. Saytlarımızın hər birini aşağıdakı kimi aktivləşdirmək üçün a2ensite yardım proqramından istifadə edə bilərik:

$ sudo a2ensite a-dobra.ru.conf

$ sudo a2ensite promo.a-dobra.ru.conf 

Varsayılan olaraq, port 80 LAMP-də bağlıdır və SSL sertifikatı quraşdırmaq üçün bizə daha sonra lazım olacaq. Beləliklə, gəlin dərhal ports.conf faylını redaktə edək və sonra Apache-ni yenidən başladın:

$ sudo nano /etc/apache2/ports.conf

Yeni sətir əlavə edin və faylı yadda saxlayın ki, belə görünsün:

Listen 80
Listen 443
Listen 9997

Parametrləri tamamladıqdan sonra bütün dəyişikliklərin qüvvəyə minməsi üçün Apache-ni yenidən başlatmalısınız:

$ sudo systemctl reload apache2

Addım 3: Domen adlarını qurun

Sonra, yeni serverinizə işarə edəcək DNS qeydlərini əlavə etməlisiniz. Domenləri idarə etmək üçün Yaxşı Arifmetika Fondumuz dns-master.ru xidmətindən istifadə edir, biz bunu bir nümunə ilə göstərəcəyik.

Əsas domen üçün A-rekordunun qurulması adətən aşağıdakı kimi göstərilir (imza @):

Xeyriyyəçilik üçün Bulud: Miqrasiya Bələdçisi
Subdomenlər üçün A rekordu adətən bu kimi göstərilir:

Xeyriyyəçilik üçün Bulud: Miqrasiya Bələdçisi
IP ünvanı yeni yaratdığımız Linux serverinin ünvanıdır. TTL = 3600 təyin edə bilərsiniz.

Bir müddət sonra saytınıza daxil olmaq mümkün olacaq, lakin hələlik yalnız vasitəsilə http://. Növbəti addımda biz dəstək əlavə edəcəyik https://.

Addım 4: Pulsuz SSL sertifikatları qurun

Siz əsas saytınız və bütün subdomenlər üçün pulsuz Let's Encrypt SSL sertifikatları əldə edə bilərsiniz. Siz həmçinin onların avtomatik yenilənməsini konfiqurasiya edə bilərsiniz, bu çox rahatdır. SSL sertifikatlarını əldə etmək üçün serverinizdə Certbot quraşdırın:

$ sudo add-apt-repository ppa:certbot/certbot

Apache üçün Certbot paketini istifadə edərək quraşdırın apt:

$ sudo apt install python-certbot-apache 

İndi Certbot istifadəyə hazırdır, əmri yerinə yetirin:

$ sudo certbot --apache -d a-dobra.ru -d www.a-dobra.ru -d promo.a-dobra.ru

Bu əmr certbot, düymələri işlədir -d sertifikatın verilməli olduğu domenlərin adlarını müəyyənləşdirin.

Əgər certbot-u ilk dəfə işə salırsınızsa, sizdən e-poçt ünvanınızı daxil etməyiniz və xidmətdən istifadə şərtləri ilə razılaşmağınız xahiş olunacaq. certbot daha sonra Let's Encrypt serveri ilə əlaqə saxlayacaq və sonra sertifikatı tələb etdiyiniz domeni həqiqətən idarə etdiyinizi yoxlayacaq.

Hər şey qaydasındadırsa, certbot HTTPS konfiqurasiyasını necə konfiqurasiya etmək istədiyinizi soruşacaq:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

2-ci variantı seçməyi və ENTER düyməsini basmağı tövsiyə edirik. Dəyişiklikləri tətbiq etmək üçün konfiqurasiya yenilənəcək və Apache yenidən işə salınacaq.

Sertifikatlarınız indi endirilib, quraşdırılıb və işləyir. Saytınızı https:// ilə yenidən yükləməyə cəhd edin və brauzerinizdə təhlükəsizlik işarəsini görəcəksiniz. Serverinizi sınaqdan keçirsəniz SSL Labs Server Testi, o, A qiyməti alacaq.

Let's Encrypt sertifikatları yalnız 90 gün ərzində etibarlıdır, lakin indicə quraşdırdığımız certbot paketi sertifikatları avtomatik yeniləyəcək. Yeniləmə prosesini sınamaq üçün certbot-un quru işini edə bilərik:

$ sudo certbot renew --dry-run 

Bu əmrin icrası nəticəsində hər hansı bir səhv görmürsünüzsə, deməli hər şey işləyir!

Addım 5: MySQL və phpMyAdmin-ə daxil olun

Bir çox saytlar verilənlər bazasından istifadə edirlər. Verilənlər bazasını idarə etmək üçün phpMyAdmin aləti artıq serverimizdə quraşdırılıb. Ona daxil olmaq üçün aşağıdakı kimi bir keçiddən istifadə edərək brauzerinizə keçin:

https://<ip-адрес сервера>:9997

Kök girişi üçün parol MCS şəxsi hesabınızda əldə edilə bilər (https://mcs.mail.ru/app/services/marketplace/apps/). İlk dəfə daxil olanda kök parolunuzu dəyişməyi unutmayın!

Addım 6: SFTP vasitəsilə fayl yükləməsini qurun

Tərtibatçılar veb saytınız üçün faylları SFTP vasitəsilə yükləməyi rahat tapacaqlar. Bunu etmək üçün yeni bir istifadəçi yaradacağıq, ona vebmaster zəng edəcəyik:

$ sudo adduser webmaster

Sistem sizdən parol təyin etməyi və bəzi digər məlumatları daxil etməyi xahiş edəcək.

Kataloqun sahibinin veb saytınızla dəyişdirilməsi:

$ sudo chown -R webmaster:webmaster /var/www/a-dobra.ru/public_html

İndi SSH konfiqurasiyasını dəyişdirək ki, yeni istifadəçi SSH terminalına deyil, yalnız SFTP-yə çıxış əldə etsin:

$ sudo nano /etc/ssh/sshd_config

Konfiqurasiya faylının ən sonuna gedin və aşağıdakı bloku əlavə edin:

Match User webmaster
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/www/a-dobra.ru
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

Faylı yadda saxlayın və xidməti yenidən başladın:

$ sudo systemctl restart sshd

İndi serverə istənilən SFTP müştərisi vasitəsilə, məsələn, FileZilla vasitəsilə qoşula bilərsiniz.

Ümumi

  1. İndi eyni server daxilində yeni kataloqlar yaratmağı və veb saytlarınız üçün virtual hostları konfiqurasiya etməyi bilirsiniz.
  2. Siz asanlıqla lazımi SSL sertifikatlarını yarada bilərsiniz - bu pulsuzdur və onlar avtomatik olaraq yenilənəcək.
  3. Siz tanış phpMyAdmin vasitəsilə MySQL verilənlər bazası ilə rahat işləyə bilərsiniz.
  4. Yeni SFTP hesablarının yaradılması və giriş hüquqlarının qurulması çox səy tələb etmir. Bu cür hesablar üçüncü tərəfin veb tərtibatçılarına və sayt administratorlarına verilə bilər.
  5. Sistemi vaxtaşırı yeniləməyi unutmayın və biz də ehtiyat nüsxələri çıxarmağı məsləhət görürük - MCS-də bir kliklə bütün sistemin "şəkillərini" çəkə və lazım olduqda bütün şəkilləri işə sala bilərsiniz.

Faydalı ola biləcək istifadə olunan resurslar:

https://www.digitalocean.com/community/tutorials/apache-ubuntu-14-04-lts-ru
https://www.digitalocean.com/community/tutorials/apache-let-s-encrypt-ubuntu-18-04-ru
https://www.digitalocean.com/community/tutorials/how-to-enable-sftp-without-shell-access-on-ubuntu-18-04

Yeri gəlmişkən, burada Siz VC-də oxuya bilərsiniz ki, fondumuz MCS buluduna əsaslanaraq kimsəsiz uşaqlar üçün onlayn təhsil platformasını necə yerləşdirib.

Mənbə: www.habr.com

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