GNU/Linux >> Belajar Linux >  >> Linux

Siapkan Situs WordPress Load Balanced di AWS EC2 – Bagian 1

Siapkan Situs Web WordPress dengan Load Balanced di AWS EC2. Pelajari cara menyiapkan aplikasi WordPress Anda untuk menangani lalu lintas tinggi dengan kemampuan penskalaan otomatis di AWS dengan Elastic Load Balancing.

Dalam panduan lengkap ini Anda akan menginstal WordPress, mengonfigurasi situs web Anda untuk menggunakan AWS S3 untuk file media, membuat Amazon Machine Image, menyiapkan template, membuat konfigurasi peluncuran, mengonfigurasi grup penskalaan otomatis untuk mengelola lalu lintas langsung, dan menyiapkan RDS untuk database Anda.

Prasyarat

  • Instans EC2 yang sedang berjalan. Pelajari cara membuat instans AWS EC2. Anda dapat memilih Ubuntu 20.04 LTS atau yang terbaru.
  • Tetapkan IP Elastis ke Instans EC2 Anda.
  • Siapkan Amazon RDS dan hubungkan dengan Instans EC2.
  • Siapkan AWS Route 53 untuk nama Domain Anda.

Jika Anda memiliki semua prasyarat yang disebutkan di atas, Anda dapat melanjutkan ke penyiapan Elastic Load Balancing.

Pastikan Anda telah menambahkan grup keamanan instans EC2 Anda ke grup keamanan RDS untuk koneksi yang berhasil dari EC2 ke RDS.

Pengaturan Server Awal

SSH ke Instans VM dan mulai dengan memperbarui dan memutakhirkan paket.

sudo apt update
sudo apt upgrade

Instal Apache2 untuk WordPress

Instal Apache2 menggunakan perintah berikut.

sudo apt install apache2

Ini akan menginstal apache2 dan semua dependensi yang diperlukan.

Konfigurasi Firewall

Sekarang Anda dapat menyiapkan Uncomplicated Firewall (UFW) dengan Apache untuk mengizinkan akses publik pada port web default untuk HTTP , HTTPS dan SSH

sudo ufw app list

Anda akan melihat semua aplikasi yang terdaftar.

Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
  • Apache :Profil ini membuka port 80 (lalu lintas web normal dan tidak terenkripsi)
  • Apache Penuh :Profil ini membuka kedua port 80 (lalu lintas web normal, tidak terenkripsi) dan port 443 (lalu lintas terenkripsi TLS/SSL)
  • Apache Aman :Profil ini hanya membuka port 443 (lalu lintas terenkripsi TLS/SSL)
  • OpenSSH :Profil ini membuka port 22 untuk akses SSH.

Sekarang kita akan mengaktifkan Apache Full.

sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'

Aktifkan UFW menggunakan perintah berikut

sudo ufw enable

Instal PHP 8 dan Ekstensi

Tambahkan ondrej/php yang memiliki paket PHP 8 dan ekstensi PHP lain yang diperlukan.

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

Setelah Anda menambahkan PPA, Anda dapat menginstal PHP 8.

sudo apt install php8.0 libapache2-mod-php8.0 php8.0-common php8.0-mysql php8.0-xml php8.0-xmlrpc php8.0-curl php8.0-gd php8.0-imagick php8.0-cli php8.0-dev php8.0-imap php8.0-mbstring php8.0-opcache php8.0-soap php8.0-zip php8.0-intl php8.0-bcmath unzip mariadb-client -y

Konfigurasi PHP 8

Sekarang kita mengkonfigurasi PHP untuk Aplikasi Web dengan mengubah beberapa nilai di php.ini berkas.

Untuk PHP 8 dengan Apache php.ini lokasi akan berada di direktori berikut.

sudo nano /etc/php/8.0/apache2/php.ini

Tekan F6 untuk mencari di dalam editor dan memperbarui nilai berikut untuk kinerja yang lebih baik.

upload_max_filesize = 32M 
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000

Setelah Anda menginstal dan mengonfigurasi pengaturan PHP Anda, Anda perlu me-restart Apache Anda agar perubahan diterapkan.

sudo service apache2 restart

Konfigurasikan Direktori Situs Web

Setelah Anda menginstal PHP 8 dan Apache, Anda dapat melanjutkan ke direktori setup.

Situs web Anda akan ditempatkan di direktori home dan memiliki struktur sebagai berikut.

Ganti yourdomainname dengan nama domain asli Anda tanpa ekstensi.

/var/www/html/
 -- yourdomainname
 ---- public

public directory adalah direktori root situs web Anda.

Sekarang kita membuat direktori ini dan mengatur izin yang benar

Anda perlu SSH ke Instans VM Anda dan menjalankan perintah ini

mkdir -p /var/www/html/yourdomainname/public
sudo chmod -R 755 /var/www/html/yourdomainname
sudo chown -R www-data:www-data /var/www/html/yourdomainname

Mengonfigurasi Host Virtual untuk WordPress

Buat file konfigurasi baru untuk situs web Anda di sites-available direktori.

sudo nano /etc/apache2/sites-available/yourdomainname.conf

Salin dan tempel konfigurasi berikut, pastikan Anda mengubah server_name, error_log dan root directives agar sesuai dengan nama domain Anda. Tekan CTRL+X diikuti oleh Y untuk menyimpan perubahan.

<VirtualHost *:80>
      ServerAdmin [email protected]
      ServerName www.yourdomainname.com
      ServerAlias yourdomainname.com

      DocumentRoot /var/www/html/yourdomainname/public

      <Directory /var/www/html/yourdomainname/public>
           Options Indexes FollowSymLinks
           AllowOverride All
           Require all granted
      </Directory>

      <Directory /usr/share/phpmyadmin>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
      </Directory>

      ErrorLog ${APACHE_LOG_DIR}/yourdomainname.com_error.log
      CustomLog ${APACHE_LOG_DIR}/yourdomainname.com_access.log combined
</VirtualHost>

Untuk mengaktifkan konfigurasi situs web yang baru dibuat ini, symlink file yang baru saja Anda buat ke dalam sites-enabled direktori.

sudo a2ensite yourdomainname.conf

Periksa konfigurasi Anda dan mulai ulang Apache agar perubahan diterapkan

sudo systemctl restart apache2

Instal PhpMyAdmin (Opsional)

Sekarang Anda dapat menginstal PhpMyAdmin yang membantu Anda membuat database dan menetapkan pengguna ke dalamnya dengan cara yang ramah pengguna.

Unduh PhpMyAdmin dan konfigurasikan menggunakan perintah berikut.

sudo wget -P /usr/share https://files.phpmyadmin.net/phpMyAdmin/5.1/phpMyAdmin-5.1-all-languages.zip
sudo unzip /usr/share/phpMyAdmin-5.1-all-languages.zip -d /usr/share
sudo mv /usr/share/phpMyAdmin-5.1-all-languages /usr/share/phpmyadmin
sudo rm -f /usr/share/phpMyAdmin-5.1-all-languages.zip
sudo mkdir /usr/share/phpmyadmin/tmp
sudo chmod -R 777 /usr/share/phpmyadmin/tmp
sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Edit config.inc.php berkas

sudo nano /usr/share/phpmyadmin/config.inc.php

Tambahkan kode berikut di bawah /* Authentication type */ .

$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'RDS_DATABASE_ENDPOINT';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Servers'][$i]['verbose'] = 'Amazon RDS';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['TempDir'] = '/usr/share/phpmyadmin/tmp';

Masukkan rahasia blowfish.

$cfg['blowfish_secret'] = 'Some_Secret_Password_54_characters';

Tekan CTRL+X diikuti oleh Y dan ENTER untuk menyimpan dan keluar dari file.

Buat Basis Data

Sekarang Anda dapat login ke instans RDS Anda dengan PhpMyAdmin (http://yourdomainname.com/phpmyadmin ) menggunakan nama pengguna dan sandi utama yang Anda konfigurasikan saat membuat instance.

Buat database baru dan pengguna yang terkait dengan database tersebut.

Unduh WordPress

Sekarang setelah perangkat lunak server kami dikonfigurasi, kami dapat mengunduh dan mengatur WordPress.

Selalu disarankan untuk mendapatkan versi terbaru WordPress dari situs web mereka.

cd /var/www/html/yourdomainname/public
curl -LO https://wordpress.org/latest.tar.gz

Setelah WordPress diunduh, Anda perlu mengekstraknya menggunakan perintah berikut.

sudo tar xzvf latest.tar.gz

Sekarang, Anda dapat menyalin seluruh isi direktori ke root dokumen kami.

sudo cp -a /var/www/html/yourdomainname/public/wordpress/. var/www/html/yourdomainname/public

Selanjutnya bersihkan direktori root Anda dengan menghapus wordpress folder dan tar yang diunduh berkas.

sudo rm -r /var/www/html/yourdomainname/public/wordpress
sudo rm -f /var/www/html/yourdomainname/public/latest.tar.gz 

Siapkan izin yang benar untuk folder root. Jangan lupa ganti yourdomainname dengan nama domain . Anda Anda gunakan.

sudo chmod -R 755 /var/www/html/yourdomainname
sudo chown -R www-data:www-data /var/www/html/yourdomainname

Instal WordPress

Sekarang kunjungi situs web Anda di browser dan pilih bahasa yang ingin Anda gunakan dan klik lanjutkan.

Anda akan diminta untuk memasukkan database , user , password , dan hostname .

Masukkan nama basis data Anda buat menggunakan PhpMyAdmin dan pengguna ditugaskan dengan database dengan password. Terakhir, masukkan titik akhir RDS sebagai nama host .

Sekarang Anda dapat menjalankan instalasi.

Setelah instalasi selesai, kita perlu mengatur metode yang harus digunakan WordPress untuk menulis ke sistem file. Karena kami telah memberikan izin server web untuk menulis di tempat yang diperlukan, kami dapat secara eksplisit mengatur metode sistem file ke "direct". Kegagalan untuk menyetel ini dengan pengaturan kami saat ini akan mengakibatkan WordPress meminta kredensial FTP ketika kami melakukan beberapa tindakan seperti pembaruan WordPress, pembaruan plugin, unggahan file, dll. Pengaturan ini dapat ditambahkan di bawah pengaturan koneksi database di file konfigurasi.

sudo nano /var/www/html/yourdomainname/public/wp-config.php

Temukan baris define('DB_PASSWORD', 'password'); dan rekatkan baris berikut di bawahnya.

define('FS_METHOD', 'direct');

Tekan Ctrl+X dan Y untuk menyimpan file konfigurasi Anda.

Menjadi AWS Professional Bersertifikat dengan kursus yang mudah dipelajari ini sekarang.

Itu untuk bagian 1. Sekarang Anda telah membuat Instance di EC2 dan RDS dan menginstal WordPress.

Di bagian selanjutnya Anda dapat mengonfigurasi AWS S3, mengonfigurasi WordPress untuk menggunakan S3 untuk pustaka media, meminta SSL terkelola AWS, membuat penyeimbang beban, grup penskalaan otomatis, dan mengarahkan domain Anda ke Penyeimbang beban.

Anda dapat melihat bagian selanjutnya dari tutorial lengkap ini di sini.


Linux
  1. Buat instans EC2 di AWS menggunakan Terraform

  2. Cara Menginstal VSFTP di Ubuntu 20.04

  3. AWS EC2 - Tidak Ada Ruang Tersisa di Perangkat

  1. Cara Meluncurkan Instans AWS EC2 Menggunakan Terraform

  2. Cara mengonfigurasi perutean Berbasis Host pada penyeimbang beban aplikasi AWS

  3. Cara menyiapkan server Linux di Amazon AWS

  1. Cara menyiapkan Aplikasi Pohon Kacang Elastis di AWS

  2. Cara mengelola instans AWS EC2 menggunakan aws-cli

  3. Cara Membuat Situs Web Statis di Bucket AWS S3