Awan pikeun Amal: Pituduh Migrasi

Awan pikeun Amal: Pituduh Migrasi

Teu lami pisan, Mail.Ru Cloud Solutions (MCS) sareng jasa Dobro Mail.Ru ngaluncurkeun proyék "Awan pikeun amal”, hatur nuhun pikeun organisasi nirlaba tiasa nampi sumber daya platform awan MCS gratis. Yayasan Amal"Aritmetika kahadéan»Ilubiung dina proyék sareng suksés nyebarkeun bagian tina infrastrukturna dumasar kana MCS.

Sanggeus lulus validasi, hiji NPO bisa nampa kapasitas virtual ti MCS, tapi konfigurasi salajengna merlukeun kualifikasi tangtu. Dina bahan ieu, urang hoyong bagikeun parentah husus pikeun nyetel hiji server basis Linux Ubuntu ngajalankeun ramatloka yayasan utama jeung sajumlah subdomains ngagunakeun sertipikat SSL gratis. Pikeun seueur, ieu bakal janten pituduh anu saderhana, tapi kami ngarepkeun pangalaman urang bakal mangpaat pikeun organisasi nirlaba sanés, sanés ngan ukur.

FYI: Naon anu anjeun tiasa kéngingkeun tina MCS? 4 CPUs, 32 GB RAM, 1 TB HDD, OS Linux Ubuntu, 500 GB gudang objék.

Lengkah 1: ngajalankeun server virtual

Hayu urang langsung ka titik sareng jieun server virtual kami (alias "conto") dina akun pribadi MCS anjeun. Di toko aplikasi, anjeun kedah milih sareng masang tumpukan LAMP anu siap-siap, anu mangrupikeun set parangkat lunak server (LAMP = Linux, Apache, MySQL, PHP) anu dipikabutuh pikeun ngajalankeun kalolobaan situs wéb.

Awan pikeun Amal: Pituduh Migrasi
Awan pikeun Amal: Pituduh Migrasi
Awan pikeun Amal: Pituduh Migrasi
Pilih konfigurasi server anu luyu sareng jieun konci SSH anyar. Saatos ngaklik tombol "Pasang", pamasangan server sareng tumpukan LAMP bakal ngamimitian, ieu bakal nyandak sababaraha waktos. Sistim nu ogé bakal nawiskeun pikeun ngundeur konci swasta ka komputer Anjeun pikeun ngatur mesin virtual via konsol nu, simpen eta.

Saatos masang aplikasi, hayu urang langsung nyetél firewall, ieu ogé dilakukeun dina akun pribadi anjeun: angkat ka bagian "Komputasi awan -> Mesin virtual" teras pilih "Setelan firewall":

Awan pikeun Amal: Pituduh Migrasi
Anjeun kedah nambihan idin pikeun lalu lintas asup ngalangkungan port 80 sareng 9997. Ieu diperlukeun dina mangsa nu bakal datang pikeun masang sertipikat SSL jeung digawekeun ku phpMyAdmin. Hasilna, susunan aturan kedah sapertos kieu:

Awan pikeun Amal: Pituduh Migrasi
Ayeuna anjeun tiasa nyambung ka server anjeun nganggo garis paréntah nganggo protokol SSH. Jang ngalampahkeun ieu, ketik paréntah di handap ieu, nunjuk kana konci SSH dina komputer anjeun sareng alamat IP éksternal tina server anjeun (anjeun tiasa mendakanana dina bagian "Mesin Virtual"):

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

Nalika nyambungkeun ka server pikeun kahiji kalina, disarankeun pikeun masang sadaya apdet ayeuna sareng reboot. Jang ngalampahkeun ieu, ngajalankeun paréntah di handap ieu:

$ sudo apt-get update

Sistem bakal nampi daptar apdet, pasang nganggo paréntah ieu sareng turutan paréntahna:

$ sudo apt-get upgrade

Saatos masang apdet, balikan deui server:

$ sudo reboot

Lengkah 2: Nyetél host virtual

Seueur lembaga nonprofit kedah ngajaga sababaraha domain atanapi subdomain dina waktos anu sami (contona, halaman wéb utama sareng sababaraha halaman badarat pikeun kampanye promosi, jsb.). Sadaya ieu tiasa gampang disimpen dina hiji server ku nyiptakeun sababaraha host virtual.

Mimiti urang kedah ngadamel struktur diréktori pikeun situs anu bakal ditingalikeun ka sémah. Hayu urang nyieun sababaraha diréktori:

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

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

Jeung tangtukeun nu boga pamaké ayeuna:

$ 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

Variabel $USER ngandung ngaran pamaké dimana anjeun ayeuna asup (sacara standar ieu pamaké ubuntu). Ayeuna pangguna ayeuna gaduh diréktori public_html dimana urang bakal nyimpen eusina.

Urang ogé kedah ngédit idin sakedik pikeun mastikeun yén aksés maca diidinan ka diréktori wéb anu dibagikeun sareng sadaya file sareng polder anu aya. Ieu dipikabutuh pikeun kaca loka pikeun nembongkeun bener:

$ sudo chmod -R 755 /var/www

Pangladén wéb anjeun ayeuna kedah gaduh idin anu diperyogikeun pikeun nampilkeun eusi. Sajaba ti éta, pamaké anjeun ayeuna boga kamampuhan pikeun nyieun eusi dina directories diperlukeun.

Geus aya file index.php dina diréktori /var/www/html, hayu urang salin kana diréktori anyar urang - ieu bakal eusi urang ayeuna:

$ 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

Ayeuna anjeun kedah mastikeun yén pangguna tiasa ngaksés situs anjeun. Jang ngalampahkeun ieu, urang mimiti bakal ngonpigurasikeun file host maya, nu nangtukeun kumaha web server Apache bakal ngabales requests kana domain béda.

Sacara standar, Apache ngagaduhan file host virtual 000-default.conf anu tiasa urang pake salaku titik awal. Kami badé nyalin ieu pikeun nyiptakeun file host virtual pikeun unggal domain urang. Urang mimitian ku hiji domain, ngonpigurasikeunana, nyalin ka domain sejen, lajeng ngalakukeun éditan diperlukeun deui.

Konfigurasi standar Ubuntu merlukeun unggal file host virtual boga * .conf extension.

Hayu urang mimitian ku nyalin file pikeun domain munggaran:

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

Buka file anyar dina éditor nganggo hak akar:

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

Edit data saperti kieu, nangtukeun port 80, data anjeun pikeun ServerAdmin, ServerName, ServerAlias, kitu ogé jalur ka diréktori akar situs anjeun, simpen file (Ctrl + X, lajeng 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 Nyetél domain primér, anu kedah cocog sareng nami host virtual. Ieu kedah janten nami domain anjeun. kadua, ServerAlias, ngahartikeun ngaran séjén nu kudu diinterpretasi saolah-olah éta domain primér. Ieu merenah pikeun ngagunakeun ngaran domain tambahan, contona ngagunakeun www.

Hayu urang nyalin konfigurasi ieu pikeun host anu sanés sareng ogé ngédit ku cara anu sami:

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

Anjeun tiasa nyiptakeun saloba diréktori sareng host virtual pikeun situs wéb anjeun anu anjeun pikahoyong! Ayeuna urang parantos nyiptakeun file host virtual, urang kedah ngaktipkeunana. Urang tiasa nganggo utilitas a2ensite pikeun ngaktipkeun unggal situs urang sapertos kieu:

$ sudo a2ensite a-dobra.ru.conf

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

Sacara standar, port 80 ditutup dina LAMP, sareng urang peryogi éta engké pikeun masang sertipikat SSL. Janten hayu urang langsung ngédit file ports.conf teras balikan deui Apache:

$ sudo nano /etc/apache2/ports.conf

Nambahkeun hiji baris anyar jeung simpen file sangkan kasampak kawas kieu:

Listen 80
Listen 443
Listen 9997

Saatos ngalengkepan setélan, anjeun kedah ngabalikan deui Apache supados sadaya parobihan tiasa dianggo:

$ sudo systemctl reload apache2

Lengkah 3: Nyetél ngaran domain

Salajengna, anjeun kedah nambihan rékaman DNS anu bakal nunjuk ka server énggal anjeun. Pikeun ngatur domain, Arithmetic of Good Foundation kami nganggo jasa dns-master.ru, kami bakal nunjukkeun éta kalayan conto.

Nyetél rékaman A pikeun domain utama biasana dituduhkeun kieu (tanda @):

Awan pikeun Amal: Pituduh Migrasi
The A catetan keur subdomains biasana dieusian kawas kieu:

Awan pikeun Amal: Pituduh Migrasi
Alamat IP nyaéta alamat server Linux anu karek dijieun. Anjeun tiasa nangtukeun TTL = 3600.

Sanggeus sababaraha waktu, éta bakal mungkin nganjang situs anjeun, tapi pikeun ayeuna ngan ngaliwatan http://. Dina lengkah saterusna urang bakal nambahan rojongan https://.

Lengkah 4: Nyetél sertipikat SSL gratis

Anjeun tiasa kéngingkeun sertipikat SSL Let's Encrypt gratis pikeun situs utama anjeun sareng sadaya subdomain. Anjeun oge bisa ngonpigurasikeun pembaharuan otomatis maranéhanana, nu pohara merenah. Pikeun kéngingkeun sertipikat SSL, pasang Certbot dina server anjeun:

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

Pasang pakét Certbot pikeun Apache nganggo apt:

$ sudo apt install python-certbot-apache 

Ayeuna Certbot parantos siap dianggo, jalankeun paréntahna:

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

Paréntah ieu ngajalankeun certbot, konci -d nangtukeun ngaran domain nu sertipikat kudu dikaluarkeun.

Upami ieu pertama kalina anjeun ngaluncurkeun certbot, anjeun bakal dipenta pikeun ngalebetkeun alamat email anjeun sareng satuju kana syarat pamakean jasa éta. certbot teras bakal ngahubungi server Let's Encrypt teras pariksa yén anjeun leres-leres ngontrol domain anu anjeun naroskeun sertipikatna.

Upami sadayana lancar, certbot bakal naroskeun kumaha anjeun badé ngonpigurasikeun konfigurasi 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):

Kami nyarankeun milih pilihan 2 sareng pencét ENTER. Konfigurasi bakal diropéa sarta Apache bakal restarted pikeun nerapkeun parobahanana.

Sertipikat anjeun ayeuna diunduh, dipasang sareng jalan. Coba muat ulang situs anjeun nganggo https:// sareng anjeun bakal ningali ikon kaamanan dina panyungsi anjeun. Lamun nguji server Anjeun SSL Labs Server Test, anjeunna bakal nampi peunteun A.

Sertipikat Let's Encrypt ngan valid pikeun 90 dinten, tapi pakét certbot anu kami pasang bakal otomatis nga-renew sertipikat. Pikeun nguji prosés update, urang tiasa ngalakukeun garing certbot:

$ sudo certbot renew --dry-run 

Upami anjeun henteu ningali kasalahan salaku hasil tina ngajalankeun paréntah ieu, maka sadayana tiasa jalan!

Lengkah 5: Aksés MySQL sareng phpMyAdmin

Loba situs web ngagunakeun database. Alat phpMyAdmin pikeun manajemén database parantos dipasang dina server kami. Pikeun ngaksés éta, buka browser anjeun nganggo tautan sapertos:

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

Sandi pikeun aksés root tiasa didapet dina akun pribadi MCS anjeun (https://mcs.mail.ru/app/services/marketplace/apps/). Tong hilap ngarobih kecap konci root anjeun nalika anjeun mimiti asup!

Lengkah 6: Setel unggah file via SFTP

Pamekar bakal gampang pikeun ngamuat file pikeun halaman wéb anjeun nganggo SFTP. Jang ngalampahkeun ieu, urang bakal nyieun pamaké anyar, nelepon anjeunna webmaster:

$ sudo adduser webmaster

Sistem bakal naroskeun anjeun nyetél kecap konci sareng asupkeun sababaraha data anu sanés.

Ngarobah nu boga diréktori jeung ramatloka anjeun:

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

Ayeuna hayu urang robih konfigurasi SSH supados pangguna énggal ngan ukur gaduh aksés kana SFTP sanés terminal SSH:

$ sudo nano /etc/ssh/sshd_config

Gulung ka tungtung file konfigurasi sareng tambahkeun blok ieu:

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

Simpen file sareng balikan deui jasa:

$ sudo systemctl restart sshd

Ayeuna anjeun tiasa nyambung ka server ngaliwatan sagala klien SFTP, contona, ngaliwatan FileZilla.

hasil

  1. Ayeuna anjeun terang kumaha cara nyiptakeun diréktori énggal sareng ngonpigurasikeun host virtual pikeun situs wéb anjeun dina server anu sami.
  2. Anjeun tiasa sacara gampil nyiptakeun sertipikat SSL anu diperyogikeun - éta gratis, sareng aranjeunna bakal diropéa sacara otomatis.
  3. Anjeun tiasa dianggo kalayan gampang sareng database MySQL ngalangkungan phpMyAdmin anu akrab.
  4. Nyieun akun SFTP anyar jeung nyetel hak aksés teu merlukeun loba usaha. Akun sapertos kitu tiasa dialihkeun ka pangembang wéb sareng pangurus situs pihak katilu.
  5. Tong hilap pikeun périodik ngapdet sistem, sareng kami ogé nyarankeun ngadamel cadangan - dina MCS anjeun tiasa nyandak "snapshots" sadaya sistem kalayan hiji klik, teras, upami perlu, ngajalankeun sadayana gambar.

Sumberdaya anu dianggo anu tiasa mangfaat:

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

Ku jalan kitu, di dieu Anjeun tiasa maca dina VC kumaha yayasan kami nyebarkeun platform pikeun pendidikan online pikeun yatim dumasar kana méga MCS.

sumber: www.habr.com

Tambahkeun komentar