Charity Cloud: Panduan Migrasi



Belum lama ini, Mail.Ru Cloud Solutions (MCS) dan layanan Welcome Mail.Ru meluncurkan proyek Cloud for Charity Foundations , berkat organisasi nirlaba yang bisa mendapatkan sumber daya platform cloud MCS secara gratis. Yayasan Arithmetic of Good charity ikut serta dalam proyek ini dan berhasil menggunakan sebagian infrastrukturnya berdasarkan MCS.

Setelah validasi, NPO dapat menerima daya virtual dari MCS, tetapi penyesuaian lebih lanjut membutuhkan kualifikasi tertentu. Pada artikel ini kami ingin berbagi instruksi spesifik untuk menyiapkan server berbasis Ubuntu Linux untuk situs web dana utama dan sejumlah subdomain menggunakan sertifikat SSL gratis. Bagi banyak orang, ini akan menjadi panduan sederhana, tetapi kami berharap bahwa pengalaman kami akan bermanfaat bagi organisasi nirlaba lainnya, dan tidak hanya.

FYI : apa yang bisa saya dapatkan dari MCS? 4 CPU, RAM 32 GB, HDD 1 TB, OS Linux Ubuntu, penyimpanan objek 500 GB.

Langkah 1: mulai server virtual


Mari kita langsung ke bisnis dan membuat server virtual kami (alias "instance") di akun MCS pribadi Anda. Di toko aplikasi, Anda harus memilih dan menginstal tumpukan LAMP yang sudah jadi, yang merupakan perangkat lunak server yang kompleks (LAMP = Linux, Apache, MySQL, PHP), yang diperlukan untuk meluncurkan sebagian besar situs web.




Pilih konfigurasi yang sesuai untuk server dan buat kunci SSH baru. Setelah mengklik tombol "Instal", server dan tumpukan LAMP akan mulai menginstal, itu akan memakan waktu. Sistem juga akan menawarkan untuk mengunduh kunci privat ke komputer untuk mengendalikan mesin virtual melalui konsol, simpan.

Setelah menginstal aplikasi, mari kita segera mengkonfigurasi firewall, ini juga dilakukan di akun pribadi Anda: pergi ke bagian "Cloud Computing -> Mesin Virtual" dan pilih item "Konfigurasi firewall":


Anda perlu menambahkan izin untuk lalu lintas masuk melalui port 80 dan 9997. Ini diperlukan di masa depan untuk menginstal sertifikat SSL dan bekerja dengan phpMyAdmin. Pada akhirnya, aturan akan terlihat seperti ini:


Sekarang Anda dapat terhubung ke server Anda melalui baris perintah menggunakan protokol SSH. Untuk melakukan ini, ketik perintah berikut, arahkan ke kunci SSH di komputer Anda dan alamat IP eksternal server Anda (Anda dapat menemukannya di bagian "Mesin Virtual"):

$ ssh -i ////key.pem ubuntu@<ip_> 

Selama koneksi pertama ke server, disarankan untuk menginstal semua pembaruan saat ini dan reboot. Untuk melakukan ini, jalankan perintah berikut:

 $ sudo apt-get update 

Sistem akan menerima daftar pembaruan, menginstalnya menggunakan perintah ini dan ikuti instruksi:

 $ sudo apt-get upgrade 

Setelah menginstal pembaruan, mulai ulang server:

 $ sudo reboot 

Langkah 2: konfigurasikan host virtual


Banyak NPO perlu mengandung beberapa domain atau subdomain secara bersamaan (misalnya, situs utama dan beberapa halaman arahan untuk kampanye promosi, dll.). Semua ini dapat di-host dengan nyaman di satu server dengan membuat beberapa host virtual.

Pertama, kita perlu membuat struktur direktori untuk situs yang akan ditampilkan kepada pengunjung. Mari kita buat beberapa direktori:

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

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

Dan tunjukkan pemilik pengguna saat ini:

 $ 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 berisi nama pengguna yang saat ini Anda masuki (secara default, ini adalah pengguna ubuntu ). Sekarang pengguna saat ini memiliki direktori public_html tempat kami akan menyimpan konten.

Kami juga perlu mengedit izin sedikit untuk memastikan bahwa akses baca diizinkan ke direktori web bersama, semua file dan folder yang terkandung di dalamnya. Ini diperlukan agar halaman situs ditampilkan dengan benar:

 $ sudo chmod -R 755 /var/www 

Server web Anda sekarang harus memiliki izin yang diperlukan untuk menampilkan konten. Selain itu, sekarang pengguna Anda memiliki kemampuan untuk membuat konten di direktori yang diperlukan.

Sudah ada file index.php di direktori / var / www / html, mari salin ke direktori baru kami - ini akan menjadi konten kami untuk saat ini:

 $ 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 

Sekarang Anda perlu memastikan bahwa pengguna dapat memasuki situs Anda. Untuk melakukan ini, pertama-tama, kami akan mengonfigurasi file host virtual, yang menentukan seberapa tepatnya server web Apache akan menanggapi permintaan ke domain yang berbeda.

Secara default, Apache memiliki file host virtual 000-default.conf, yang dapat kita gunakan sebagai titik awal. Kami akan menyalinnya untuk membuat file host virtual untuk setiap domain kami. Kami akan mulai dari satu domain, mengkonfigurasinya, menyalinnya ke domain lain, dan kemudian melakukan pengeditan yang diperlukan lagi.

Konfigurasi default Ubuntu mengharuskan setiap file host virtual memiliki ekstensi * .conf.

Mari kita mulai dengan menyalin file untuk domain pertama:

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

Buka file baru di editor dengan hak akses root:

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

Edit data sebagai berikut, menunjukkan port 80, data Anda untuk ServerAdmin , ServerName , ServerAlias , serta path ke direktori root situs Anda, simpan file (Ctrl + X, lalu Y):

 <VirtualHost *:80> ServerAdmin e.valuisky@a-dobra.ru 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 menetapkan domain utama, yang harus cocok dengan nama host virtual. Ini harus nama domain Anda. Yang kedua, ServerAlias , mendefinisikan nama-nama lain yang harus ditafsirkan seolah-olah itu adalah domain utama. Ini nyaman untuk menggunakan nama domain tambahan, misalnya, menggunakan www.

Kami menyalin konfigurasi ini untuk host lain dan juga mengeditnya dengan analogi:

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

Anda dapat membuat sejumlah direktori dan host virtual untuk situs web Anda! Sekarang kita telah membuat file host virtual kita, kita harus memasukkannya. Kita dapat menggunakan utilitas a2ensite untuk mengaktifkan setiap situs kami sebagai berikut:

 $ sudo a2ensite a-dobra.ru.conf 

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

Secara default, port 80 ditutup di LAMP, dan kami akan membutuhkannya di masa depan untuk menginstal sertifikat SSL. Oleh karena itu, mari kita segera mengedit file ports.conf dan kemudian restart Apache:

 $ sudo nano /etc/apache2/ports.conf 

Tambahkan baris baru dan simpan file sehingga terlihat seperti ini:

 Listen 80 Listen 443 Listen 9997 

Setelah menyelesaikan pengaturan, Anda harus memulai ulang Apache agar semua perubahan diterapkan:

 $ sudo systemctl reload apache2 

Langkah 3: mengatur nama domain


Selanjutnya, Anda perlu menambahkan catatan DNS yang akan mengarah ke server baru Anda. Untuk mengelola domain, Aritmatika Yayasan Baik kami menggunakan layanan dns-master.ru, kami akan menunjukkannya dengan contoh.

Pengaturan A-record untuk domain utama biasanya ditunjukkan seperti ini (tanda @ ):


A-record untuk subdomain biasanya ditunjukkan sebagai berikut:


Alamat IP adalah alamat server Linux yang baru saja kita buat. TTL dapat menentukan = 3600.

Setelah beberapa saat, sudah mungkin untuk mengakses situs Anda, tetapi sejauh ini hanya melalui http:// . Pada langkah berikutnya, kami akan menambahkan https:// dukungan.

Langkah 4: konfigurasikan sertifikat SSL gratis


Anda bisa mendapatkan Let's Encrypt sertifikat SSL gratis untuk situs utama Anda dan semua subdomain. Anda juga dapat mengonfigurasi pembaruan otomatis mereka, yang sangat nyaman. Untuk mendapatkan sertifikat SSL, instal Certbot di server Anda:

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

Instal paket Certbot untuk Apache menggunakan apt :

 $ sudo apt install python-certbot-apache 

Certbot sekarang siap digunakan, kami menjalankan perintah:

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

Perintah ini menjalankan certbot, -d switch menentukan nama domain yang akan dikeluarkan sertifikat.

Jika ini adalah pertama kalinya Anda menjalankan certbot, Anda akan diminta untuk memasukkan alamat email dan menyetujui persyaratan layanan. Setelah itu, certbot akan menghubungi server Let's Encrypt dan kemudian verifikasi bahwa Anda benar-benar mengendalikan domain yang Anda minta sertifikatnya.

Jika semuanya berjalan dengan baik, certbot akan bertanya bagaimana Anda ingin mengkonfigurasi 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 menyarankan Anda memilih opsi 2 dan tekan ENTER. Konfigurasi akan diperbarui dan Apache dimulai kembali untuk menerapkan perubahan.

Sekarang sertifikat Anda diunggah, diinstal, dan berfungsi. Coba muat ulang situs Anda menggunakan https: // dan Anda akan melihat ikon keamanan di browser. Jika Anda menguji server Anda dengan SSL Server Labs Test , itu akan menerima nilai A.

Mari Enkripsi sertifikat hanya berlaku selama 90 hari, tetapi paket certbot yang baru saja kita instal akan memperbarui sertifikat secara otomatis. Untuk menguji proses pemutakhiran, kita dapat membuat certbot dry run:

 $ sudo certbot renew --dry-run 

Jika Anda tidak melihat kesalahan apa pun yang dihasilkan dari perintah ini, maka semuanya berfungsi!

Langkah 5: akses ke MySQL dan phpMyAdmin


Banyak situs web menggunakan basis data. Alat phpMyAdmin untuk manajemen basis data sudah diinstal di server kami. Untuk mengaksesnya, klik tautan di browser Anda seperti:

 https://<ip- >:9997 

Kata sandi untuk akses root dapat diperoleh di akun MCS pribadi Anda ( https://mcs.mail.ru/app/services/marketplace/apps/ ). Jangan lupa untuk mengganti kata sandi root saat pertama kali Anda masuk!

Langkah 6: konfigurasikan unggahan file melalui SFTP


Akan nyaman bagi pengembang untuk mengunggah file ke situs web Anda melalui SFTP. Untuk melakukan ini, kami akan membuat pengguna baru, memanggilnya webmaster:

 $ sudo adduser webmaster 

Sistem akan meminta Anda untuk mengatur kata sandi dan memasukkan beberapa data lainnya.

Ubah pemilik direktori dengan situs web Anda:

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

Sekarang mari kita ubah konfigurasi SSH sehingga pengguna baru hanya memiliki akses ke SFTP, dan tidak ke terminal SSH:

 $ sudo nano /etc/ssh/sshd_config 

Gulir file konfigurasi ke bagian paling akhir dan tambahkan blok berikut:

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

Simpan file dan muat ulang layanan:

 $ sudo systemctl restart sshd 

Sekarang Anda dapat terhubung ke server melalui klien apa pun untuk SFTP, misalnya, melalui FileZilla.

Ringkasan


  1. Sekarang Anda tahu cara membuat direktori baru dan mengonfigurasi host virtual untuk situs web Anda di server yang sama.
  2. Anda dapat dengan mudah membuat sertifikat SSL yang diperlukan - gratis, dan akan diperbarui secara otomatis.
  3. Anda dapat dengan mudah bekerja dengan database MySQL melalui phpMyAdmin yang biasa.
  4. Membuat akun SFTP baru dan mengatur hak akses tidak akan membutuhkan banyak usaha. Akun tersebut dapat ditransfer ke pengembang web pihak ketiga dan administrator situs.
  5. Jangan lupa untuk memperbarui sistem secara berkala, dan kami juga menyarankan untuk membuat cadangan - di MCS, Anda dapat mengambil "snapshot" dari seluruh sistem dengan satu klik, dan kemudian, jika perlu, luncurkan seluruh gambar.

Sumber daya yang digunakan yang mungkin berguna:

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

Ngomong-ngomong, di sini Anda dapat membaca di VC bagaimana yayasan kami telah meluncurkan platform untuk pendidikan anak yatim secara online berdasarkan cloud MCS.

Source: https://habr.com/ru/post/id461155/


All Articles