Абр барои хайрия: Дастури муҳоҷират

Абр барои хайрия: Дастури муҳоҷират

Чанде пеш, Mail.Ru Cloud Solutions (MCS) ва хидмати Dobro Mail.Ru лоиҳаро оғоз карданд "Абр барои хайрия”, ба шарофати он ташкилотҳои ғайритиҷоратӣ метавонанд захираҳои платформаи абрии MCS-ро ройгон ба даст оранд. Фонди хайрия”Арифметикаи некӣ» дар лоиҳа иштирок намуда, як қисми инфрасохтори худро дар асоси MCS бомуваффақият ҷойгир кард.

Пас аз гузаштани санҷиш, NPO метавонад аз MCS қобилияти виртуалиро гирад, аммо конфигуратсияи минбаъда тахассусҳои муайянро талаб мекунад. Дар ин мавод, мо мехоҳем дастурҳои мушаххасро оид ба таъсиси сервери Ubuntu Linux барои идора кардани вебсайти бунёдӣ ва як қатор зердоменҳо бо истифода аз сертификатҳои SSL ройгон мубодила кунем. Барои бисёриҳо, ин дастури оддӣ хоҳад буд, аммо мо умедворем, ки таҷрибаи мо барои дигар созмонҳои ғайритиҷоратӣ муфид хоҳад буд, на танҳо.

FYI: Шумо аз MCS чӣ гирифта метавонед? 4 CPU, 32 ГБ RAM, 1 TB HDD, Ubuntu Linux OS, нигаҳдории объекти 500 ГБ.

Қадами 1: сервери виртуалиро оғоз кунед

Биёед рост ба ин нукта бирасем ва дар ҳисоби шахсии MCS-и худ сервери маҷозии худро (ба "мисол") созем. Дар мағозаи барномаҳо ба шумо лозим аст, ки стеки тайёри LAMP-ро интихоб ва насб кунед, ки он маҷмӯи нармафзори серверӣ (LAMP = Linux, Apache, MySQL, PHP) барои идора кардани аксари вебсайтҳо зарур аст.

Абр барои хайрия: Дастури муҳоҷират
Абр барои хайрия: Дастури муҳоҷират
Абр барои хайрия: Дастури муҳоҷират
Конфигуратсияи сервери мувофиқро интихоб кунед ва калиди нави SSH эҷод кунед. Пас аз пахш кардани тугмаи "Насб", насби сервер ва стеки LAMP оғоз мешавад, ин каме вақтро мегирад. Система инчунин пешниҳод мекунад, ки калиди хусусиро ба компютери шумо зеркашӣ кунед, то мошини виртуалиро тавассути консол идора кунед, онро захира кунед.

Пас аз насб кардани барнома, биёед фавран брандмауэрро насб кунем, ин дар ҳисоби шахсии шумо низ анҷом дода мешавад: ба бахши "Рёниши абрӣ -> Мошинҳои виртуалӣ" гузаред ва "Танзим кардани девор" -ро интихоб кунед:

Абр барои хайрия: Дастури муҳоҷират
Шумо бояд иҷозат барои трафики воридотӣ тавассути порти 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

Веб-сервери шумо ҳоло бояд иҷозатҳое дошта бошад, ки барои намоиш додани мундариҷа лозим аст. Илова бар ин, корбари шумо ҳоло қобилияти эҷод кардани мундариҷаро дар директорияҳои зарурӣ дорад.

Дар директорияи /var/www/html аллакай файли index.php мавҷуд аст, биёед онро ба директорияҳои нави худ нусхабардорӣ кунем - ин ҳоло мундариҷаи мо хоҳад буд:

$ 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 илова кунед, ки ба сервери нави шумо ишора мекунанд. Барои идоракунии доменҳо, Арифметикаи Бунёди хуби мо хидмати 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, калидҳоро иҷро мекунад -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, вай бахои «А» мегирад.

Биёед сертификатҳоро рамзгузорӣ кунем, танҳо барои 90 рӯз эътибор доранд, аммо бастаи certbot, ки мо нав насб кардем, сертификатҳоро ба таври худкор нав мекунад. Барои санҷидани раванди навсозӣ, мо метавонем як кори хушки certbot-ро иҷро кунем:

$ sudo certbot renew --dry-run 

Агар шумо дар натиҷаи иҷро кардани ин фармон ягон хатогиро набинед, пас ҳама чиз кор мекунад!

Қадами 5: Дастрасӣ ба MySQL ва phpMyAdmin

Бисёр вебсайтҳо аз пойгоҳи додаҳо истифода мебаранд. Асбоби phpMyAdmin барои идоракунии пойгоҳи додаҳо аллакай дар сервери мо насб шудааст. Барои дастрасӣ ба он, ба браузери худ бо истиноди зерин равед:

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

Рамзро барои дастрасии реша дар ҳисоби шахсии 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 ҷойгир кардааст.

Манбаъ: will.com

Илова Эзоҳ