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 porta443
(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.