Cloud for Charities. Migration Guide

Cloud for Charities. Migration Guide

Ոչ վաղ անցյալում Mail.Ru Cloud Solutions (MCS) և Dobro Mail.Ru ծառայությունը գործարկել են նախագիծը «Ամպը բարեգործական կազմակերպությունների համար», որի շնորհիվ շահույթ չհետապնդող կազմակերպությունները կարող են անվճար ձեռք բերել MCS ամպային հարթակի ռեսուրսները։ բարեգործական հիմնադրամ»Բարության թվաբանություն» մասնակցել է նախագծին և հաջողությամբ տեղակայել իր ենթակառուցվածքի մի մասը՝ հիմնված MCS-ի վրա:

Վավերացումն անցնելուց հետո NPO-ն կարող է ստանալ վիրտուալ հզորություն MCS-ից, սակայն հետագա կոնֆիգուրացիան պահանջում է որոշակի որակավորում: Այս նյութում մենք ցանկանում ենք կիսվել հատուկ հրահանգներով Ubuntu Linux-ի վրա հիմնված սերվերի ստեղծման համար՝ հիմնական հիմնադրամի կայքը և մի շարք ենթադոմեյններ գործարկելու համար՝ օգտագործելով անվճար SSL վկայագրեր: Շատերի համար սա պարզ ուղեցույց կլինի, բայց մենք հուսով ենք, որ մեր փորձը օգտակար կլինի այլ ոչ առևտրային կազմակերպությունների համար, և ոչ միայն:

FYIԻ՞նչ կարող եք ստանալ MCS-ից: 4 պրոցեսոր, 32 ԳԲ օպերատիվ հիշողություն, 1 ՏԲ HDD, Ubuntu Linux OS, 500 ԳԲ օբյեկտների պահեստավորում:

Քայլ 1. գործարկել վիրտուալ սերվերը

Եկեք ուղղակիորեն անցնենք կետին և ստեղծենք մեր վիրտուալ սերվերը (նույնպես «օրինակ») ձեր MCS անձնական հաշվում: Հավելվածների խանութում դուք պետք է ընտրեք և տեղադրեք պատրաստի LAMP ստեկը, որը սերվերի ծրագրաշարի մի շարք է (LAMP = Linux, Apache, MySQL, PHP), որն անհրաժեշտ է կայքերի մեծամասնությունը գործարկելու համար:

Cloud for Charities. Migration Guide
Cloud for Charities. Migration Guide
Cloud for Charities. Migration Guide
Ընտրեք համապատասխան սերվերի կոնֆիգուրացիան և ստեղծեք նոր SSH բանալի: «Տեղադրել» կոճակը սեղմելուց հետո կսկսվի սերվերի և LAMP փաթեթի տեղադրումը, դա որոշ ժամանակ կպահանջի: Համակարգը նաև կառաջարկի ներբեռնել անձնական բանալի ձեր համակարգչում՝ վիրտուալ մեքենան վահանակի միջոցով կառավարելու համար, պահպանել այն:

Հավելվածը տեղադրելուց հետո եկեք անմիջապես կարգավորենք firewall-ը, դա արվում է նաև ձեր անձնական հաշվում՝ անցեք «Cloud computing -> Virtual machines» բաժինը և ընտրեք «Setting the firewall»:

Cloud for Charities. Migration Guide
Ձեզ անհրաժեշտ է մուտքային տրաֆիկի թույլտվություն ավելացնել 80 և 9997 նավահանգիստների միջոցով: Սա անհրաժեշտ է ապագայում SSL վկայագրերը տեղադրելու և phpMyAdmin-ի հետ աշխատելու համար։ Արդյունքում, կանոնների հավաքածուն պետք է այսպիսի տեսք ունենա.

Cloud for Charities. Migration Guide
Այժմ դուք կարող եք միանալ ձեր սերվերին հրամանի տողի միջոցով՝ օգտագործելով SSH արձանագրությունը: Դա անելու համար մուտքագրեք հետևյալ հրամանը՝ մատնացույց անելով ձեր համակարգչի SSH ստեղնը և ձեր սերվերի արտաքին IP հասցեն (այն կարող եք գտնել «Վիրտուալ մեքենաներ» բաժնում).

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

Սերվերին առաջին անգամ միանալիս խորհուրդ է տրվում տեղադրել բոլոր ընթացիկ թարմացումները և վերագործարկել այն: Դա անելու համար գործարկեք հետևյալ հրամանները.

$ sudo apt-get update

Համակարգը կստանա թարմացումների ցանկ, կտեղադրի դրանք՝ օգտագործելով այս հրամանը և հետևիր հրահանգներին.

$ sudo apt-get upgrade

Թարմացումները տեղադրելուց հետո վերագործարկեք սերվերը.

$ sudo reboot

Քայլ 2. Ստեղծեք վիրտուալ հոսթեր

Շատ շահույթ չհետապնդող կազմակերպություններ պետք է միաժամանակ պահպանեն մի քանի տիրույթներ կամ ենթադոմեյններ (օրինակ՝ հիմնական կայք և մի քանի վայրէջք էջեր գովազդային արշավների համար և այլն): Այս ամենը կարելի է հարմար տեղավորել մեկ սերվերում՝ ստեղծելով մի քանի վիրտուալ հոսթ:

Նախ պետք է ստեղծել գրացուցակի կառուցվածք այն կայքերի համար, որոնք կցուցադրվեն այցելուներին: Եկեք ստեղծենք մի քանի գրացուցակներ.

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

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

Եվ նշեք ընթացիկ օգտվողի սեփականատիրոջը.

$ 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

Փոփոխական $USER պարունակում է օգտվողի անունը, որով դուք ներկայումս մուտք եք գործել (լռելյայն սա օգտվողն է ubuntu). Այժմ ներկայիս օգտվողին են պատկանում public_html դիրեկտորիաները, որտեղ մենք կպահենք բովանդակությունը:

Մենք նաև պետք է մի փոքր խմբագրենք թույլտվությունները, որպեսզի համոզվենք, որ ընթերցման հասանելիությունը թույլատրված է ընդհանուր վեբ գրացուցակում և դրա պարունակած բոլոր ֆայլերին ու թղթապանակներին: Սա անհրաժեշտ է կայքի էջերը ճիշտ ցուցադրելու համար.

$ sudo chmod -R 755 /var/www

Ձեր վեբ սերվերն այժմ պետք է ունենա բովանդակությունը ցուցադրելու համար անհրաժեշտ թույլտվությունները: Բացի այդ, ձեր օգտվողն այժմ հնարավորություն ունի ստեղծելու բովանդակություն անհրաժեշտ դիրեկտորիաներում:

Արդեն կա index.php ֆայլ /var/www/html գրացուցակում, եկեք պատճենենք այն մեր նոր դիրեկտորիաներում. այս պահին մեր բովանդակությունը կլինի.

$ 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

Այժմ դուք պետք է համոզվեք, որ օգտվողը կարող է մուտք գործել ձեր կայք: Դա անելու համար մենք նախ կկարգավորենք վիրտուալ հոսթ ֆայլերը, որոնք որոշում են, թե ինչպես է Apache վեբ սերվերը արձագանքելու տարբեր տիրույթների հարցումներին:

Լռելյայնորեն, Apache-ն ունի վիրտուալ հոսթ ֆայլ 000-default.conf, որը մենք կարող ենք օգտագործել որպես ելակետ: Մենք պատրաստվում ենք պատճենել սա՝ մեր յուրաքանչյուր տիրույթի համար վիրտուալ հոսթ ֆայլեր ստեղծելու համար: Մենք կսկսենք մեկ տիրույթից, կկարգավորենք այն, պատճենենք այն մեկ այլ տիրույթում և նորից կկատարենք անհրաժեշտ խմբագրումները:

Ubuntu-ի լռելյայն կոնֆիգուրացիան պահանջում է, որ յուրաքանչյուր վիրտուալ հոսթ ֆայլ ունենա *.conf ընդլայնում:

Սկսենք պատճենելով ֆայլը առաջին տիրույթի համար.

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

Բացեք նոր ֆայլ խմբագրիչում արմատային իրավունքներով.

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

Խմբագրեք տվյալները հետևյալ կերպ՝ նշելով 80-րդ նավահանգիստը՝ ձեր տվյալները ServerAdmin, ServerName, ServerAlias, ինչպես նաև դեպի ձեր կայքի արմատական ​​գրացուցակի ուղին, պահեք ֆայլը (Ctrl+X, ապա 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 սահմանում է առաջնային տիրույթը, որը պետք է համապատասխանի վիրտուալ հոսթի անվանը: Սա պետք է լինի ձեր տիրույթի անունը: Երկրորդ, ServerAlias, սահմանում է այլ անուններ, որոնք պետք է մեկնաբանվեն որպես առաջնային տիրույթ: Սա հարմար է լրացուցիչ տիրույթի անուններ օգտագործելու համար, օրինակ՝ օգտագործելով www.

Եկեք պատճենենք այս կազմաձևը մեկ այլ հոսթի համար և նույնպես խմբագրենք այն նույն կերպ.

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

Դուք կարող եք ստեղծել այնքան դիրեկտորիաներ և վիրտուալ հոսթեր ձեր կայքերի համար, որքան ցանկանում եք: Այժմ, երբ մենք ստեղծել ենք մեր վիրտուալ հյուրընկալող ֆայլերը, մենք պետք է միացնենք դրանք: Մենք կարող ենք օգտագործել a2ensite կոմունալը, որպեսզի մեր կայքերից յուրաքանչյուրն ակտիվացնենք այսպես.

$ sudo a2ensite a-dobra.ru.conf

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

Լռելյայնորեն, 80 նավահանգիստը փակ է LAMP-ում, և այն մեզ ավելի ուշ պետք կգա SSL վկայական տեղադրելու համար: Այսպիսով, եկեք անմիջապես խմբագրենք ports.conf ֆայլը և այնուհետև վերագործարկենք Apache-ն:

$ sudo nano /etc/apache2/ports.conf

Ավելացրեք նոր տող և պահեք ֆայլը, որպեսզի ստացվի հետևյալ տեսքը.

Listen 80
Listen 443
Listen 9997

Կարգավորումներն ավարտելուց հետո դուք պետք է վերագործարկեք Apache-ն, որպեսզի բոլոր փոփոխություններն ուժի մեջ մտնեն.

$ sudo systemctl reload apache2

Քայլ 3. Ստեղծեք տիրույթի անուններ

Հաջորդը, դուք պետք է ավելացնեք DNS գրառումները, որոնք մատնանշում են ձեր նոր սերվերը: Դոմենները կառավարելու համար մեր Arithmetic of Good հիմնադրամն օգտագործում է dns-master.ru ծառայությունը, մենք դա ցույց կտանք օրինակով։

Հիմնական տիրույթի համար A-գրառման ստեղծումը սովորաբար նշվում է հետևյալ կերպ (նշան @):

Cloud for Charities. Migration Guide
Ենթադոմեյնների համար A գրառումը սովորաբար նշվում է այսպես.

Cloud for Charities. Migration Guide
IP հասցեն մեր նոր ստեղծած Linux սերվերի հասցեն է: Դուք կարող եք նշել TTL = 3600:

Որոշ ժամանակ անց հնարավոր կլինի այցելել ձեր կայք, բայց առայժմ միայն միջոցով http://. Հաջորդ քայլում մենք կավելացնենք աջակցություն https://.

Քայլ 4. Ստեղծեք անվճար SSL վկայագրեր

Դուք կարող եք անվճար ստանալ Let's Encrypt SSL վկայականներ ձեր հիմնական կայքի և բոլոր ենթադոմեյնների համար: Կարող եք նաև կարգավորել դրանց ավտոմատ թարմացումը, ինչը շատ հարմար է։ SSL վկայագրեր ստանալու համար ձեր սերվերի վրա տեղադրեք Certbot.

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

Տեղադրեք Certbot փաթեթը Apache-ի համար՝ օգտագործելով apt:

$ sudo apt install python-certbot-apache 

Այժմ Certbot-ը պատրաստ է օգտագործման, գործարկեք հրամանը.

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

Այս հրամանը գործարկում է certbot, keys -d սահմանել այն տիրույթների անվանումները, որոնց համար պետք է տրվի վկայականը:

Եթե ​​առաջին անգամ եք գործարկում certbot-ը, ձեզանից կպահանջվի մուտքագրել ձեր էլ. հասցեն և համաձայնել ծառայության օգտագործման պայմաններին: Այնուհետև certbot-ը կկապվի Let's Encrypt սերվերի հետ և կհաստատի, որ դուք իրականում վերահսկում եք այն տիրույթը, որի համար պահանջել եք վկայականը:

Եթե ​​ամեն ինչ լավ ընթանա, certbot-ը կհարցնի, թե ինչպես եք ցանկանում կարգավորել HTTPS կոնֆիգուրացիան.

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-րդ տարբերակը և սեղմել ENTER: Կազմաձևը կթարմացվի, և Apache-ն կվերագործարկվի փոփոխությունները կիրառելու համար:

Ձեր վկայականներն այժմ ներբեռնված են, տեղադրվել և աշխատում են: Փորձեք վերաբեռնել ձեր կայքը https://-ով և ձեր դիտարկիչում կտեսնեք անվտանգության պատկերակը: Եթե ​​փորձարկեք ձեր սերվերը SSL Labs սերվերի փորձարկում, նա կստանա A գնահատական։

Եկեք գաղտնագրենք վկայագրերը վավերական են միայն 90 օրվա ընթացքում, սակայն մեր նոր տեղադրած certbot փաթեթը ավտոմատ կերպով կթարմացնի վկայագրերը: Թարմացման գործընթացը փորձարկելու համար մենք կարող ենք կատարել certbot-ի չոր գործարկում.

$ sudo certbot renew --dry-run 

Եթե ​​այս հրամանը գործարկելու արդյունքում սխալներ չեք տեսնում, ապա ամեն ինչ աշխատում է:

Քայլ 5. Մուտք գործեք MySQL և phpMyAdmin

Շատ կայքեր օգտագործում են տվյալների բազաներ: Տվյալների բազայի կառավարման phpMyAdmin գործիքն արդեն տեղադրված է մեր սերվերում: Այն մուտք գործելու համար անցեք ձեր դիտարկիչ՝ օգտագործելով հետևյալ հղումը.

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

Root մուտքի գաղտնաբառը կարելի է ձեռք բերել ձեր MCS անձնական հաշվում (https://mcs.mail.ru/app/services/marketplace/apps/) Մի մոռացեք փոխել ձեր արմատային գաղտնաբառը առաջին անգամ մուտք գործելիս:

Քայլ 6. Կարգավորեք ֆայլի վերբեռնումը SFTP-ի միջոցով

Մշակողները հարմար կգտնեն ձեր կայքի համար ֆայլեր վերբեռնել SFTP-ի միջոցով: Դա անելու համար մենք կստեղծենք նոր օգտատեր, նրան անվանեք վեբ վարպետ.

$ sudo adduser webmaster

Համակարգը ձեզ կխնդրի գաղտնաբառ սահմանել և մի քանի այլ տվյալներ մուտքագրել:

Գրացուցակի սեփականատիրոջը փոխելը ձեր կայքի միջոցով.

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

Այժմ եկեք փոխենք SSH-ի կազմաձևը, որպեսզի նոր օգտվողը մուտք ունենա միայն SFTP և ոչ թե SSH տերմինալ:

$ sudo nano /etc/ssh/sshd_config

Ոլորեք կազմաձևման ֆայլի վերջը և ավելացրեք հետևյալ բլոկը.

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

Պահպանեք ֆայլը և վերագործարկեք ծառայությունը.

$ sudo systemctl restart sshd

Այժմ դուք կարող եք միանալ սերվերին ցանկացած SFTP հաճախորդի միջոցով, օրինակ՝ FileZilla-ի միջոցով:

Լրիվ

  1. Այժմ դուք գիտեք, թե ինչպես ստեղծել նոր դիրեկտորիաներ և կարգավորել վիրտուալ հոսթեր ձեր կայքերի համար նույն սերվերում:
  2. Դուք կարող եք հեշտությամբ ստեղծել անհրաժեշտ SSL վկայագրերը. դա անվճար է, և դրանք ինքնաբերաբար կթարմացվեն:
  3. Դուք կարող եք հարմարավետ աշխատել MySQL տվյալների բազայի հետ ծանոթ phpMyAdmin-ի միջոցով:
  4. Նոր SFTP հաշիվների ստեղծումը և մուտքի իրավունքի ստեղծումը մեծ ջանքեր չեն պահանջում: Նման հաշիվները կարող են փոխանցվել երրորդ կողմի վեբ մշակողներին և կայքի ադմինիստրատորներին:
  5. Մի մոռացեք պարբերաբար թարմացնել համակարգը, ինչպես նաև խորհուրդ ենք տալիս կրկնօրինակումներ կատարել. MCS-ում կարող եք մեկ սեղմումով վերցնել ամբողջ համակարգի «պատկերներ», այնուհետև, անհրաժեշտության դեպքում, գործարկել ամբողջական պատկերներ:

Օգտագործված ռեսուրսներ, որոնք կարող են օգտակար լինել.

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

Ի դեպ, այստեղ Դուք կարող եք կարդալ VC-ում, թե ինչպես մեր հիմնադրամը տեղադրեց հարթակ որբերի առցանց կրթության համար՝ հիմնված MCS ամպի վրա:

Source: www.habr.com

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