Cloud for Charities: Guida di Migrazione

Cloud for Charities: Guida di Migrazione

Pocu pocu fà, Mail.Ru Cloud Solutions (MCS) è u serviziu Dobro Mail.Ru hà lanciatu u prughjettu "Nuvola per carità", grazie à quale l'urganisazioni senza prufittu ponu uttene e risorse di a piattaforma di nuvola MCS gratuitamente. Fondazione di beneficenza "Aritmetica di a bontà» hà participatu à u prugettu è hà implementatu cù successu una parte di a so infrastruttura basatu in MCS.

Dopu avè passatu a validazione, un NPO pò riceve capacità virtuale da MCS, ma più cunfigurazione richiede certe qualificazioni. In questu materiale, vulemu sparte struzzioni specifiche per a stallazione di un servitore basatu in Ubuntu Linux per eseguisce u situ web di fundazione principale è una quantità di sottodomini chì utilizanu certificati SSL gratuiti. Per parechji, questu serà una guida simplice, ma speremu chì a nostra sperienza serà utile per altre organizzazioni senza prufittu, è micca solu.

FYI: Chì pudete uttene da MCS ? 4 CPU, 32 GB di RAM, 1 TB di HDD, Ubuntu Linux OS, 500 GB di archiviazione di oggetti.

Passu 1: lanciari u servitore virtuale

Andemu direttamente à u puntu è creanu u nostru servitore virtuale (aka "istanza") in u vostru contu persunale MCS. In l'app store, avete bisognu di selezziunà è installà una pila LAMP pronta, chì hè un set di software di u servitore (LAMP = Linux, Apache, MySQL, PHP) necessariu per eseguisce a maiò parte di i siti web.

Cloud for Charities: Guida di Migrazione
Cloud for Charities: Guida di Migrazione
Cloud for Charities: Guida di Migrazione
Selezziunate a cunfigurazione di u servitore adattatu è crea una nova chjave SSH. Dopu à cliccà nant'à u buttone "Installa", a stallazione di u servitore è stack LAMP accuminciarà, questu duverà qualchì tempu. U sistema vi prupone ancu di scaricà una chjave privata à u vostru urdinatore per gestisce a macchina virtuale via a cunsola, salvà.

Dopu a stallazione di l'applicazione, stallà subitu u firewall, questu hè ancu fattu in u vostru contu persunale: andate à a sezione "Cloud computing -> Virtual machines" è selezziunate "Setting the firewall":

Cloud for Charities: Guida di Migrazione
Avete bisognu di aghjunghje permessu per u trafficu entrante attraversu u portu 80 è 9997. Questu hè necessariu in u futuru per installà i certificati SSL è per travaglià cù phpMyAdmin. In u risultatu, u settore di regule deve esse cusì:

Cloud for Charities: Guida di Migrazione
Avà pudete cunnette à u vostru servitore via a linea di cummanda utilizendu u protocolu SSH. Per fà questu, scrivite u cumandimu seguitu, indicà a chjave SSH in u vostru urdinatore è l'indirizzu IP esternu di u vostru servitore (pudete truvà in a sezione "Macchine virtuali"):

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

Quandu si cunnetta à u servitore per a prima volta, hè cunsigliatu per installà tutte l'aghjurnamenti attuali è reboot. Per fà questu, eseguite i seguenti cumandamenti:

$ sudo apt-get update

U sistema riceverà una lista di l'aghjurnamenti, installate cù stu cumandamentu è seguitate e struzzioni:

$ sudo apt-get upgrade

Dopu avè installatu l'aghjurnamenti, riavvia u servitore:

$ sudo reboot

Passu 2: Configurate l'ospiti virtuali

Parechje nonprofits bisognu di mantene parechji duminii o subdominii à u stessu tempu (per esempiu, un situ web principale è parechje pagine di destinazione per campagni promozionali, etc.). Tuttu chistu pò esse pusatu convenientemente in un servitore creendu parechji ospiti virtuali.

Prima avemu bisognu di creà una struttura di repertoriu per i siti chì seranu affissati à i visitori. Creemu qualchi cartulari:

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

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

È specifica u pruprietariu di l'utilizatore attuale:

$ 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

Variable $USER cuntene u nome d'utilizatore sottu à quale site attualmente cunnessu (per difettu questu hè l'utilizatore ubuntu). Avà l'utilizatore attuale pussede i cartulari public_html induve guardemu u cuntenutu.

Avemu ancu bisognu di edità i permessi un pocu per assicurà chì l'accessu di lettura hè permessu à u repertoriu web cumunu è tutti i fugliali è cartulare chì cuntene. Questu hè necessariu per e pagine di u situ per vede bè:

$ sudo chmod -R 755 /var/www

U vostru servitore web deve avà avè i permessi necessarii per vede u cuntenutu. Inoltre, u vostru utilizatore hà avà a capacità di creà cuntenutu in i cartulari necessarii.

Ci hè digià un schedariu index.php in u cartulare /var/www/html, copiemu in i nostri novi cartulari - questu serà u nostru cuntenutu per avà:

$ 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

Avà vi tocca à assicurà chì l 'utilizatore pò accede à u vostru situ. Per fà questu, avemu prima cunfigurà i schedarii di l'ospiti virtuale, chì determinanu cumu u servitore web Apache risponde à e dumande à e diverse domini.

Per automaticamente, Apache hà un schedariu d'ospite virtuale 000-default.conf chì pudemu usà cum'è un puntu di partenza. Avemu da copià questu per creà file host virtuale per ognunu di i nostri domini. Cuminciaremu cù un duminiu, cunfigurà, copià in un altru duminiu, è dopu fà l'edizioni necessarii di novu.

A cunfigurazione predeterminata d'Ubuntu esige chì ogni schedariu d'ospite virtuale hà una estensione *.conf.

Cuminciamu per copià u schedariu per u primu duminiu:

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

Apertura un novu schedariu in un editore cù diritti di root:

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

Edite i dati cum'è seguitu, specificendu u portu 80, i vostri dati per ServerAdmin, ServerName, ServerAlias, è ancu u percorsu à u cartulare radicali di u vostru situ, salvà u schedariu (Ctrl + X, dopu 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 stabilisce u duminiu primariu, chì deve currisponde à u nome d'ospite virtuale. Questu deve esse u vostru nome di duminiu. Sicondu, ServerAlias, definisce altri nomi chì deve esse interpretatu cum'è s'ellu era u duminiu primariu. Questu hè cunvenutu per utilizà nomi di duminiu supplementari, per esempiu utilizendu www.

Copiemu sta cunfigurazione per un altru òspite è ancu editemu in u listessu modu:

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

Pudete creà quant'è cartulari è ospiti virtuali per i vostri siti web chì vulete! Avà chì avemu creatu i nostri schedarii virtuale d'ospiti, avemu bisognu di attivà. Pudemu aduprà l'utilità a2ensite per attivà ognunu di i nostri siti cum'è questu:

$ sudo a2ensite a-dobra.ru.conf

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

Per automaticamente, u portu 80 hè chjusu in LAMP, è avemu bisognu dopu per installà un certificatu SSL. Allora andemu immediatamente edità u schedariu ports.conf è dopu riavvia Apache:

$ sudo nano /etc/apache2/ports.conf

Aghjunghjite una nova linea è salvate u schedariu cusì pare cusì:

Listen 80
Listen 443
Listen 9997

Dopu avè cumpletu i paràmetri, avete bisognu di riavvia Apache per chì tutti i cambiamenti entranu in vigore:

$ sudo systemctl reload apache2

Passu 3: Stallà nomi duminiu

In seguitu, avete bisognu di aghjunghje records DNS chì indicà à u vostru novu servitore. Per gestisce i domini, a nostra Aritmetica di a bona Fundazione usa u serviziu dns-master.ru, l'avemu mostratu cù un esempiu.

A creazione di un A-record per u duminiu principale hè generalmente indicata cum'è seguita (sign @):

Cloud for Charities: Guida di Migrazione
U registru A per i subdominii hè generalmente specificatu cusì:

Cloud for Charities: Guida di Migrazione
L'indirizzu IP hè l'indirizzu di u servitore Linux chì avemu creatu. Pudete specificà TTL = 3600.

Dopu qualchì tempu, serà pussibule di visità u vostru situ, ma per avà solu attraversu http://. In u prossimu passu avemu da aghjunghje sustegnu https://.

Passu 4: Configurate certificati SSL gratuiti

Pudete uttene certificati SSL Let's Encrypt gratuiti per u vostru situ principale è tutti i subdominii. Pudete ancu cunfigurà u so rinnuvamentu automaticu, chì hè assai còmuda. Per uttene certificati SSL, installate Certbot in u vostru servitore:

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

Installa u pacchettu Certbot per Apache usendu apt:

$ sudo apt install python-certbot-apache 

Avà Certbot hè prontu à aduprà, eseguite u cumandamentu:

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

Stu cumanda corre certbot, chjave -d definisce i nomi di i domini per i quali u certificatu deve esse emessu.

S'ellu hè a prima volta chì lanciate certbot, vi sarà dumandatu à inserisce u vostru indirizzu email è accunsente à i termini di usu di u serviziu. certbot hà da cuntattà u servitore Let's Encrypt è poi verificate chì avete veramente cuntrollatu u duminiu per quale avete dumandatu u certificatu.

Se tuttu hè andatu bè, certbot vi dumandarà cumu vulete cunfigurà a cunfigurazione 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):

Avemu cunsigliatu per selezziunate l'opzione 2 è pressu ENTER. A cunfigurazione serà aghjurnata è Apache serà riavviatu per applicà i cambiamenti.

I vostri certificati sò avà scaricati, installati è funzionanti. Pruvate reloading u vostru situ cù https:// è vi vede l'icona di sicurità in u vostru navigatore. Se testa u vostru servitore Test di u servitore SSL Labs, riceverà una nota A.

I certificati Let's Encrypt sò validi solu per 90 ghjorni, ma u pacchettu certbot chì avemu appena installatu rinnuverà i certificati automaticamente. Per pruvà u prucessu di aghjurnamentu, pudemu fà una corsa secca di certbot:

$ sudo certbot renew --dry-run 

Se ùn vede micca errore in u risultatu di eseguisce stu cumandamentu, allora tuttu funziona!

Passu 5: Accessu MySQL è phpMyAdmin

Parechji siti web utilizanu basa di dati. L'uttellu phpMyAdmin per a gestione di basa di dati hè digià stallatu in u nostru servitore. Per accede à questu, andate à u vostru navigatore cù un ligame cum'è:

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

A password per l'accessu root pò esse ottenuta in u vostru contu persunale MCS (https://mcs.mail.ru/app/services/marketplace/apps/). Ùn vi scurdate di cambià a vostra password di root a prima volta chì accede!

Passu 6: Configurate u schedariu upload via SFTP

I sviluppatori truveranu cunvene per carica i fugliali per u vostru situ web via SFTP. Per fà questu, creeremu un novu utilizatore, chjamate u webmaster:

$ sudo adduser webmaster

U sistema vi dumandu di stabilisce una password è entre qualchì altra dati.

Cambia u pruprietariu di u cartulare cù u vostru situ web:

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

Avà cambiamu a cunfigurazione SSH per chì u novu utilizatore hà solu accessu à SFTP è micca à u terminal SSH:

$ sudo nano /etc/ssh/sshd_config

Scorri finu à a fine di u schedariu di cunfigurazione è aghjunghje u seguente bloccu:

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

Salvà u schedariu è riavvia u serviziu:

$ sudo systemctl restart sshd

Avà pudete cunnette à u servitore attraversu qualsiasi cliente SFTP, per esempiu, cù FileZilla.

U risultatu

  1. Avà sapete cumu creà novi cartulari è cunfigurà l'ospiti virtuali per i vostri siti web in u stessu servitore.
  2. Pudete facilmente creà i certificati SSL necessarii - hè gratuitu, è seranu aghjurnati automaticamente.
  3. Pudete travaglià convenientemente cù a basa di dati MySQL attraversu u familiar phpMyAdmin.
  4. A creazione di novi cunti SFTP è a creazione di diritti d'accessu ùn necessita micca assai sforzu. Tali cunti ponu esse trasferiti à sviluppatori web di terzu è amministratori di u situ.
  5. Ùn vi scurdate di aghjurnà periodicamente u sistema, è ricumandemu ancu di fà una copia di salvezza - in MCS pudete piglià "snapshots" di tuttu u sistema cun un clic, è dopu, se ne necessariu, lanciate l'imaghjini intere.

Risorse usate chì ponu esse utili:

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

In modu, ccà Pudete leghje nantu à VC cumu a nostra fundazione hà implementatu una piattaforma per l'educazione in linea per l'orfani basata nantu à u cloud MCS.

Source: www.habr.com

Add a comment