Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Tutorial: Einen LAMP Server auf AL2 023 installieren
Die folgenden Verfahren helfen Ihnen bei der Installation eines Apache-Webservers mit PHP MariaDB-Unterstützung
Wichtig
Diese Verfahren sind für die Verwendung mit AL2 023 vorgesehen. Wenn Sie versuchen, einen LAMP Webserver auf einer anderen Distribution wie Ubuntu oder Red Hat Enterprise Linux einzurichten, funktioniert dieses Tutorial nicht. Informationen zu Ubuntu finden Sie in der folgenden Dokumentation der Ubuntu-Community: ApacheMySQLPHP
Aufgaben
Schritt 1: Bereiten Sie den LAMP Server vor
Voraussetzungen
-
In diesem Tutorial wird davon ausgegangen, dass Sie bereits eine neue Instanz mit AL2 023 gestartet haben, deren öffentlicher DNS Name über das Internet erreichbar ist. Weitere Informationen finden Sie unter AL2023 bei Amazon EC2. Sie müssen Ihre Sicherheitsgruppe auch so konfiguriert haben, dass Verbindungen SSH (Port 22), HTTP (Port 80) und HTTPS (Port 443) zulässig sind. Weitere Informationen zu diesen Voraussetzungen finden Sie unter Autorisieren des eingehenden Datenverkehrs für Ihre Linux-Instances im EC2Amazon-Benutzerhandbuch.
-
Mit dem folgenden Verfahren wird die neueste PHP Version installiert, die auf AL2 023 verfügbar ist, derzeit 8.1. Wenn Sie andere als die in diesem Tutorial beschriebenen PHP Anwendungen verwenden möchten, sollten Sie deren Kompatibilität mit 8.1 überprüfen.
Um den LAMP Server vorzubereiten
-
Verbinden Sie sich mit der Instance. Weitere Informationen finden Sie unter Verbindung zu AL2 023 Instanzen herstellen.
-
Um sicherzustellen, dass alle Ihre Softwarepakete aktuell sind, führen Sie ein schnelles Softwareupdate auf Ihrer Instance aus. Dieser Vorgang kann einige Minuten in Anspruch nehmen, ist aber wichtig, um sicherzustellen, dass Sie über die neuesten Sicherheitsupdates und Fehlerbehebungen verfügen.
Mit der Option
-y
werden die Updates installiert, ohne um Bestätigung zu bitten. Wenn Sie die Aktualisierungen vor der Installation überprüfen möchten, können Sie diese Option auslassen.[ec2-user ~]$
sudo dnf upgrade -y
-
Installieren Sie die neuesten Versionen des Apache-Webservers und der PHP Pakete für AL2 023.
[ec2-user ~]$
sudo dnf install -y httpd wget php-fpm php-mysqli php-json php php-devel
-
Installieren Sie die MariaDB-Softwarepakete. Verwenden Sie den Befehl dnf install, um mehrere Softwarepakete und alle damit verbundenen Abhängigkeiten gleichzeitig zu installieren.
[ec2-user ~]$
sudo dnf install mariadb105-serverSie können die aktuellen Versionen dieser Pakete mit dem folgenden Befehl anzeigen:
[ec2-user ~]$
sudo dnf infopackage_name
Beispiel:
[root@ip-172-31-25-170 ec2-user]# dnf info mariadb105 Last metadata expiration check: 0:00:16 ago on Tue Feb 14 21:35:13 2023. Installed Packages Name : mariadb105 Epoch : 3 Version : 10.5.16 Release : 1.amzn2023.0.6 Architecture : x86_64 Size : 18 M Source : mariadb105-10.5.16-1.amzn2023.0.6.src.rpm Repository : @System From repo : amazonlinux Summary : A very fast and robust SQL database server URL : http://mariadb.org License : GPLv2 and LGPLv2 Description : MariaDB is a community developed fork from MySQL - a multi-user, multi-threaded : SQL database server. It is a client/server implementation consisting of : a server daemon (mariadbd) and many different client programs and libraries. : The base package contains the standard MariaDB/MySQL client programs and : utilities.
-
Starten Sie den Apache-Webserver.
[ec2-user ~]$
sudo systemctl start httpd
-
Konfigurieren Sie den Apache-Webserver mit dem Befehl systemctl so, dass er bei jedem Systemstart startet.
[ec2-user ~]$
sudo systemctl enable httpd
Mit folgendem Befehl können Sie prüfen, ob der Befehl httpd ausgeführt wird:
[ec2-user ~]$
sudo systemctl is-enabled httpd
-
Fügen Sie eine Sicherheitsregel hinzu, um eingehende Verbindungen HTTP (Port 80) zu Ihrer Instance zuzulassen, falls Sie dies noch nicht getan haben. Standardmäßig ein Launch-Wizard-
N
Beim Start wurde eine Sicherheitsgruppe für Ihre Instance erstellt. Wenn Sie keine zusätzlichen Sicherheitsgruppenregeln hinzugefügt haben, enthält diese Gruppe nur eine einzige Regel, um SSH Verbindungen zuzulassen.Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/
. Wählen Sie im linken Navigator die Option Instances und wählen Sie Ihre Instance aus.
-
Zeigen Sie auf der Registerkarte Sicherheit die Regeln für eingehenden Datenverkehr an. Sie sollten die folgende Regel sehen:
Port range Protocol Source 22 tcp 0.0.0.0/0
Warnung
0.0.0.0/0
Durch Verwenden können alle IPv4 Adressen über auf Ihre Instance zugreifenSSH. Dies ist zwar für kurze Zeit in einer Testumgebung akzeptabel, aber für Produktionsumgebungen sehr unsicher. Für die Produktion wird nur eine bestimmte IP-Adresse bzw. ein bestimmter Adressbereich für den Zugriff auf Ihre Instance autorisiert. -
Wenn es keine Regel für eingehende Verbindungen gibt, die Verbindungen HTTP (Port 80) zulassen, müssen Sie jetzt die Regel hinzufügen. Wählen Sie den Link für die Sicherheitsgruppe aus. Fügen Sie mithilfe der Verfahren unter Autorisieren von eingehendem Datenverkehr für Ihre Linux-Instances eine neue Sicherheitsregel für eingehenden Datenverkehr mit den folgenden Werten hinzu:
-
Typ: HTTP
-
Protokoll: TCP
-
Portbereich: 80
-
Quelle: Benutzerdefiniert
-
-
Testen Sie Ihren Webserver. Geben Sie in einem Webbrowser die öffentliche DNS Adresse (oder die öffentliche IP-Adresse) Ihrer Instance ein. Wenn in
/var/www/html
keine Inhalte vorhanden sind, sollten Sie die Testseite von Apache aufrufen, auf der die Meldung „Es funktioniert! “ angezeigt wird.Sie können die Öffentlichkeit DNS für Ihre Instance über die EC2 Amazon-Konsole abrufen (überprüfen Sie die IPv4 DNS Spalte Öffentlich; wenn diese Spalte ausgeblendet ist, wählen Sie Einstellungen (das zahnradförmige Symbol) und schalten Sie auf Öffentlich). IPv4 DNS
Stellen Sie sicher, dass die Sicherheitsgruppe für die Instance eine Regel enthält, die den HTTP Datenverkehr auf Port 80 zulässt. Weitere Informationen finden Sie unter Regeln zur Sicherheitsgruppe hinzufügen.
Wichtig
Wenn Sie nicht Amazon Linux verwenden, müssen Sie möglicherweise auch die Firewall Ihrer Instance so konfigurieren, dass diese Verbindungen zugelassen werden. Weitere Informationen zum Konfigurieren der Firewall finden Sie in der Dokumentation für Ihre spezifische Verteilung.
Der Apache-Befehl httpd gilt für Dateien, die in einem Verzeichnis gespeichert sind, das als Apache-Dokumenten-Stammverzeichnis bezeichnet wird. Das Amazon Linux-Apache-Dokumenten-Stammverzeichnis ist /var/www/html
, das standardmäßig Eigentum des Stammverzeichnisses ist.
Damit das ec2-user
-Konto Dateien in diesem Verzeichnis bearbeiten kann, müssen Sie die Eigentümerschaft und die Berechtigungen des Verzeichnisses ändern. Es gibt viele Möglichkeiten, um diese Aufgabe zu erfüllen. In diesem Tutorial fügen Sie ec2-user
zu der apache
-Gruppe hinzu, um der apache
-Gruppe das Eigentum an dem /var/www
-Verzeichnis zu geben und ihr Schreibrechte zuzuweisen.
So richten Sie Dateiberechtigungen ein
-
Fügen Sie Ihren Benutzer (in diesem Fall
ec2-user
) zu derapache
-Gruppe hinzu.[ec2-user ~]$
sudo usermod -a -G apache
ec2-user
-
Melden Sie sich ab und anschließend wieder an, um die neue Gruppe auszuwählen, und verifizieren Sie dann Ihre Mitgliedschaft.
-
Melden Sie sich ab (Sie können den Befehl exit verwenden oder das Terminal-Fenster schließen):
[ec2-user ~]$
exit
-
Ihre Mitgliedschaft in der
apache
-Gruppe zu verifizieren, stellen Sie erneut die Verbindung zu Ihrer Instance her und führen Sie anschließend den folgenden Befehl aus:[ec2-user ~]$
groups
ec2-user adm wheel apache systemd-journal
-
-
Übertragen Sie die Eigentümerschaft der Datei
/var/www
und ihrer Inhalte auf dieapache
-Gruppe.[ec2-user ~]$
sudo chown -R ec2-user:apache /var/www
-
Um Schreibberechtigungen für die Gruppe hinzuzufügen und die Gruppen-ID für zukünftige Unterverzeichnisse einzurichten, ändern Sie die Verzeichnisberechtigungen von
/var/www
und deren Unterverzeichnisse.[ec2-user ~]$
sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \;
-
Um Schreibberechtigungen für die Gruppe hinzuzufügen, ändern Sie die Dateiberechtigungen von
/var/www
und deren Unterverzeichnisse rekursiv.[ec2-user ~]$
find /var/www -type f -exec sudo chmod 0664 {} \;
Jetzt ec2-user
(und alle future Mitglieder der apache
Gruppe) können Dateien im Apache-Dokumentenstamm hinzufügen, löschen und bearbeiten, sodass Sie Inhalte hinzufügen können, z. B. eine statische Website oder eine PHP Anwendung.
So sichern Sie Ihren Webserver (optional)
Ein Webserver, auf dem das HTTP Protokoll ausgeführt wird, bietet keine Transportsicherheit für die Daten, die er sendet oder empfängt. Wenn Sie über einen Webbrowser eine Verbindung zu einem HTTP Server herstellen, sind URLs die von Ihnen besuchten Daten, der Inhalt der Webseiten, die Sie erhalten, und der Inhalt (einschließlich Kennwörter) aller HTML Formulare, die Sie einreichen, für Lauscher überall im Netzwerkpfad sichtbar. Die bewährte Methode zur Sicherung Ihres Webservers besteht darin, Unterstützung für HTTPS (HTTPSecure) zu installieren, wodurch Ihre Daten mit /-Verschlüsselung geschützt werden. SSL TLS
Informationen zur Aktivierung HTTPS auf Ihrem Server finden Sie unterTutorial: SSL/TLS auf AL2023 konfigurieren.
Schritt 2: Testen Sie Ihren LAMP Server
Wenn Ihr Server installiert ist und läuft und Ihre Dateiberechtigungen korrekt eingestellt sind, sollte Ihr ec2-user
Konto in der Lage sein, eine PHP Datei in dem /var/www/html
Verzeichnis zu erstellen, das über das Internet verfügbar ist.
Um Ihren LAMP Server zu testen
-
Erstellen Sie eine PHP Datei im Apache Document Root.
[ec2-user ~]$
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
Wenn beim Ausführen dieses Befehls der Fehler „Permission denied“ angezeigt wird, melden Sie sich ab und anschließend wieder an, damit die richtigen Gruppenberechtigungen übernommen werden, die Sie in konfiguriert habe So richten Sie Dateiberechtigungen ein.
-
Geben Sie in einem Webbrowser die URL Datei ein, die Sie gerade erstellt haben. Dies URL ist die öffentliche DNS Adresse Ihrer Instance, gefolgt von einem Schrägstrich und dem Dateinamen. Beispielsweise:
http://
my.public.dns.amazonaws.com
/phpinfo.phpSie sollten die PHP Informationsseite sehen:
Wenn diese Seite nicht angezeigt wird, überprüfen Sie, ob die Datei
/var/www/html/phpinfo.php
im vorherigen Schritt ordnungsgemäß angelegt wurde. Mit dem folgenden Befehl können Sie auch überprüfen, ob alle erforderlichen Pakete installiert wurden.[ec2-user ~]$
sudo dnf list installed httpd mariadb-server php-mysqlnd
Wenn eines der erforderlichen Pakete in Ihrem Ergebnis nicht aufgelistet ist, installieren Sie es mit dem Befehl sudo yum install
package
. -
Löschen Sie die Datei
phpinfo.php
. Obwohl sie nützliche Informationen enthalten könnte, sollte sie aus Sicherheitsgründen nicht über das Internet übertragen werden.[ec2-user ~]$
rm /var/www/html/phpinfo.php
Sie sollten jetzt einen voll funktionsfähigen LAMP Webserver haben. Wenn Sie dem Apache-Dokumentenstamm unter Inhalte hinzufügen/var/www/html
, sollten Sie diese Inhalte unter der öffentlichen DNS Adresse für Ihre Instanz anzeigen können.
Schritt 3: Sichern des Datenbankservers
Die Standardinstallation des MariaDB-Servers verfügt über mehrere Funktionen, die hervorragend zum Testen und für die Entwicklung geeignet sind, aber bei Produktionsservern sollten Sie deaktiviert oder entfernt werden. Mit dem Befehl mysql_secure_installation rufen Sie eine Anleitung dazu auf, wie Sie ein Stammpasswort einrichten und die unsicheren Funktionen aus Ihrer Installation entfernen. Auch wenn Sie nicht vorhaben, den MariaDB-Server zu verwenden, empfehlen wir Ihnen die Durchführung dieses Verfahrens.
Sichern des MariaDB-Servers
-
Starten Sie den MariaDB-Server.
[ec2-user ~]$
sudo systemctl start mariadb
-
Führen Sie mysql_secure_installation.
[ec2-user ~]$
sudo mysql_secure_installation
-
Geben Sie das Passwort für das Stammkonto ein, wenn Sie dazu aufgefordert werden.
-
Geben Sie das aktuelle Stammpasswort ein. Standardmäßig ist für das Stammkonto kein Passwort eingerichtet. Drücken Sie die Eingabetaste.
-
Drücken Sie
Y
, um ein Passwort einzurichten, und geben Sie ein sicheres Passwort zweimal ein. Weitere Informationen zum Erstellen eines sicheren Kennworts finden Sie unter https://identitysafe.norton.com/password-generator/. Bewahren Sie dieses Passwort an einem sicheren Ort auf. Die Einrichtung eines Stammpassworts für MariaDB ist nur die grundlegendste Maßnahme, um Ihre Datenbank abzusichern. Wenn Sie eine datenbankgestützte Anwendung aufbauen oder installieren, legen Sie für diese Anwendung normalerweise einen Datenbank-Servicebenutzer an und nutzen das Stammkonto ausschließlich zur Datenbankverwaltung.
-
-
Geben Sie
Y
ein, um die anonymen Benutzerkonten zu entfernen. -
Geben Sie
Y
ein, um die Root-Anmeldung per Remote-Zugriff zu deaktivieren. -
Geben Sie
Y
ein, um die Testdatenbank zu entfernen. -
Geben Sie
Y
ein, um die Tabellen mit den Berechtigungen neu zu laden. Speichern Sie anschließend Ihre Änderungen.
-
-
(Optional) Wenn Sie nicht vorhaben, den MariaDB-Server weiter zu verwenden, stoppen Sie ihn. Sie können ihn erneut starten, wenn Sie ihn wieder brauchen.
[ec2-user ~]$
sudo systemctl stop mariadb
-
(Optional) Wenn Sie wollen, dass der MariaDB-Server bei jedem Systemstart gestartet wird, geben Sie den folgenden Befehl ein.
[ec2-user ~]$
sudo systemctl enable mariadb
Schritt 4: (Optional) Installieren phpMyAdmin
phpMyAdminphpMyAdmin
auf Ihrer Amazon Linux-Instance zu installieren und zu konfigurieren.
Wichtig
Wir empfehlen, es nicht für phpMyAdmin
den Zugriff auf einen LAMP Server zu verwenden, es sei denn, Sie habenSSL/TLSin Apache aktiviert. Andernfalls werden Ihr Datenbankadministratorkennwort und andere Daten unsicher über das Internet übertragen. Sicherheitsempfehlungen der Entwickler finden Sie unter Sichern Ihrer phpMyAdmin Installation
Zur Installation phpMyAdmin
-
Installieren Sie die erforderlichen Abhängigkeiten.
[ec2-user ~]$
sudo dnf install php-mbstring php-xml -y
-
Starten Sie Apache erneut.
[ec2-user ~]$
sudo systemctl restart httpd
-
Starten Sie
php-fpm
neu.[ec2-user ~]$
sudo systemctl restart php-fpm
-
Navigieren Sie zum Stammverzeichnis von Apache unter
/var/www/html
.[ec2-user ~]$
cd /var/www/html
-
Wählen Sie unter https://www.phpmyadmin.net/downloads
ein Quellpaket für die neueste phpMyAdmin Version aus. Um die Datei direkt in Ihre Instance herunterzuladen, kopieren Sie den Link in einen wget-Befehl wie im folgenden Beispiel: [ec2-user html]$
wget
https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
-
Erstellen Sie mit dem folgenden Befehl einen
phpMyAdmin
-Ordner und extrahieren Sie das Paket in diesen.[ec2-user html]$
mkdir phpMyAdmin && tar -xvzf
phpMyAdmin-latest-all-languages.tar.gz
-C phpMyAdmin --strip-components 1 -
Löschen Sie die
phpMyAdmin-latest-all-languages.tar.gz
Tarball.[ec2-user html]$
rm
phpMyAdmin-latest-all-languages.tar.gz
-
(Optional) Wenn der My SQL Server nicht läuft, starten Sie ihn jetzt.
[ec2-user ~]$
sudo systemctl start mariadb
-
Geben Sie in einem Webbrowser die Datei URL Ihrer phpMyAdmin Installation ein. Dies URL ist die öffentliche DNS Adresse (oder die öffentliche IP-Adresse) Ihrer Instance, gefolgt von einem Schrägstrich und dem Namen Ihres Installationsverzeichnisses. Beispielsweise:
http://
my.public.dns.amazonaws.com
/phpMyAdminSie sollten die phpMyAdmin Anmeldeseite sehen:
-
Melden Sie sich mit dem
root
Benutzernamen und dem My SQL root-Passwort, das Sie zuvor erstellt haben, bei Ihrer phpMyAdmin Installation an.Ihre Installation muss vor der Inbetriebnahme noch konfiguriert werden. Wir schlagen vor, dass Sie zunächst die Konfigurationsdatei wie folgt manuell erstellen:
-
Um mit einer minimalen Konfigurationsdatei zu beginnen, erstellen Sie mit Ihrem bevorzugten Texteditor eine neue Datei und kopieren Sie dann den Inhalt von
config.sample.inc.php
hinein. -
Speichern Sie die Datei
config.inc.php
in dem phpMyAdmin Verzeichnis, das enthältindex.php
. -
Weitere Einstellungen finden Sie in den Anweisungen nach der Dateierstellung im Abschnitt Verwenden des Setup-Skripts
der phpMyAdmin Installationsanweisungen.
Informationen zur Verwendung phpMyAdmin finden Sie im phpMyAdmin Benutzerhandbuch
. -
Fehlerbehebung
Dieser Abschnitt enthält Vorschläge zur Lösung häufiger Probleme, die bei der Einrichtung eines neuen LAMP Servers auftreten können.
Ich kann zu meinem Server keine Verbindung über einen Webbrowser herstellen
Führen Sie die folgende Prüfungen durch, um zu sehen, ob Ihr Apache-Webserver ausgeführt wird und auf ihn zugegriffen werden kann.
-
Wird der Webserver ausgeführt?
Mit folgendem Befehl können Sie prüfen, ob der Befehl httpd ausgeführt wird:
[ec2-user ~]$
sudo systemctl is-enabled httpd
Wenn der httpd-Prozess nicht ausgeführt wird, wiederholen Sie die unter Um den LAMP Server vorzubereiten beschriebenen Schritte.
-
Ist die Firewall richtig konfiguriert?
Stellen Sie sicher, dass die Sicherheitsgruppe für die Instanz eine Regel enthält, die den HTTP Datenverkehr auf Port 80 zulässt. Weitere Informationen finden Sie unter Regeln zur Sicherheitsgruppe hinzufügen.
Ich kann keine Verbindung zu meinem Server herstellen mit HTTPS
Führen Sie die folgenden Prüfungen durch, um festzustellen, ob Ihr Apache-Webserver für die Unterstützung konfiguriert istHTTPS.
-
Ist der Webserver richtig konfiguriert?
Nach der Installation von Apache ist der Server für den HTTP Datenverkehr konfiguriert. Zur Unterstützung HTTPS müssen Sie es TLS auf dem Server aktivieren und ein SSL Zertifikat installieren. Weitere Informationen finden Sie unter Tutorial: SSL/TLS auf AL2023 konfigurieren.
-
Ist die Firewall richtig konfiguriert?
Stellen Sie sicher, dass die Sicherheitsgruppe für die Instanz eine Regel enthält, die den HTTPS Datenverkehr auf Port 443 zulässt. Weitere Informationen finden Sie unter Autorisieren von eingehendem Datenverkehr für Ihre Linux-Instances.
Verwandte Themen
Weitere Informationen zum Übertragen von Dateien auf Ihre Instance oder zum Installieren eines WordPress Blogs auf Ihrem Webserver finden Sie in der folgenden Dokumentation:
-
Übertragen Sie Dateien mithilfe von SCP Win auf Ihre Linux-Instance im EC2Amazon-Benutzerhandbuch.
-
Übertragen Sie Dateien mithilfe eines SCP Clients auf Linux-Instances im EC2Amazon-Benutzerhandbuch.
Weitere Informationen über die in diesem Tutorial verwendete(n) Befehle und Software finden Sie auf den folgenden Webseiten:
-
Apache-Webserver: http://httpd.apache.org/
-
MariaDB-Datenbankserver: https://mariadb.org/
-
PHPProgrammiersprache: http://php.net/
Weitere Informationen zum Registrieren eines Domänennamens für Ihren Webserver oder zum Übertragen eines bestehenden Domänennamens auf diesen Host finden Sie unter Erstellen und Migrieren von Domänen und Subdomänen zu Amazon Route 53 im Entwicklerhandbuch für Amazon Route 53.