Nubo por Bonfaradoj: Gvidilo pri Migrado

Nubo por Bonfaradoj: Gvidilo pri Migrado

Antaŭ nelonge, Mail.Ru Cloud Solutions (MCS) kaj la servo Dobro Mail.Ru lanĉis la projekton "Nubo por bonfaradoj”, danke al kiu senprofitaj organizaĵoj povas senpage akiri la rimedojn de la MCS-nuba platformo. Bonfara Fondaĵo"Aritmetiko de bono» partoprenis en la projekto kaj sukcese deplojis parton de ĝia infrastrukturo bazita sur MCS.

Post pasigado de validumado, NPO povas ricevi virtualan kapaciton de MCS, sed plia agordo postulas certajn kvalifikojn. En ĉi tiu materialo, ni volas kunhavigi specifajn instrukciojn por agordi Ubuntu-Linuksan servilon por funkcii la ĉefan bazan retejon kaj kelkajn subdomajnojn per senpagaj SSL-atestiloj. Por multaj, ĉi tio estos simpla gvidilo, sed ni esperas, ke nia sperto estos utila por aliaj senprofitaj organizaĵoj, kaj ne nur.

FYI: Kion vi povas akiri de MCS? 4 CPUoj, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB objektostokado.

Paŝo 1: lanĉu la virtualan servilon

Ni iru rekte al la punkto kaj kreu nian virtualan servilon (alinome "instanco") en via persona konto de MCS. En la app-vendejo, vi devas elekti kaj instali pretan LAMP-stakon, kiu estas aro de servilaj programoj (LAMP = Linukso, Apache, MySQL, PHP) necesaj por funkcii plej multajn retejojn.

Nubo por Bonfaradoj: Gvidilo pri Migrado
Nubo por Bonfaradoj: Gvidilo pri Migrado
Nubo por Bonfaradoj: Gvidilo pri Migrado
Elektu la taŭgan servilan agordon kaj kreu novan SSH-ŝlosilon. Post klako sur la butonon "Instali", la instalado de la servilo kaj LAMP-stako komenciĝos, tio daŭros iom da tempo. La sistemo ankaŭ proponos elŝuti privatan ŝlosilon al via komputilo por administri la virtualan maŝinon per la konzolo, konservu ĝin.

Post instalo de la aplikaĵo, ni tuj agordu la fajroŝirmilon, ĉi tio ankaŭ estas farita en via persona konto: iru al la sekcio "Nuba komputado -> Virtualaj maŝinoj" kaj elektu "Agordi la fajroŝirmilon":

Nubo por Bonfaradoj: Gvidilo pri Migrado
Vi devas aldoni permeson por envenanta trafiko tra havenoj 80 kaj 9997. Ĉi tio estas necesa estonte por instali SSL-atestilojn kaj labori kun phpMyAdmin. Kiel rezulto, la aro de reguloj devus aspekti jene:

Nubo por Bonfaradoj: Gvidilo pri Migrado
Nun vi povas konektiĝi al via servilo per la komandlinio uzante la SSH-protokolon. Por fari tion, tajpu la sekvan komandon, montrante la SSH-ŝlosilon en via komputilo kaj la eksteran IP-adreson de via servilo (vi povas trovi ĝin en la sekcio "Virtualaj maŝinoj"):

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

Kiam vi konektas al la servilo unuafoje, oni rekomendas instali ĉiujn aktualajn ĝisdatigojn sur ĝi kaj rekomenci ĝin. Por fari tion, rulu la jenajn komandojn:

$ sudo apt-get update

La sistemo ricevos liston de ĝisdatigoj, instalos ilin per ĉi tiu komando kaj sekvos la instrukciojn:

$ sudo apt-get upgrade

Post instalo de la ĝisdatigoj, rekomencu la servilon:

$ sudo reboot

Paŝo 2: Agordu virtualajn gastigantojn

Multaj senprofitaj organizaĵoj bezonas konservi plurajn domajnojn aŭ subdomajnojn samtempe (ekzemple ĉefa retejo kaj pluraj landpaĝoj por reklamaj kampanjoj ktp.). Ĉio ĉi povas esti oportune metita sur unu servilon kreante plurajn virtualajn gastigantojn.

Unue ni devas krei dosierujan strukturon por la retejoj, kiuj estos montrataj al vizitantoj. Ni kreu kelkajn dosierujojn:

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

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

Kaj specifu la posedanton de la nuna uzanto:

$ 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

Variablo $USER enhavas la uzantnomon sub kiu vi estas nun ensalutinta (defaŭlte ĉi tiu estas la uzanto ubuntu). Nun la nuna uzanto posedas la public_html-dosierujojn, kie ni stokos la enhavon.

Ni ankaŭ devas iomete redakti la permesojn por certigi, ke legado estas permesita al la komuna retdosierujo kaj ĉiuj dosieroj kaj dosierujoj kiujn ĝi enhavas. Ĉi tio estas necesa por ke la paĝoj de la retejo aperu ĝuste:

$ sudo chmod -R 755 /var/www

Via retservilo nun havu la permesojn, kiujn ĝi bezonas por montri la enhavon. Krome, via uzanto nun havas la kapablon krei enhavon en la postulataj dosierujoj.

Jam estas dosiero index.php en la dosierujo /var/www/html, ni kopiu ĝin al niaj novaj dosierujoj - ĉi tio estos nia enhavo por nun:

$ 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

Nun vi devas certigi, ke la uzanto povas aliri vian retejon. Por fari tion, ni unue agordos la virtualajn gastigajn dosierojn, kiuj determinas kiel la retservilo Apache respondos al petoj al malsamaj domajnoj.

Defaŭlte, Apache havas virtualan gastigan dosieron 000-default.conf, kiun ni povas uzi kiel deirpunkto. Ni kopios ĉi tion por krei virtualajn gastigajn dosierojn por ĉiu el niaj domajnoj. Ni komencos per unu domajno, agordos ĝin, kopios ĝin al alia domajno, kaj poste faros la necesajn redaktojn denove.

La defaŭlta agordo de Ubuntu postulas, ke ĉiu virtuala gastiga dosiero havu etendon *.conf.

Ni komencu kopiante la dosieron por la unua domajno:

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

Malfermu novan dosieron en redaktilo kun radikrajtoj:

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

Redaktu la datumojn jene, specifante la havenon 80, viajn datumojn por ServerAdmin, ServerName, ServerAlias, same kiel la vojon al la radika dosierujo de via retejo, konservu la dosieron (Ctrl+X, tiam 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 fiksas la ĉefan domajnon, kiu devas kongrui kun la virtuala gastiga nomo. Ĉi tio devas esti via domajna nomo. Due, ServerAlias, difinas aliajn nomojn, kiuj devus esti interpretitaj kvazaŭ ĝi estus la ĉefa domajno. Ĉi tio estas oportuna por uzi pliajn domajnajn nomojn, ekzemple uzante www.

Ni kopiu ĉi tiun agordon por alia gastiganto kaj ankaŭ redaktu ĝin sammaniere:

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

Vi povas krei tiom da dosierujoj kaj virtualaj gastigantoj por viaj retejoj kiom vi volas! Nun kiam ni kreis niajn virtualajn gastigajn dosierojn, ni devas ebligi ilin. Ni povas uzi la ilon a2ensite por ebligi ĉiun el niaj retejoj tiel:

$ sudo a2ensite a-dobra.ru.conf

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

Defaŭlte, haveno 80 estas fermita en LAMP, kaj ni bezonos ĝin poste por instali SSL-atestilon. Do ni tuj redaktu la ports.conf dosieron kaj poste rekomencu Apache:

$ sudo nano /etc/apache2/ports.conf

Aldonu novan linion kaj konservu la dosieron tiel ke ĝi aspektu jene:

Listen 80
Listen 443
Listen 9997

Post kompletigi la agordojn, vi devas rekomenci Apache por ke ĉiuj ŝanĝoj efektiviĝu:

$ sudo systemctl reload apache2

Paŝo 3: Agordu domajnaj nomoj

Poste, vi devas aldoni DNS-rekordojn, kiuj montros vian novan servilon. Por administri domajnojn, nia Aritmetiko de Bona Fondaĵo uzas la servon dns-master.ru, ni montros ĝin per ekzemplo.

Agordo de A-rekordo por la ĉefa domajno estas kutime indikita jene (signo @):

Nubo por Bonfaradoj: Gvidilo pri Migrado
La A-rekordo por subdomajnoj estas kutime specifita tiel:

Nubo por Bonfaradoj: Gvidilo pri Migrado
La IP-adreso estas la adreso de la Linuksa servilo, kiun ni ĵus kreis. Vi povas specifi TTL = 3600.

Post iom da tempo, eblos viziti vian retejon, sed nuntempe nur tra http://. En la sekva paŝo ni aldonos subtenon https://.

Paŝo 4: Agordu senpagajn SSL-atestilojn

Vi povas akiri senpagajn Let's Encrypt SSL-atestilojn por via ĉefa retejo kaj ĉiuj subdomajnoj. Vi ankaŭ povas agordi ilian aŭtomatan renovigon, kio estas tre oportuna. Por akiri SSL-atestilojn, instalu Certbot sur via servilo:

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

Instalu la pakaĵon Certbot por Apache uzante apt:

$ sudo apt install python-certbot-apache 

Nun Certbot estas preta por uzi, rulu la komandon:

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

Ĉi tiu komando rulas certbot, ŝlosilojn -d difini la nomojn de la domajnoj por kiuj la atestilo devus esti eldonita.

Se ĉi tio estas la unua fojo, kiam vi lanĉas certbot, oni petos vin enigi vian retadreson kaj konsenti la uzkondiĉojn de la servo. certbot tiam kontaktos la servilon Ni Ĉifri kaj poste kontrolos, ke vi efektive regas la domajnon por kiu vi petis la atestilon.

Se ĉio iris bone, certbot demandos kiel vi volas agordi la HTTPS-agordon:

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):

Ni rekomendas elekti opcion 2 kaj premu ENTER. La agordo estos ĝisdatigita kaj Apache estos rekomencita por apliki la ŝanĝojn.

Viaj atestiloj nun estas elŝutitaj, instalitaj kaj funkcias. Provu reŝargi vian retejon per https:// kaj vi vidos la sekurecan ikonon en via retumilo. Se vi provas vian servilon SSL Labs Server Test, li ricevos A-noton.

La atestiloj de Let's Encrypt validas nur dum 90 tagoj, sed la certbot-pakaĵo, kiun ni ĵus instalis, aŭtomate renovigos la atestilojn. Por testi la ĝisdatigprocezon, ni povas fari sekan kuron de certbot:

$ sudo certbot renew --dry-run 

Se vi ne vidas erarojn kiel rezulto de rulado de ĉi tiu komando, tiam ĉio funkcias!

Paŝo 5: Aliru MySQL kaj phpMyAdmin

Multaj retejoj uzas datumbazojn. La ilo phpMyAdmin por administrado de datumbazoj jam estas instalita en nia servilo. Por aliri ĝin, iru al via retumilo per ligilo kiel:

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

La pasvorto por radika aliro povas esti akirita en via persona konto de MCS (https://mcs.mail.ru/app/services/marketplace/apps/). Ne forgesu ŝanĝi vian radikan pasvorton la unuan fojon kiam vi ensalutas!

Paŝo 6: Agordu dosieron alŝuton per SFTP

Programistoj trovos oportune alŝuti dosierojn por via retejo per SFTP. Por fari tion, ni kreos novan uzanton, nomu lin retestro:

$ sudo adduser webmaster

La sistemo petos vin agordi pasvorton kaj enigi aliajn datumojn.

Ŝanĝi la posedanton de la dosierujo kun via retejo:

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

Nun ni ŝanĝu la SSH-agordon por ke la nova uzanto nur havu aliron al SFTP kaj ne al la SSH-terminalo:

$ sudo nano /etc/ssh/sshd_config

Rulumu ĝis la fino de la agorda dosiero kaj aldonu la sekvan blokon:

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

Konservu la dosieron kaj rekomencu la servon:

$ sudo systemctl restart sshd

Nun vi povas konektiĝi al la servilo per iu ajn SFTP-kliento, ekzemple per FileZilla.

La rezulto

  1. Nun vi scias kiel krei novajn dosierujojn kaj agordi virtualajn gastigantojn por viaj retejoj ene de la sama servilo.
  2. Vi povas facile krei la necesajn SSL-atestilojn - ĝi estas senpaga, kaj ili estos aŭtomate ĝisdatigitaj.
  3. Vi povas oportune labori kun la MySQL-datumbazo per la konata phpMyAdmin.
  4. Krei novajn SFTP-kontojn kaj starigi alirrajtojn ne postulas multe da penado. Tiaj kontoj povas esti transdonitaj al triapartaj retaj programistoj kaj retejadministrantoj.
  5. Ne forgesu periode ĝisdatigi la sistemon, kaj ni ankaŭ rekomendas fari sekurkopiojn - en MCS vi povas fari "momentfotojn" de la tuta sistemo per unu klako, kaj poste, se necese, lanĉi tutajn bildojn.

Uzitaj rimedoj kiuj povas esti utilaj:

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

Por iu, tie Vi povas legi ĉe VC kiel nia fondaĵo deplojis platformon por interreta edukado por orfoj bazita sur la MCS-nubo.

fonto: www.habr.com

Aldoni komenton