Ոչ վաղ անցյալում Mail.Ru Cloud Solutions (MCS) և Dobro Mail.Ru ծառայությունը գործարկել են նախագիծը «
Վավերացումն անցնելուց հետո NPO-ն կարող է ստանալ վիրտուալ հզորություն MCS-ից, սակայն հետագա կոնֆիգուրացիան պահանջում է որոշակի որակավորում: Այս նյութում մենք ցանկանում ենք կիսվել հատուկ հրահանգներով Ubuntu Linux-ի վրա հիմնված սերվերի ստեղծման համար՝ հիմնական հիմնադրամի կայքը և մի շարք ենթադոմեյններ գործարկելու համար՝ օգտագործելով անվճար SSL վկայագրեր: Շատերի համար սա պարզ ուղեցույց կլինի, բայց մենք հուսով ենք, որ մեր փորձը օգտակար կլինի այլ ոչ առևտրային կազմակերպությունների համար, և ոչ միայն:
FYIԻ՞նչ կարող եք ստանալ MCS-ից: 4 պրոցեսոր, 32 ԳԲ օպերատիվ հիշողություն, 1 ՏԲ HDD, Ubuntu Linux OS, 500 ԳԲ օբյեկտների պահեստավորում:
Քայլ 1. գործարկել վիրտուալ սերվերը
Եկեք ուղղակիորեն անցնենք կետին և ստեղծենք մեր վիրտուալ սերվերը (նույնպես «օրինակ») ձեր MCS անձնական հաշվում: Հավելվածների խանութում դուք պետք է ընտրեք և տեղադրեք պատրաստի LAMP ստեկը, որը սերվերի ծրագրաշարի մի շարք է (LAMP = Linux, Apache, MySQL, PHP), որն անհրաժեշտ է կայքերի մեծամասնությունը գործարկելու համար:
Ընտրեք համապատասխան սերվերի կոնֆիգուրացիան և ստեղծեք նոր SSH բանալի: «Տեղադրել» կոճակը սեղմելուց հետո կսկսվի սերվերի և LAMP փաթեթի տեղադրումը, դա որոշ ժամանակ կպահանջի: Համակարգը նաև կառաջարկի ներբեռնել անձնական բանալի ձեր համակարգչում՝ վիրտուալ մեքենան վահանակի միջոցով կառավարելու համար, պահպանել այն:
Հավելվածը տեղադրելուց հետո եկեք անմիջապես կարգավորենք firewall-ը, դա արվում է նաև ձեր անձնական հաշվում՝ անցեք «Cloud computing -> Virtual machines» բաժինը և ընտրեք «Setting the firewall»:
Ձեզ անհրաժեշտ է մուտքային տրաֆիկի թույլտվություն ավելացնել 80 և 9997 նավահանգիստների միջոցով: Սա անհրաժեշտ է ապագայում SSL վկայագրերը տեղադրելու և phpMyAdmin-ի հետ աշխատելու համար։ Արդյունքում, կանոնների հավաքածուն պետք է այսպիսի տեսք ունենա.
Այժմ դուք կարող եք միանալ ձեր սերվերին հրամանի տողի միջոցով՝ օգտագործելով 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-գրառման ստեղծումը սովորաբար նշվում է հետևյալ կերպ (նշան @
):
Ենթադոմեյնների համար A գրառումը սովորաբար նշվում է այսպես.
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://-ով և ձեր դիտարկիչում կտեսնեք անվտանգության պատկերակը: Եթե փորձարկեք ձեր սերվերը
Եկեք գաղտնագրենք վկայագրերը վավերական են միայն 90 օրվա ընթացքում, սակայն մեր նոր տեղադրած certbot փաթեթը ավտոմատ կերպով կթարմացնի վկայագրերը: Թարմացման գործընթացը փորձարկելու համար մենք կարող ենք կատարել certbot-ի չոր գործարկում.
$ sudo certbot renew --dry-run
Եթե այս հրամանը գործարկելու արդյունքում սխալներ չեք տեսնում, ապա ամեն ինչ աշխատում է:
Քայլ 5. Մուտք գործեք MySQL և phpMyAdmin
Շատ կայքեր օգտագործում են տվյալների բազաներ: Տվյալների բազայի կառավարման phpMyAdmin գործիքն արդեն տեղադրված է մեր սերվերում: Այն մուտք գործելու համար անցեք ձեր դիտարկիչ՝ օգտագործելով հետևյալ հղումը.
https://<ip-адрес сервера>:9997
Root մուտքի գաղտնաբառը կարելի է ձեռք բերել ձեր MCS անձնական հաշվում (
Քայլ 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-ի միջոցով:
Լրիվ
- Այժմ դուք գիտեք, թե ինչպես ստեղծել նոր դիրեկտորիաներ և կարգավորել վիրտուալ հոսթեր ձեր կայքերի համար նույն սերվերում:
- Դուք կարող եք հեշտությամբ ստեղծել անհրաժեշտ SSL վկայագրերը. դա անվճար է, և դրանք ինքնաբերաբար կթարմացվեն:
- Դուք կարող եք հարմարավետ աշխատել MySQL տվյալների բազայի հետ ծանոթ phpMyAdmin-ի միջոցով:
- Նոր SFTP հաշիվների ստեղծումը և մուտքի իրավունքի ստեղծումը մեծ ջանքեր չեն պահանջում: Նման հաշիվները կարող են փոխանցվել երրորդ կողմի վեբ մշակողներին և կայքի ադմինիստրատորներին:
- Մի մոռացեք պարբերաբար թարմացնել համակարգը, ինչպես նաև խորհուրդ ենք տալիս կրկնօրինակումներ կատարել. MCS-ում կարող եք մեկ սեղմումով վերցնել ամբողջ համակարգի «պատկերներ», այնուհետև, անհրաժեշտության դեպքում, գործարկել ամբողջական պատկերներ:
Օգտագործված ռեսուրսներ, որոնք կարող են օգտակար լինել.
Ի դեպ,
Source: www.habr.com