GNU/Linux >> Znalost Linux >  >> Linux

Nastavte web WordPress s vyváženým zatížením na AWS EC2 – část 1

Nastavte web WordPress s vyváženým zatížením na AWS EC2. Zjistěte, jak nastavit svou aplikaci WordPress tak, aby zvládla vysoký provoz pomocí funkcí automatického škálování na AWS s elastickým vyvažováním zátěže.

V tomto úplném průvodci nainstalujete WordPress, nakonfigurujete svůj web pro použití AWS S3 pro mediální soubory, vytvoříte Amazon Machine Image, šablonu nastavení, vytvoříte konfiguraci spuštění, nakonfigurujete skupinu automatického škálování pro správu živého provozu a nastavíte RDS pro vaši databázi.

Předpoklady

  • Spuštěná instance EC2. Přečtěte si, jak vytvořit instanci AWS EC2. Můžete si vybrat Ubuntu 20.04 LTS nebo nejnovější.
  • Přiřaďte k instanci EC2 elastickou IP.
  • Nastavte službu Amazon RDS a připojte ji k instanci EC2.
  • Nastavte AWS Route 53 pro název vaší domény.

Pokud splňujete všechny výše uvedené požadované předpoklady, můžete přistoupit k nastavení elastického vyvažování zátěže.

Ujistěte se, že jste přidali skupinu zabezpečení vaší instance EC2 do skupiny zabezpečení RDS pro úspěšné připojení z EC2 k RDS.

Počáteční nastavení serveru

SSH na instanci VM a začněte aktualizací a upgradem balíčků.

sudo apt update
sudo apt upgrade

Nainstalujte Apache2 pro WordPress

Nainstalujte Apache2 pomocí následujícího příkazu.

sudo apt install apache2

Tím se nainstaluje apache2 a všechny požadované závislosti.

Konfigurace brány firewall

Nyní můžete nastavit Uncomplicated Firewall (UFW) s Apache, aby umožnil veřejný přístup na výchozích webových portech pro HTTP , HTTPS a SSH

sudo ufw app list

Zobrazí se všechny uvedené aplikace.

Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
  • Apache :Tento profil otevírá port 80 (normální, nešifrovaný webový provoz)
  • Apache Full :Tento profil otevírá oba porty 80 (normální, nešifrovaný webový provoz) a port 443 (provoz šifrovaný TLS/SSL)
  • Apache Secure :Tento profil otevírá pouze port 443 (provoz šifrovaný TLS/SSL)
  • OpenSSH :Tento profil otevírá port 22 pro přístup SSH.

Nyní povolíme Apache Full.

sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'

Povolte UFW pomocí následujícího příkazu

sudo ufw enable

Nainstalujte PHP 8 a rozšíření

Přidejte ondrej/php který má balíček PHP 8 a další požadovaná rozšíření PHP.

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

Jakmile přidáte PPA, můžete nainstalovat 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

Nakonfigurujte PHP 8

Nyní nakonfigurujeme PHP pro webové aplikace změnou některých hodnot v php.ini soubor.

Pro PHP 8 s Apache php.ini umístění bude v následujícím adresáři.

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

Stiskněte F6 pro vyhledávání v editoru a pro lepší výkon aktualizujte následující hodnoty.

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

Jakmile nainstalujete a nakonfigurujete nastavení PHP, musíte restartovat Apache, aby se změny projevily.

sudo service apache2 restart

Konfigurace adresářů webových stránek

Jakmile nainstalujete PHP 8 a Apache, můžete přejít k instalačním adresářům.

Váš web bude umístěn v domovském adresáři a bude mít následující strukturu.

Nahraďte yourdomainname s vaším původním názvem domény bez přípony.

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

public adresář je kořenový adresář vašeho webu.

Nyní vytvoříme tyto adresáře a nastavíme správná oprávnění

Potřebujete SSH do vaší instance VM a spustit tyto příkazy

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

Konfigurace virtuálních hostitelů pro WordPress

Vytvořte nový konfigurační soubor pro svůj web v sites-available adresář.

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

Zkopírujte a vložte následující konfiguraci a ujistěte se, že jste změnili direktivy server_name, error_log a root tak, aby odpovídaly názvu vaší domény. Stiskněte CTRL+X následuje Y pro uložení změn.

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

Chcete-li povolit tuto nově vytvořenou konfiguraci webu, symbolicky propojte soubor, který jste právě vytvořili, do sites-enabled adresář.

sudo a2ensite yourdomainname.conf

Zkontrolujte konfiguraci a restartujte Apache, aby se změny projevily

sudo systemctl restart apache2

Nainstalujte PhpMyAdmin (volitelné)

Nyní si můžete nainstalovat PhpMyAdmin, který vám pomůže vytvořit databázi a uživatelsky přívětivým způsobem do ní přiřadit uživatele.

Stáhněte si PhpMyAdmin a nakonfigurujte jej pomocí následujících příkazů.

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

Upravte config.inc.php soubor

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

Přidejte následující pod /* 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';

Zadejte tajemství blowfish.

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

Stiskněte CTRL+X následuje Y a ENTER pro uložení a ukončení souboru.

Vytvořit databázi

Nyní se můžete přihlásit ke své instanci RDS pomocí PhpMyAdmin (http://yourdomainname.com/phpmyadmin ) pomocí hlavního uživatelského jména a hesla, které jste nakonfigurovali při vytváření instance.

Vytvořte novou databázi a uživatele přidruženého k této databázi.

Stáhněte si WordPress

Nyní, když je náš serverový software nakonfigurován, můžeme si stáhnout a nastavit WordPress.

Vždy se doporučuje získat nejnovější verzi WordPressu z jejich webu.

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

Jakmile je WordPress stažen, musíte jej extrahovat pomocí následujícího příkazu.

sudo tar xzvf latest.tar.gz

Nyní můžete zkopírovat celý obsah adresáře do našeho kořenového adresáře dokumentů.

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

Dále vyčistěte kořenový adresář odstraněním wordpress složku a staženou složku tar soubor.

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

Nastavte správná oprávnění pro kořenovou složku. Nezapomeňte nahradit yourdomainname s vaším názvem domény jste použili.

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

Nainstalujte WordPress

Nyní navštivte svůj web v prohlížeči a vyberte jazyk, který chcete používat, a klikněte na Pokračovat.

Budete vyzváni k zadání database , user , password a hostname .

Zadejte název databáze které jste vytvořili pomocí PhpMyAdmin a uživatele přiřazené k databázi s heslem. Nakonec zadejte koncový bod RDS jako název hostitele .

Nyní můžete spustit instalaci.

Po dokončení instalace musíme nastavit metodu, kterou má WordPress používat k zápisu do systému souborů. Protože jsme webovému serveru udělili oprávnění zapisovat tam, kam potřebuje, můžeme explicitně nastavit metodu souborového systému na „přímé“. Pokud toto nenastavíme s našimi aktuálními nastaveními, bude to mít za následek, že WordPress bude vyžadovat zadání přihlašovacích údajů FTP, když provádíme některé akce, jako je aktualizace WordPress, aktualizace pluginů, nahrávání souboru atd. Toto nastavení lze přidat pod nastavení připojení k databázi v konfiguračním souboru.

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

Najděte řádek define('DB_PASSWORD', 'password'); a vložte pod něj následující řádek.

define('FS_METHOD', 'direct');

Stiskněte Ctrl+X a Y pro uložení konfiguračního souboru.

Staňte se Certifikovaným profesionálem AWS s tímto snadno naučitelným kurzem.

To je pro část 1. Nyní jste vytvořili instanci v EC2 a RDS a nainstalovali WordPress.

V další části můžete nakonfigurovat AWS S3, nakonfigurovat WordPress tak, aby používal S3 pro knihovnu médií, požádat o SSL spravované AWS, vytvořit nástroj pro vyrovnávání zatížení, skupinu automatického škálování a nasměrovat svou doménu na nástroj pro vyrovnávání zatížení.

Na další část tohoto úplného tutoriálu se můžete podívat zde.


Linux
  1. Vytvořte instanci EC2 na AWS pomocí Terraform

  2. Jak nainstalovat VSFTP na Ubuntu 20.04

  3. AWS EC2 – Na zařízení nezbývá místo

  1. Jak spustit instanci AWS EC2 pomocí Terraform

  2. Jak nakonfigurovat směrování založené na hostiteli na nástroji pro vyrovnávání zatížení aplikací AWS

  3. Jak nastavit server Linux na Amazon AWS

  1. Jak nastavit aplikaci Elastic Beanstalk na AWS

  2. Jak spravovat instance AWS EC2 pomocí aws-cli

  3. Jak vytvořit statický web na AWS S3 Bucket