GNU/Linux >> Linux Esercitazione >  >> Linux

Configura un sito Web WordPress con bilanciamento del carico su AWS EC2 – Parte 1

Configura un sito Web WordPress con bilanciamento del carico su AWS EC2. Scopri come configurare la tua applicazione WordPress per gestire un traffico elevato con funzionalità di scalabilità automatica su AWS con Elastic Load Balancing.

In questa guida completa installerai WordPress, configurerai il tuo sito Web per utilizzare AWS S3 per i file multimediali, creerai Amazon Machine Image, modello di installazione, creerai una configurazione di avvio, configurerai un gruppo di ridimensionamento automatico per gestire il traffico in tempo reale e configurerai RDS per il tuo database.

Prerequisiti

  • Un'istanza EC2 in esecuzione. Scopri come creare un'istanza AWS EC2. Puoi scegliere Ubuntu 20.04 LTS o più recente.
  • Assegna un IP elastico alla tua istanza EC2.
  • Configura Amazon RDS e collegalo all'istanza EC2.
  • Configura AWS Route 53 per il tuo nome di dominio.

Se disponi di tutti i prerequisiti richiesti sopra menzionati, puoi procedere alla configurazione di Elastic Load Balancing.

Assicurati di aver aggiunto il gruppo di sicurezza della tua istanza EC2 al gruppo di sicurezza di RDS per una connessione riuscita da EC2 a RDS.

Configurazione iniziale del server

SSH all'istanza VM e inizia aggiornando e aggiornando i pacchetti.

sudo apt update
sudo apt upgrade

Installa Apache2 per WordPress

Installa Apache2 usando il seguente comando.

sudo apt install apache2

Questo installerà apache2 e tutte le dipendenze richieste.

Configura Firewall

Ora puoi configurare Uncomplicated Firewall (UFW) con Apache per consentire l'accesso pubblico alle porte Web predefinite per HTTP , HTTPS e SSH

sudo ufw app list

Vedrai tutte le applicazioni elencate.

Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
  • Apache :Questo profilo apre la porta 80 (traffico web normale, non crittografato)
  • Apache completo :Questo profilo apre entrambe le porte 80 (traffico web normale, non crittografato) e porta 443 (traffico crittografato TLS/SSL)
  • Apache Secure :Questo profilo apre solo la porta 443 (traffico crittografato TLS/SSL)
  • OpenSSH :Questo profilo apre la porta 22 per l'accesso SSH.

Ora abiliteremo Apache Full.

sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'

Abilita UFW usando il seguente comando

sudo ufw enable

Installa PHP 8 ed estensioni

Aggiungi il ondrej/php che ha il pacchetto PHP 8 e altre estensioni PHP richieste.

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

Una volta aggiunto il PPA, puoi installare 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

Configura PHP 8

Ora configuriamo PHP per le applicazioni Web modificando alcuni valori in php.ini file.

Per PHP 8 con Apache il php.ini la posizione sarà nella directory seguente.

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

Premi F6 per cercare all'interno dell'editor e aggiornare i seguenti valori per prestazioni migliori.

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

Una volta installate e configurate le impostazioni PHP, è necessario riavviare Apache affinché le modifiche abbiano effetto.

sudo service apache2 restart

Configura le directory del sito web

Dopo aver installato PHP 8 e Apache, puoi procedere alla configurazione delle directory.

Il tuo sito web si troverà nella home directory e avrà la seguente struttura.

Sostituisci yourdomainname con il tuo nome di dominio originale senza l'estensione.

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

Il public directory è la directory principale del tuo sito web.

Ora creiamo queste directory e impostiamo i permessi corretti

Devi eseguire SSH nella tua istanza VM ed eseguire questi comandi

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

Configura host virtuali per WordPress

Crea un nuovo file di configurazione per il tuo sito web nel sites-available directory.

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

Copia e incolla la seguente configurazione, assicurati di modificare le direttive server_name, error_log e root in modo che corrispondano al tuo nome di dominio. Premi CTRL+X seguito da Y per salvare le modifiche.

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

Per abilitare questa configurazione del sito Web appena creata, collega simbolicamente il file che hai appena creato nel sites-enabled directory.

sudo a2ensite yourdomainname.conf

Controlla la tua configurazione e riavvia Apache per rendere effettive le modifiche

sudo systemctl restart apache2

Installa PhpMyAdmin (facoltativo)

Ora puoi installare PhpMyAdmin che ti aiuta a creare un database e ad assegnargli un utente in modo intuitivo.

Scarica PhpMyAdmin e configuralo utilizzando i seguenti comandi.

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

Modifica il config.inc.php file

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

Aggiungi quanto segue sotto il /* 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';

Inserisci il segreto del pesce palla.

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

Premi CTRL+X seguito da Y e ENTER per salvare ed uscire dal file.

Crea database

Ora puoi accedere alla tua istanza RDS con PhpMyAdmin (http://yourdomainname.com/phpmyadmin ) utilizzando il nome utente e la password master che hai configurato durante la creazione dell'istanza.

Crea un nuovo database e un utente associato a quel database.

Scarica WordPress

Ora che il nostro software server è configurato, possiamo scaricare e configurare WordPress.

Si consiglia sempre di ottenere l'ultima versione di WordPress dal loro sito Web.

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

Una volta scaricato WordPress, è necessario estrarlo utilizzando il seguente comando.

sudo tar xzvf latest.tar.gz

Ora puoi copiare l'intero contenuto della directory nella nostra radice del documento.

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

Quindi ripulisci la tua directory principale eliminando il wordpress cartella e il tar scaricato file.

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

Imposta le autorizzazioni corrette per la cartella principale. Non dimenticare di sostituire il yourdomainname con il tuo nome di dominio hai usato.

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

Installa WordPress

Ora visita il tuo sito web nel browser e seleziona la lingua che desideri utilizzare e fai clic su continua.

Ti verrà chiesto di inserire il tuo database , user , password e hostname .

Inserisci il nome database che hai creato utilizzando PhpMyAdmin e l'utente assegnato con il database con la password. Infine, inserisci l'endpoint RDS come nome host .

Ora puoi eseguire l'installazione.

Una volta completata l'installazione, dobbiamo impostare il metodo che WordPress dovrebbe utilizzare per scrivere sul file system. Dal momento che abbiamo concesso al server Web il permesso di scrivere dove necessario, possiamo impostare esplicitamente il metodo del file system su "diretto". La mancata impostazione di questa impostazione con le nostre impostazioni correnti comporterebbe la richiesta di credenziali FTP di WordPress quando eseguiamo alcune azioni come l'aggiornamento di WordPress, gli aggiornamenti dei plug-in, il caricamento di file, ecc. Questa impostazione può essere aggiunta sotto le impostazioni di connessione al database nel file di configurazione.

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

Trova la riga define('DB_PASSWORD', 'password'); e incolla la riga seguente sotto di essa.

define('FS_METHOD', 'direct');

Premi Ctrl+X e Y per salvare il file di configurazione.

Diventa un Professionista AWS certificato con questo corso facile da imparare ora.

Questo è per la parte 1. Ora hai creato un'istanza in EC2 e RDS e installato WordPress.

Nella parte successiva puoi configurare AWS S3, configurare WordPress per utilizzare S3 per la libreria multimediale, richiedere SSL gestito da AWS, creare un sistema di bilanciamento del carico, un gruppo di ridimensionamento automatico e indirizzare il tuo dominio a Load balancer.

Puoi vedere la parte successiva di questo tutorial completo qui.


Linux
  1. Come avviare un'istanza AWS EC2 utilizzando Terraform

  2. Come configurare il routing basato su host su AWS Application Load Balancer

  3. Crea un'istanza EC2 su AWS utilizzando Terraform

  4. Come installare VSFTP su Ubuntu 20.04

  5. AWS EC2 - Spazio esaurito sul dispositivo

Come installare Lighttpd per ospitare il sito Web in RHEL 8

Come modificare il nome del sito Web in WordPress

Come eseguire il backup e il ripristino di un sito Web WordPress

Configura un sito Web WordPress con bilanciamento del carico su AWS EC2 – Parte 2

Come installare e configurare Sendmail su Ubuntu

Come configurare il tuo primo sito Web WordPress