Cloud for Charities: Giya sa Paglalin

Cloud for Charities: Giya sa Paglalin

Dili pa lang dugay, ang Mail.Ru Cloud Solutions (MCS) ug ang serbisyo sa Dobro Mail.Ru naglansad sa proyekto "Cloud para sa mga charity”, salamat sa mga non-profit nga organisasyon nga makakuha sa mga kahinguhaan sa MCS cloud platform nga libre. Charitable Foundation "Aritmetika sa pagkamaayo» miapil sa proyekto ug malampusong naka-deploy sa bahin sa imprastraktura niini base sa MCS.

Human sa pagpasa sa validation, ang usa ka NPO makadawat og virtual nga kapasidad gikan sa MCS, apan ang dugang nga pag-configure nanginahanglan ug piho nga mga kwalipikasyon. Sa kini nga materyal, gusto namon nga ipaambit ang piho nga mga panudlo alang sa pag-set up sa usa ka server nga nakabase sa Ubuntu Linux aron mapadagan ang panguna nga website sa pundasyon ug daghang mga subdomain gamit ang libre nga mga sertipiko sa SSL. Alang sa kadaghanan, kini usa ka yano nga giya, apan nanghinaut kami nga ang among kasinatian mahimong mapuslanon alang sa ubang mga non-profit nga organisasyon, ug dili lamang.

FYI: Unsay makuha nimo sa MCS? 4 nga mga CPU, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB nga pagtipig sa butang.

Lakang 1: ilunsad ang virtual server

Diretso ta sa punto ug paghimo sa atong virtual server (aka “instance”) sa imong personal nga account sa MCS. Sa tindahan sa app, kinahanglan nimo nga pilion ug i-install ang usa ka andam nga LAMP stack, nga usa ka set sa software sa server (LAMP = Linux, Apache, MySQL, PHP) nga gikinahanglan aron mapadagan ang kadaghanan sa mga website.

Cloud for Charities: Giya sa Paglalin
Cloud for Charities: Giya sa Paglalin
Cloud for Charities: Giya sa Paglalin
Pilia ang angay nga configuration sa server ug paghimo og bag-ong SSH key. Human sa pag-klik sa "Install" nga buton, ang pag-instalar sa server ug LAMP stack magsugod, kini magdugay. Magtanyag usab ang sistema sa pag-download sa usa ka pribado nga yawe sa imong kompyuter aron madumala ang virtual machine pinaagi sa console, i-save kini.

Human ma-install ang aplikasyon, i-set up dayon nato ang firewall, gihimo usab kini sa imong personal nga account: adto sa seksyon nga "Cloud computing -> Virtual machines" ug pilia ang "Pag-set sa firewall":

Cloud for Charities: Giya sa Paglalin
Kinahanglan nimong idugang ang pagtugot alang sa umaabot nga trapiko pinaagi sa port 80 ug 9997. Kinahanglan kini sa umaabot aron ma-install ang mga sertipiko sa SSL ug magtrabaho kauban ang phpMyAdmin. Ingon usa ka sangputanan, ang hugpong sa mga lagda kinahanglan nga ingon niini:

Cloud for Charities: Giya sa Paglalin
Karon makakonektar ka sa imong server pinaagi sa command line gamit ang SSH protocol. Aron mahimo kini, i-type ang mosunud nga mando, nga nagpunting sa SSH nga yawe sa imong kompyuter ug ang eksternal nga IP address sa imong server (mahimo nimo kini makit-an sa seksyon nga "Virtual machines"):

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

Kung nagkonektar sa server sa unang higayon, girekomenda nga i-install ang tanan nga karon nga mga update niini ug i-reboot kini. Aron mahimo kini, pagdagan ang mosunud nga mga mando:

$ sudo apt-get update

Ang sistema makadawat usa ka lista sa mga update, i-install kini gamit kini nga mando ug sunda ang mga panudlo:

$ sudo apt-get upgrade

Human ma-install ang mga update, i-restart ang server:

$ sudo reboot

Lakang 2: I-set up ang mga virtual host

Daghang mga nonprofit ang kinahanglan nga magpadayon sa daghang mga domain o subdomain sa parehas nga oras (pananglitan, usa ka panguna nga website ug daghang mga landing page alang sa mga kampanya sa promosyon, ug uban pa). Kining tanan mahimong sayon ​​nga ibutang sa usa ka server pinaagi sa paghimo og daghang mga virtual host.

Una kinahanglan namon nga maghimo usa ka istruktura sa direktoryo alang sa mga site nga ipakita sa mga bisita. Maghimo kita og pipila ka mga direktoryo:

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

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

Ug ipiho ang tag-iya sa kasamtangang tiggamit:

$ 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 naglangkob sa username diin ikaw karon naka-log in (sa default kini ang user ubuntu). Karon ang kasamtangang tiggamit nanag-iya sa public_html nga mga direktoryo diin among tipigan ang sulod.

Kinahanglan usab namon nga usbon ang mga pagtugot aron masiguro nga ang pag-access sa pagbasa gitugotan sa gipaambit nga direktoryo sa web ug ang tanan nga mga file ug folder nga naa niini. Kini gikinahanglan aron ang mga panid sa site mapakita sa hustong paagi:

$ sudo chmod -R 755 /var/www

Ang imong web server kinahanglan nga adunay mga pagtugot nga gikinahanglan aron ipakita ang sulud. Dugang pa, ang imong tiggamit karon adunay katakus sa paghimo og sulud sa gikinahanglan nga mga direktoryo.

Naa nay index.php file sa /var/www/html nga direktoryo, kopyahon nato kini sa atong bag-ong mga direktoryo - kini ang atong sulod sa pagkakaron:

$ 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

Karon kinahanglan nimo nga sigurohon nga ang user maka-access sa imong site. Aron mahimo kini, una namon nga i-configure ang mga virtual host file, nga nagtino kung giunsa ang pagtubag sa Apache web server sa mga hangyo sa lainlaing mga dominyo.

Sa kasagaran, ang Apache adunay usa ka virtual host file 000-default.conf nga atong magamit isip sugod nga punto. Among kopyahon kini aron makahimo og virtual host files para sa matag usa sa among mga dominyo. Magsugod kami sa usa ka domain, i-configure kini, kopyahon kini sa lain nga domain, ug dayon himuon pag-usab ang kinahanglan nga mga pag-edit.

Ang default configuration sa Ubuntu nagkinahanglan nga ang matag virtual host file adunay *.conf extension.

Magsugod ta pinaagi sa pagkopya sa file para sa unang domain:

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

Ablihi ang usa ka bag-ong file sa usa ka editor nga adunay mga katungod sa gamut:

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

I-edit ang datos ingon sa mosunod, nga nagtino sa port 80, ang imong data alang sa ServerAdmin, ServerName, ServerAlias, ingon man ang agianan padulong sa root directory sa imong site, i-save ang file (Ctrl+X, unya 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 nagtakda sa nag-unang dominyo, nga kinahanglan nga mohaum sa virtual host name. Kini kinahanglan nga imong domain name. Ikaduha, ServerAlias, naghubit sa ubang mga ngalan nga kinahanglang hubaron ingon nga kini ang nag-unang dominyo. Kini sayon ​​alang sa paggamit sa dugang nga mga ngalan sa domain, pananglitan sa paggamit sa www.

Atong kopyahon kini nga config para sa laing host ug usba usab kini sa samang paagi:

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

Makahimo ka ug daghang mga direktoryo ug mga virtual host alang sa imong mga website nga gusto nimo! Karon nga nahimo na namon ang among virtual host file, kinahanglan namon nga palihokon kini. Mahimo namong gamiton ang a2ensite utility aron mahimo ang matag usa sa among mga site nga sama niini:

$ sudo a2ensite a-dobra.ru.conf

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

Sa kasagaran, ang port 80 gisirhan sa LAMP, ug kinahanglan namon kini sa ulahi aron ma-install ang usa ka sertipiko sa SSL. Busa atong i-edit dayon ang ports.conf file ug dayon i-restart ang Apache:

$ sudo nano /etc/apache2/ports.conf

Pagdugang og bag-ong linya ug i-save ang file aron kini ingon niini:

Listen 80
Listen 443
Listen 9997

Human makompleto ang mga setting, kinahanglan nimo nga i-restart ang Apache alang sa tanan nga mga pagbag-o nga epektibo:

$ sudo systemctl reload apache2

Lakang 3: I-set up ang mga ngalan sa domain

Sunod, kinahanglan nimong idugang ang mga rekord sa DNS nga magpunting sa imong bag-ong server. Aron pagdumala sa mga domain, ang among Arithmetic of Good Foundation naggamit sa dns-master.ru nga serbisyo, among ipakita kini sa usa ka pananglitan.

Ang pag-set up sa usa ka A-record alang sa nag-unang dominyo kasagarang gipakita sama sa mosunod (sign @):

Cloud for Charities: Giya sa Paglalin
Ang rekord sa A para sa mga subdomain kasagarang gipiho sama niini:

Cloud for Charities: Giya sa Paglalin
Ang IP address mao ang adres sa Linux server nga bag-o lang namo gibuhat. Mahimo nimong itakda ang TTL = 3600.

Human sa pipila ka panahon, kini mahimong posible nga sa pagbisita sa imong site, apan sa karon lamang pinaagi sa http://. Sa sunod nga lakang atong idugang ang suporta https://.

Lakang 4: I-set up ang libre nga mga sertipiko sa SSL

Makakuha ka ug libre nga Let's Encrypt SSL certificates para sa imong main site ug tanang subdomains. Mahimo usab nimo i-configure ang ilang awtomatik nga pagbag-o, nga sayon ​​​​kaayo. Aron makakuha og mga sertipiko sa SSL, i-install ang Certbot sa imong server:

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

I-install ang Certbot package para sa Apache gamit apt:

$ sudo apt install python-certbot-apache 

Karon ang Certbot andam na nga gamiton, padagana ang sugo:

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

Kini nga sugo nagpadagan sa certbot, mga yawe -d ipasabut ang mga ngalan sa mga dominyo diin ang sertipiko kinahanglan i-isyu.

Kung kini ang unang higayon nga imong ilunsad ang certbot, hangyoon ka nga mosulod sa imong email address ug mouyon sa mga termino sa paggamit sa serbisyo. Makontak dayon sa certbot ang Let's Encrypt server ug dayon pamatud-i nga kontrolado gyud nimo ang domain diin imong gipangayo ang sertipiko.

Kung maayo ang tanan, mangutana ang certbot kung giunsa nimo gusto nga i-configure ang configuration sa 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):

Girekomenda namon ang pagpili sa kapilian 2 ug pagpindot sa ENTER. Ang pag-configure ma-update ug ang Apache i-restart aron magamit ang mga pagbag-o.

Ang imong mga sertipiko karon na-download, na-install ug nagtrabaho. Sulayi pag-reload ang imong site gamit ang https:// ug imong makita ang security icon sa imong browser. Kung gisulayan nimo ang imong server Pagsulay sa SSL Labs Server, makadawat siya ug grado nga A.

Ang Let's Encrypt nga mga sertipiko balido lamang sulod sa 90 ka adlaw, apan ang certbot package nga bag-o lang namo na-install mo-renew sa mga sertipiko awtomatik. Aron masulayan ang proseso sa pag-update, mahimo namon ang usa ka dry run sa certbot:

$ sudo certbot renew --dry-run 

Kung wala nimo makita ang bisan unsang mga sayup ingon usa ka sangputanan sa pagpadagan niini nga mando, nan ang tanan nagtrabaho!

Lakang 5: Pag-access sa MySQL ug phpMyAdmin

Daghang mga website ang naggamit sa mga database. Ang himan sa phpMyAdmin alang sa pagdumala sa database na-install na sa among server. Aron ma-access kini, adto sa imong browser gamit ang link sama sa:

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

Ang password alang sa root access mahimong makuha sa imong MCS personal nga account (https://mcs.mail.ru/app/services/marketplace/apps/). Ayaw kalimot sa pag-ilis sa imong root password sa unang higayon nga mag log in ka!

Lakang 6: I-set up ang pag-upload sa file pinaagi sa SFTP

Makaplagan sa mga developers nga sayon ​​ang pag-upload og mga file para sa imong website pinaagi sa SFTP. Aron mahimo kini, maghimo kami usa ka bag-ong tiggamit, tawga siya nga webmaster:

$ sudo adduser webmaster

Ang sistema mohangyo kanimo sa pagbutang sa usa ka password ug pagsulod sa ubang mga datos.

Pag-ilis sa tag-iya sa direktoryo sa imong website:

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

Karon usbon nato ang SSH config aron ang bag-ong user adunay access lamang sa SFTP ug dili sa SSH terminal:

$ sudo nano /etc/ssh/sshd_config

Pag-scroll ngadto sa katapusan sa configuration file ug idugang ang mosunod nga block:

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

I-save ang file ug i-restart ang serbisyo:

$ sudo systemctl restart sshd

Karon makakonektar ka sa server pinaagi sa bisan unsang SFTP client, pananglitan, pinaagi sa FileZilla.

Ang resulta

  1. Karon nahibal-an na nimo kung unsaon paghimo og bag-ong mga direktoryo ug pag-configure sa mga virtual host alang sa imong mga website sulod sa parehas nga server.
  2. Dali ka makahimo sa gikinahanglan nga mga sertipiko sa SSL - kini libre, ug kini awtomatiko nga ma-update.
  3. Mahimo ka nga dali nga magtrabaho kauban ang database sa MySQL pinaagi sa pamilyar nga phpMyAdmin.
  4. Ang paghimo og bag-ong SFTP nga mga account ug pag-set up sa mga katungod sa pag-access wala magkinahanglan og daghang paningkamot. Ang ingon nga mga account mahimong ibalhin sa mga third-party nga web developer ug site administrator.
  5. Ayaw kalimti ang pag-update matag karon ug unya sa sistema, ug girekomenda usab namon ang paghimo og mga backup - sa MCS mahimo nimong makuha ang "mga snapshot" sa tibuuk nga sistema sa usa ka pag-klik, ug dayon, kung kinahanglan, ilunsad ang tibuuk nga mga imahe.

Gigamit nga mga kapanguhaan nga mahimong mapuslanon:

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

Hinuon, dinhi Mabasa nimo sa VC kung giunsa ang among pundasyon nag-deploy og plataporma alang sa online nga edukasyon alang sa mga ilo base sa MCS cloud.

Source: www.habr.com

Idugang sa usa ka comment