GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Richten Sie eine WordPress-Website mit Lastenausgleich auf AWS EC2 ein – Teil 1

Richten Sie eine WordPress-Website mit Lastenausgleich auf AWS EC2 ein. Erfahren Sie, wie Sie Ihre WordPress-Anwendung einrichten, um hohen Datenverkehr mit Auto-Scaling-Funktionen auf AWS mit Elastic Load Balancing zu bewältigen.

In dieser vollständigen Anleitung installieren Sie WordPress, konfigurieren Ihre Website für die Verwendung von AWS S3 für Mediendateien, erstellen ein Amazon Machine Image, richten eine Vorlage ein, erstellen eine Startkonfiguration, konfigurieren eine Gruppe mit automatischer Skalierung, um den Live-Datenverkehr zu verwalten, und richten RDS für Ihre Datenbank ein /P>

Voraussetzungen

  • Eine laufende EC2-Instanz. Erfahren Sie, wie Sie eine AWS EC2-Instance erstellen. Sie können Ubuntu 20.04 LTS oder die neueste Version auswählen.
  • Weisen Sie Ihrer EC2-Instance eine Elastic IP zu.
  • Richten Sie Amazon RDS ein und verbinden Sie es mit EC2 Instance.
  • Richten Sie AWS Route 53 für Ihren Domänennamen ein.

Wenn Sie alle oben genannten erforderlichen Voraussetzungen erfüllt haben, können Sie mit der Einrichtung von Elastic Load Balancing fortfahren.

Stellen Sie sicher, dass Sie die Sicherheitsgruppe Ihrer EC2-Instance zur Sicherheitsgruppe von RDS hinzugefügt haben, um eine erfolgreiche Verbindung von EC2 zu RDS herzustellen.

Ersteinrichtung des Servers

Stellen Sie eine SSH-Verbindung zur VM-Instanz her und beginnen Sie mit dem Aktualisieren und Upgraden der Pakete.

sudo apt update
sudo apt upgrade

Installieren Sie Apache2 für WordPress

Installieren Sie Apache2 mit dem folgenden Befehl.

sudo apt install apache2

Dadurch wird apache2 installiert und alle erforderlichen Abhängigkeiten.

Firewall konfigurieren

Jetzt können Sie eine unkomplizierte Firewall (UFW) mit Apache einrichten, um den öffentlichen Zugriff auf Standard-Webports für HTTP zu ermöglichen , HTTPS und SSH

sudo ufw app list

Sie sehen alle aufgelisteten Anwendungen.

Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
  • Apache :Dieses Profil öffnet Port 80 (normaler, unverschlüsselter Webverkehr)
  • Apache voll :Dieses Profil öffnet beide Ports 80 (normaler, unverschlüsselter Webverkehr) und Port 443 (TLS/SSL-verschlüsselter Datenverkehr)
  • Apache-sicher :Dieses Profil öffnet nur Port 443 (TLS/SSL-verschlüsselter Datenverkehr)
  • OpenSSH :Dieses Profil öffnet Port 22 für den SSH-Zugriff.

Jetzt aktivieren wir Apache Full.

sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'

Aktivieren Sie UFW mit dem folgenden Befehl

sudo ufw enable

Installieren Sie PHP 8 und Erweiterungen

Fügen Sie ondrej/php hinzu das das PHP 8-Paket und andere erforderliche PHP-Erweiterungen enthält.

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

Sobald Sie das PPA hinzugefügt haben, können Sie PHP 8 installieren.

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

PHP 8 konfigurieren

Jetzt konfigurieren wir PHP für Webanwendungen, indem wir einige Werte in php.ini ändern Datei.

Für PHP 8 mit Apache der php.ini Der Speicherort befindet sich im folgenden Verzeichnis.

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

Drücken Sie F6 für die Suche im Editor und aktualisieren Sie die folgenden Werte für eine bessere Leistung.

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

Nachdem Sie Ihre PHP-Einstellungen installiert und konfiguriert haben, müssen Sie Ihren Apache neu starten, damit die Änderungen wirksam werden.

sudo service apache2 restart

Website-Verzeichnisse konfigurieren

Sobald Sie PHP 8 und Apache installiert haben, können Sie mit den Setup-Verzeichnissen fortfahren.

Ihre Website befindet sich im Home-Verzeichnis und hat die folgende Struktur.

Ersetzen Sie yourdomainname mit Ihrem ursprünglichen Domainnamen ohne die Erweiterung.

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

Die public Verzeichnis ist das Stammverzeichnis Ihrer Website.

Jetzt erstellen wir diese Verzeichnisse und setzen die richtigen Berechtigungen

Sie müssen eine SSH-Verbindung zu Ihrer VM-Instanz herstellen und diese Befehle ausführen

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

Virtuelle Hosts für WordPress konfigurieren

Erstellen Sie eine neue Konfigurationsdatei für Ihre Website im sites-available Verzeichnis.

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

Kopieren Sie die folgende Konfiguration und fügen Sie sie ein. Stellen Sie sicher, dass Sie die Anweisungen server_name, error_log und root so ändern, dass sie mit Ihrem Domänennamen übereinstimmen. Drücken Sie CTRL+X gefolgt von Y um die Änderungen zu speichern.

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

Um diese neu erstellte Website-Konfiguration zu aktivieren, verknüpfen Sie die soeben erstellte Datei symbolisch mit sites-enabled Verzeichnis.

sudo a2ensite yourdomainname.conf

Überprüfen Sie Ihre Konfiguration und starten Sie Apache neu, damit die Änderungen wirksam werden

sudo systemctl restart apache2

Installieren Sie PhpMyAdmin (optional)

Jetzt können Sie PhpMyAdmin installieren, das Ihnen hilft, eine Datenbank zu erstellen und ihr auf benutzerfreundliche Weise einen Benutzer zuzuweisen.

Laden Sie PhpMyAdmin herunter und konfigurieren Sie es mit den folgenden Befehlen.

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

Bearbeiten Sie config.inc.php Datei

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

Fügen Sie Folgendes unter /* Authentication type */ hinzu .

$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';

Geben Sie das Blowfish-Geheimnis ein.

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

Drücken Sie CTRL+X gefolgt von Y und ENTER um die Datei zu speichern und zu beenden.

Datenbank erstellen

Jetzt können Sie sich mit PhpMyAdmin bei Ihrer RDS-Instanz anmelden (http://yourdomainname.com/phpmyadmin ) mit dem Master-Benutzernamen und -Passwort, die Sie beim Erstellen der Instanz konfiguriert haben.

Erstellen Sie eine neue Datenbank und einen dieser Datenbank zugeordneten Benutzer.

WordPress herunterladen

Nachdem unsere Serversoftware konfiguriert ist, können wir WordPress herunterladen und einrichten.

Es wird immer empfohlen, die neueste Version von WordPress von ihrer Website herunterzuladen.

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

Sobald WordPress heruntergeladen ist, müssen Sie es mit dem folgenden Befehl extrahieren.

sudo tar xzvf latest.tar.gz

Jetzt können Sie den gesamten Inhalt des Verzeichnisses in unseren Dokumentenstamm kopieren.

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

Als nächstes bereinigen Sie Ihr Root-Verzeichnis, indem Sie wordpress löschen Ordner und das heruntergeladene tar Datei.

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

Richten Sie die richtigen Berechtigungen für den Stammordner ein. Vergessen Sie nicht, den yourdomainname zu ersetzen mit Ihrem Domainnamen Sie verwendet haben.

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

WordPress installieren

Besuchen Sie nun Ihre Website im Browser und wählen Sie die gewünschte Sprache aus und klicken Sie auf Weiter.

Sie werden aufgefordert, Ihren database einzugeben , user , password , und hostname .

Geben Sie den Datenbanknamen ein die Sie mit PhpMyAdmin und dem Benutzer erstellt haben mit dem Passwort der Datenbank zugeordnet. Geben Sie abschließend den RDS-Endpunkt als Hostname ein .

Jetzt können Sie die Installation ausführen.

Sobald die Installation abgeschlossen ist, müssen wir die Methode festlegen, die WordPress verwenden soll, um in das Dateisystem zu schreiben. Da wir dem Webserver die Erlaubnis gegeben haben, dort zu schreiben, wo es nötig ist, können wir die Dateisystemmethode explizit auf „direct“ setzen. Wenn Sie dies nicht mit unseren aktuellen Einstellungen festlegen, würde WordPress zur Eingabe von FTP-Anmeldeinformationen führen, wenn wir einige Aktionen wie WordPress-Update, Plugin-Updates, Datei-Upload usw. durchführen. Diese Einstellung kann unterhalb der Datenbankverbindungseinstellungen in der Konfigurationsdatei hinzugefügt werden.

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

Suchen Sie die Zeile define('DB_PASSWORD', 'password'); und fügen Sie die folgende Zeile darunter ein.

define('FS_METHOD', 'direct');

Drücken Sie Ctrl+X und Y um Ihre Konfigurationsdatei zu speichern.

Werden Sie ein zertifizierter AWS Professional jetzt mit diesem einfach zu lernenden Kurs.

Das ist Teil 1. Jetzt haben Sie eine Instanz in EC2 und RDS erstellt und WordPress installiert.

Im nächsten Teil können Sie AWS S3 konfigurieren, WordPress für die Verwendung von S3 für die Medienbibliothek konfigurieren, AWS-verwaltetes SSL anfordern, Load Balancer und Auto Scaling Group erstellen und Ihre Domain auf Load Balancer verweisen.

Sie können den nächsten Teil dieses vollständigen Tutorials hier sehen.


Linux
  1. So starten Sie eine AWS EC2-Instanz mit Terraform

  2. So konfigurieren Sie Host-basiertes Routing auf AWS Application Load Balancer

  3. Erstellen Sie mit Terraform eine EC2-Instance auf AWS

  4. So installieren Sie VSFTP unter Ubuntu 20.04

  5. AWS EC2 – Kein Speicherplatz mehr auf dem Gerät

So installieren Sie Lighttpd zum Hosten der Website in RHEL 8

So ändern Sie den Website-Namen in WordPress

So sichern und wiederherstellen Sie eine WordPress-Website

Richten Sie eine WordPress-Website mit Lastenausgleich auf AWS EC2 ein – Teil 2

So installieren und konfigurieren Sie Sendmail unter Ubuntu

So richten Sie Ihre erste WordPress-Website ein