Cloud for Charities: Alakaʻi Migration

Cloud for Charities: Alakaʻi Migration

ʻAʻole i liʻuliʻu, ua hoʻokumu ʻo Mail.Ru Cloud Solutions (MCS) a me ka lawelawe Dobro Mail.Ru i ka papahana "Ao no na hana aloha", mahalo i hiki i nā hui waiwai ʻole ke loaʻa nā kumuwaiwai o ka MCS cloud platform no ka manuahi. Aloha Aloha "Heluhelu o ka maikai» ua komo i loko o ka papahana a ua hoʻolālā maikaʻi i kahi ʻāpana o kāna ʻoihana ma muli o MCS.

Ma hope o ka hala ʻana i ka hōʻoia, hiki i kahi NPO ke loaʻa i ka mana virtual mai MCS, akā pono ka hoʻonohonoho hou ʻana i kekahi mau ʻike. Ma kēia kumuhana, makemake mākou e kaʻana like i nā kuhikuhi kikoʻī no ka hoʻonohonoho ʻana i kahi kikowaena Ubuntu Linux-based e holo i ka pūnaewele kumu nui a me kekahi mau subdomains e hoʻohana ana i nā palapala SSL manuahi. No nā poʻe he nui, he alakaʻi maʻalahi kēia, akā ke manaʻo nei mākou e pono kā mākou ʻike no nā hui ʻoihana ʻole ʻē aʻe, ʻaʻole wale.

FYI: He aha kāu e loaʻa mai MCS? 4 PPU, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB waiho mea.

KaʻAnuʻu Hana 1: hoʻomaka i ka kikowaena kikowaena

E hele pololei kāua i ka helu a hana i kā mākou kikowaena virtual (aka "instance") i kāu moʻokāki pilikino MCS. Ma ka hale kūʻai app, pono ʻoe e koho a hoʻokomo i kahi pūʻulu LAMP i mākaukau, ʻo ia kahi hoʻonohonoho o nā polokalamu kikowaena (LAMP = Linux, Apache, MySQL, PHP) pono e holo i ka hapa nui o nā pūnaewele.

Cloud for Charities: Alakaʻi Migration
Cloud for Charities: Alakaʻi Migration
Cloud for Charities: Alakaʻi Migration
E koho i ka hoʻonohonoho kikowaena kūpono a hana i kahi kī SSH hou. Ma hope o ke kaomi ʻana i ka pihi "Install", e hoʻomaka ka hoʻonohonoho ʻana o ka server a me ka LAMP stack, e lōʻihi ka manawa. E hāʻawi pū ka ʻōnaehana e hoʻoiho i kahi kī pilikino i kāu kamepiula e hoʻokele i ka mīkini virtual ma o ka console, e mālama iā ia.

Ma hope o ka hoʻokomo ʻana i ka noi, e hoʻonohonoho koke i ka pā ahi, hana ʻia kēia i kāu moʻokāki pilikino: hele i ka ʻāpana "Cloud computing -> Virtual machines" a koho i ka "Setting the firewall":

Cloud for Charities: Alakaʻi Migration
Pono ʻoe e hoʻohui i ka ʻae no ka hele ʻana mai ma o ke awa 80 a me 9997. Pono kēia i ka wā e hiki mai ana e hoʻokomo i nā palapala SSL a e hana pū me phpMyAdmin. ʻO ka hopena, e like me kēia ka hoʻonohonoho o nā lula:

Cloud for Charities: Alakaʻi Migration
I kēia manawa hiki iā ʻoe ke hoʻohui i kāu kikowaena ma o ka laina kauoha me ka hoʻohana ʻana i ka protocol SSH. No ka hana ʻana i kēia, kaomi i kēia kauoha, e kuhikuhi ana i ke kī SSH ma kāu kamepiula a me ka IP IP waho o kāu kikowaena (hiki iā ʻoe ke loaʻa iā ia ma ka ʻāpana "Mīkini Virtual"):

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

I ka hoʻohui ʻana i ke kikowaena no ka manawa mua, ʻōlelo ʻia e hoʻokomo i nā mea hou i kēia manawa a hoʻomaka hou. No ka hana ʻana i kēia, e holo i kēia mau kauoha:

$ sudo apt-get update

E loaʻa i ka ʻōnaehana kahi papa inoa o nā mea hou, e hoʻokomo iā lākou me ka hoʻohana ʻana i kēia kauoha a hahai i nā kuhikuhi:

$ sudo apt-get upgrade

Ma hope o ka hoʻokomo ʻana i nā mea hou, e hoʻomaka hou i ke kikowaena:

$ sudo reboot

KaʻAnuʻu Hana 2: E hoʻonohonoho i nā host virtual

Pono ka nui o nā mea waiwai ʻole e mālama i kekahi mau kāʻei kapu a i ʻole subdomains i ka manawa like (no ka laʻana, he pūnaewele nui a me kekahi mau ʻaoʻao pae no nā hoʻolaha hoʻolaha, etc.). Hiki ke hoʻokomo pono ʻia kēia mau mea a pau ma hoʻokahi kikowaena ma ka hana ʻana i kekahi mau host virtual.

Pono mua mākou e hana i kahi papa kuhikuhi no nā pūnaewele e hōʻike ʻia i nā malihini. E hana i kekahi mau papa kuhikuhi:

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

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

A e kuhikuhi i ka mea nona ka mea hoʻohana i kēia manawa:

$ 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

Nā ʻano $USER Aia i loko o ka inoa inoa āu e komo nei i kēia manawa (ʻo ia ka mea hoʻohana ubuntu). No ka mea hoʻohana i kēia manawa nā papa kuhikuhi public_html kahi e mālama ai mākou i ka ʻike.

Pono mākou e hoʻoponopono liʻiliʻi i nā ʻae e hōʻoia i ka ʻae ʻia ʻana o ka heluhelu ʻana i ka papa kuhikuhi pūnaewele kaʻana like a me nā faila a me nā waihona i loko. Pono kēia no nā ʻaoʻao pūnaewele e hōʻike pololei:

$ sudo chmod -R 755 /var/www

Loaʻa i kāu kikowaena pūnaewele nā ​​ʻae e pono ai e hōʻike i ka ʻike. Eia hou, ua hiki i kāu mea hoʻohana ke hana i nā mea i loko o nā papa kuhikuhi i makemake ʻia.

Aia kekahi faila index.php ma ka papa kuhikuhi /var/www/html, e kope kāua ia mea i kā mākou papa kuhikuhi hou - ʻo ia kā mākou ʻike i kēia manawa:

$ 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

I kēia manawa pono ʻoe e hōʻoia e hiki i ka mea hoʻohana ke komo i kāu pūnaewele. No ka hana ʻana i kēia, e hoʻonohonoho mua mākou i nā faila host virtual, ka mea e hoʻoholo ai i ka pane ʻana o ka pūnaewele pūnaewele ʻo Apache i nā noi i nā kikowaena like ʻole.

Ma ka paʻamau, loaʻa iā Apache kahi faila host virtual 000-default.conf hiki iā mākou ke hoʻohana i kahi hoʻomaka. E kope mākou i kēia no ka hana ʻana i nā faila host virtual no kēlā me kēia o kā mākou mau kikowaena. E hoʻomaka mākou me hoʻokahi domain, hoʻonohonoho iā ia, kope iā ia i kahi kikowaena ʻē aʻe, a laila hana hou i nā hoʻoponopono pono.

Pono ka hoʻonohonoho paʻamau o Ubuntu e loaʻa i kēlā me kēia faila host virtual he *.conf extension.

E hoʻomaka kākou ma ke kope ʻana i ka faila no ka waihona mua:

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

E wehe i kahi faila hou ma kahi hoʻoponopono me nā kuleana kumu:

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

Hoʻoponopono i ka ʻikepili e like me kēia, e kuhikuhi ana i ke awa 80, kāu ʻikepili no ServerAdmin, ServerName, ServerAlias, a me ke ala i ka papa kuhikuhi kumu o kāu pūnaewele, mālama i ka faila (Ctrl+X, a laila 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 hoʻonohonoho i ke kikowaena mua, pono e kūlike me ka inoa host virtual. ʻO kou inoa inoa kēia. Ka lua, ServerAlias, wehewehe i nā inoa ʻē aʻe e pono ke unuhi ʻia me he mea lā ʻo ia ke kikowaena mua. He mea maʻalahi kēia no ka hoʻohana ʻana i nā inoa kikowaena hou, no ka laʻana me ka hoʻohana ʻana i www.

E kope kāua i kēia config no kahi mea hoʻokipa ʻē aʻe a hoʻoponopono hoʻi ma ke ʻano like:

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

Hiki iā ʻoe ke hana i nā papa kuhikuhi a me nā host virtual no kāu mau pūnaewele e like me kou makemake! I kēia manawa ua hana mākou i kā mākou faila host virtual, pono mākou e hiki iā lākou. Hiki iā mākou ke hoʻohana i ka pono a2ensite e hiki ai i kēlā me kēia o kā mākou pūnaewele e like me kēia:

$ sudo a2ensite a-dobra.ru.conf

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

Ma ka paʻamau, ua pani ʻia ke awa 80 i LAMP, a pono mākou ma hope e hoʻokomo i kahi palapala SSL. No laila e hoʻoponopono koke kākou i ka faila ports.conf a laila hoʻomaka hou iā Apache:

$ sudo nano /etc/apache2/ports.conf

Hoʻohui i kahi laina hou a mālama i ka faila e like me kēia:

Listen 80
Listen 443
Listen 9997

Ma hope o ka hoʻopau ʻana i nā hoʻonohonoho, pono ʻoe e hoʻomaka hou iā Apache no ka hoʻololi ʻana a pau:

$ sudo systemctl reload apache2

KaʻAnuʻu Hana 3: Hoʻonohonoho i nā inoa kikowaena

A laila, pono ʻoe e hoʻohui i nā moʻolelo DNS e kuhikuhi i kāu kikowaena hou. No ka mālama ʻana i nā kikowaena, hoʻohana kā mākou Arithmetic of Good Foundation i ka lawelawe dns-master.ru, e hōʻike mākou me kahi laʻana.

ʻO ka hoʻonohonoho ʻana i kahi moʻolelo A no ka domain nui e hōʻike pinepine ʻia penei (hōʻailona @):

Cloud for Charities: Alakaʻi Migration
Hōʻike pinepine ʻia ka moʻolelo A no nā subdomains e like me kēia:

Cloud for Charities: Alakaʻi Migration
ʻO ka IP address ka helu o ka kikowaena Linux a mākou i hana ai. Hiki iā ʻoe ke kuhikuhi i ka TTL = 3600.

Ma hope o kekahi manawa, hiki ke kipa i kāu pūnaewele, akā i kēia manawa ma o http://. Ma ka hana aʻe e hoʻohui mākou i ke kākoʻo https://.

KaʻAnuʻu Hana 4: Hoʻonohonoho i nā palapala SSL manuahi

Hiki iā ʻoe ke loaʻa manuahi Let's Encrypt SSL palapala hōʻoia no kāu pūnaewele nui a me nā subdomains āpau. Hiki iā ʻoe ke hoʻonohonoho i kā lākou hana hou ʻana, kahi mea maʻalahi. No ka loaʻa ʻana o nā palapala SSL, e hoʻokomo iā Certbot ma kāu kikowaena:

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

E hoʻouka i ka pūʻolo Certbot no Apache me ka hoʻohana ʻana apt:

$ sudo apt install python-certbot-apache 

I kēia manawa ua mākaukau ʻo Certbot e hoʻohana, e holo i ke kauoha:

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

Ke holo nei kēia kauoha certbot, kī -d e wehewehe i nā inoa o nā kāʻei kapu e hoʻopuka ʻia ai ka palapala hōʻoia.

Inā ʻo kēia ka manawa mua āu e hoʻomaka ai i ka certbot, e noi ʻia ʻoe e komo i kāu leka uila a ʻae i nā ʻōlelo o ka hoʻohana ʻana i ka lawelawe. a laila e hoʻopili ʻo certbot i ka server Let's Encrypt a laila e hōʻoia ʻoe e hoʻomalu maoli i ka domain āu i noi ai i ka palapala.

Inā maikaʻi nā mea a pau, e nīnau ʻo certbot pehea ʻoe e makemake ai e hoʻonohonoho i ka hoʻonohonoho 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):

Manaʻo mākou e koho i ke koho 2 a kaomi iā ENTER. E hōʻano hou ʻia ka hoʻonohonoho ʻana a e hoʻomaka hou ʻia ʻo Apache e hoʻohana i nā loli.

Ua hoʻoiho ʻia kāu mau palapala hōʻoia, hoʻokomo a hana. E ho'āʻo e hoʻouka hou i kāu pūnaewele me https:// a e ʻike ʻoe i ka ikona palekana i kāu polokalamu kele pūnaewele. Inā ʻoe e hoʻāʻo i kāu kikowaena Hoʻāʻo ʻo SSL Labs Server, e loaʻa iā ia ka helu A.

E hoʻopaʻa ʻia nā palapala palapala Let's Encrypt no nā lā 90 wale nō, akā ʻo ka pūʻolo certbot a mākou i kau ai e hoʻohou i nā palapala hōʻoia. No ka hoʻāʻo ʻana i ke kaʻina hana hou, hiki iā mākou ke hana i kahi holo maloʻo o certbot:

$ sudo certbot renew --dry-run 

Inā ʻaʻole ʻoe e ʻike i nā hewa ma muli o ka holo ʻana i kēia kauoha, a laila ke hana nei nā mea a pau!

KaʻAnuʻu Hana 5: E komo i MySQL a me phpMyAdmin

Nui nā pūnaewele e hoʻohana i ka ʻikepili. Ua hoʻokomo mua ʻia ka mea hana phpMyAdmin no ka mālama ʻana i ka waihona ma kā mākou kikowaena. No ke komo ʻana iā ia, e hele i kāu polokalamu kele me ka hoʻohana ʻana i kahi loulou e like me:

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

Hiki ke loaʻa ka ʻōlelo huna no ke aʻa i kāu moʻokāki pilikino MCS (https://mcs.mail.ru/app/services/marketplace/apps/). Mai poina e hoʻololi i kāu ʻōlelo huna i ka manawa mua āu e komo ai!

KaʻAnuʻu Hana 6: E hoʻonohonoho i ka hoʻouka faila ma o SFTP

Hiki i nā mea hoʻomohala ke hoʻouka i nā faila no kāu pūnaewele ma o SFTP. No ka hana ʻana i kēia, e hana mākou i kahi mea hoʻohana hou, e kāhea iā ia i ka webmaster:

$ sudo adduser webmaster

E noi ka ʻōnaehana iā ʻoe e hoʻonohonoho i kahi ʻōlelo huna a hoʻokomo i kekahi ʻikepili ʻē aʻe.

Ke hoʻololi nei i ka mea nona ka papa kuhikuhi me kāu pūnaewele:

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

I kēia manawa, e hoʻololi kāua i ka SSH config i hiki i ka mea hoʻohana hou ke komo i SFTP a ʻaʻole ka SSH terminal:

$ sudo nano /etc/ssh/sshd_config

E kaomi i ka hope loa o ka faila hoʻonohonoho a hoʻohui i kēia poloka:

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

E mālama i ka faila a hoʻomaka hou i ka lawelawe:

$ sudo systemctl restart sshd

I kēia manawa hiki iā ʻoe ke hoʻopili i ke kikowaena ma o kekahi mea kūʻai aku SFTP, no ka laʻana, ma o FileZilla.

ʻO ka hopena

  1. I kēia manawa ua ʻike ʻoe pehea e hana ai i nā papa kuhikuhi hou a hoʻonohonoho i nā host virtual no kāu mau pūnaewele i loko o ka kikowaena like.
  2. Hiki iā ʻoe ke hana maʻalahi i nā palapala hōʻoia SSL e pono ai - ʻaʻole manuahi, a e hoʻonui ʻia lākou.
  3. Hiki iā ʻoe ke hana maʻalahi me ka waihona MySQL ma o ka phpMyAdmin kamaʻāina.
  4. ʻAʻole pono ka hana ʻana i nā moʻokāki SFTP hou a me ka hoʻonohonoho ʻana i nā kuleana komo. Hiki ke hoʻoili ʻia ia mau moʻokāki i nā mea hoʻomohala pūnaewele ʻaoʻao ʻekolu a me nā luna hoʻokele pūnaewele.
  5. Mai poina e hoʻohou i ka ʻōnaehana i kēlā me kēia manawa, a ke paipai nei mākou e hana i nā backup - ma MCS hiki iā ʻoe ke lawe i nā "paʻi kiʻi" o ka ʻōnaehana holoʻokoʻa me hoʻokahi kaomi, a laila, inā pono, e hoʻomaka i nā kiʻi holoʻokoʻa.

Nā kumuwaiwai i hoʻohana ʻia e pono paha:

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

Ma ke ala, maanei Hiki iā ʻoe ke heluhelu ma VC pehea kā mākou kumu i kau ai i kahi kahua no ka hoʻonaʻauao pūnaewele no nā keiki makua ʻole e pili ana i ke ao MCS.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka