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: Installieren Sie einen LAMP-Server auf AL2
Die folgenden Verfahren helfen Ihnen bei der Installation eines Apache-Webservers mit PHP- und MariaDB-Unterstützung
Wichtig
Dieses Tutorial funktioniert nicht, wenn Sie versuchen, einen LAMP-Webserver auf einer anderen Verteilung, wie z. B. Ubuntu oder Red Hat Enterprise Linux, einzurichten. Informationen zu AL2 023 finden Sie unter Installieren eines LAMP-Servers auf 023. AL2 Informationen zu Ubuntu finden Sie in der folgenden Dokumentation der Ubuntu-Community: ApacheMy SQLPHP.
Option: Abschließen dieses Tutorials mit Automation
Um dieses Tutorial mit AWS Systems Manager Automatisierung anstelle der folgenden Aufgaben abzuschließen, führen Sie das AWS Dokument Docs-Install ALAMPServer — AL2
Aufgaben
Schritt 1: Vorbereiten des LAMP-Servers
Voraussetzungen
-
In dieser Anleitung wird davon ausgegangen, dass Sie bereits eine neue Instanz mit einem öffentlichen DNS-Namen gestartet haben AL2, der über das Internet erreichbar ist. Weitere Informationen finden Sie unter Launch an Instance im EC2 Amazon-Benutzerhandbuch. Außerdem müssen Sie Ihre Sicherheitsgruppe so konfiguriert haben, dass Verbindungen über SSH (Port 22), HTTP (Port 80) und HTTPS (Port 443) erlaubt sind. Weitere Informationen zu diesen Voraussetzungen finden Sie unter Sicherheitsgruppenregeln im EC2 Amazon-Benutzerhandbuch.
-
Mit dem folgenden Verfahren wird die neueste PHP-Version installiert AL2, die derzeit verfügbar ist
php8.2. Falls Sie andere PHP-Anwendungen als die in diesem Tutorial beschriebenen verwenden möchten, prüfen Sie ihre Kompatibilität mitphp8.2.
Vorbereiten des LAMP-Servers
-
Um sicherzustellen, dass alle Ihre Softwarepakete aktuell sind, führen Sie ein schnelles Softwareupdate auf Ihrer Instance aus. Dieser Vorgang kann einige Minuten dauern. Es ist jedoch wichtig, sicherzustellen, dass Sie über die aktuellen Sicherheitsaktualisierungen und Fehlerbehebungen verfügen.
Mit der Option
-ywerden 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 yum update -y -
Installieren Sie die Amazon-Linux-Extras-Repositorys vom Typ
mariadb10.5, um die aktuelle Version des MariaDB-Pakets zu erhalten.[ec2-user ~]$sudo amazon-linux-extras install mariadb10.5Wenn die Fehlermeldung
sudo: amazon-linux-extras: command not foundangezeigt wird, wurde Ihre Instance nicht mit einem Amazon Linux 2-AMI; gestartet (möglicherweise verwenden Sie stattdessen das Amazon Linux AMI). Sie können Ihre Version von Amazon Linux mit dem folgenden Befehl anzeigen.cat /etc/system-release -
Installieren Sie die
php8.2Amazon Linux Extras-Repositorys, um die neueste Version des PHP Pakets für AL2 zu erhalten.[ec2-user ~]$sudo amazon-linux-extras install php8.2 -
Nachdem Ihre Instance nur auf dem neuesten Stand ist, können Sie die Softwarepakete für Apache-Webserver, MariaDB und PHP installieren. Verwenden Sie den Befehl „yum install“, um mehrere Softwarepakete und alle zugehörigen Abhängigkeiten gleichzeitig zu installieren.
[ec2-user ~]$sudo yum install -y httpdSie können die aktuellen Versionen dieser Pakete mit dem folgenden Befehl anzeigen:
yum infopackage_name -
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 httpdMit 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 HTTP-Verbindungen (Port 80) auf Ihre Instance zuzulassen, wenn Sie dies nicht bereits getan haben. Standardmäßig wurde während der Initialisierung eine
NLaunch-Wizard-Sicherheitsgruppe für Ihre Instance eingerichtet. Diese Gruppe enthält eine einzige Regel, um SSH-Verbindungen zuzulassen.Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/
. Wählen Sie 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/0Warnung
0.0.0.0/0Durch Verwenden können alle IPv4 Adressen über SSH auf Ihre Instance zugreifen. 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. -
Wählen Sie den Link für die Sicherheitsgruppe aus. Fügen Sie mithilfe der Verfahren unter Regeln zu einer Sicherheitsgruppe hinzufügen eine neue Sicherheitsregel für eingehenden Datenverkehr mit den folgenden Werten hinzu:
-
Typ: HTTP
-
Protocol (Protokoll): TCP
-
Portbereich: 80
-
Quelle: Benutzerdefiniert
-
-
Testen Sie Ihren Webserver. Geben Sie in einen Web-Browser die öffentliche DNS-Adresse (oder die öffentliche IP-Adresse) Ihrer Instance ein. Wenn keine Inhalte in
/var/www/htmlvorhanden sind, sollte die Testseite von Apache angezeigt werden. Sie können das öffentliche DNS für Ihre Instance über die EC2 Amazon-Konsole abrufen (überprüfen Sie die Spalte Öffentliche DNS; wenn diese Spalte ausgeblendet ist, wählen Sie Spalten ein-/ausblenden (das zahnradförmige Symbol) und wählen Sie Public DNS).Stellen Sie sicher, dass die Sicherheitsgruppe für die Instance eine Regel enthält, die 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 auf Ihrer Instance konfigurieren, um diese Verbindungen zu erlauben. 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 zur apache-Gruppe hinzu, geben der apache-Gruppe Eigentümerschaft über das Verzeichnis /var/www und weisen der Gruppe Schreibberechtigungen zu.
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 apacheec2-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 ~]$groupsec2-user adm wheel apache systemd-journal
-
-
Übertragen Sie die Eigentümerschaft der Datei
/var/wwwund 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/wwwund 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/wwwund deren Unterverzeichnisse rekursiv.[ec2-user ~]$find /var/www -type f -exec sudo chmod 0664 {} \;
Jetzt kann ec2-user (und jedes zukünftige Mitglied der apache-Gruppe) im Dokumenten-Stammverzeichnis von Apache Dateien hinzufügen, löschen und bearbeiten. Auf diese Weise können Sie Inhalte hinzufügen, beispielsweise eine statische Website oder eine PHP-Anwendung.
So sichern Sie Ihren Webserver (optional)
Ein Webserver, auf dem HTTP ausgeführt wird, bietet keine Transportsicherheit für die gesendeten oder empfangenen Daten. 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 die Inhalte (einschließlich Kennwörter) aller HTML-Formulare, die Sie einreichen, für Lauscher überall im Netzwerkpfad sichtbar. Die beste Methode, Ihren Webserver abzusichern, besteht darin, Unterstützung für HTTPS (HTTP Secure) zu installieren, wodurch Ihre Daten mit der SSL/TLS-Verschlüsselung geschützt werden.
Informationen zur Aktivierung von HTTPS auf Ihrem Server finden Sie unter Tutorial: Konfiguration SSL/TLS am AL2.
Schritt 2: Testen Ihres Lamp-Servers
Wenn Ihr Server installiert ist und läuft und Ihre Dateiberechtigungen korrekt eingestellt sind, müsste für Ihr ec2-user-Konto die Erstellung einer PHP-Datei im Verzeichnis /var/www/html möglich sein, auf die über das Internet zugegriffen werden kann.
So testen Sie Ihren LAMP-Server
-
Erstellen Sie eine PHP-Datei im Dokumenten-Stammverzeichnis von Apache.
[ec2-user ~]$echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.phpWenn 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 der Datei ein, die Sie gerade erstellt haben. Diese URL ist die öffentliche DNS-Adresse Ihrer Instance, gefolgt von einem Schrägstrich und dem Dateinamen. Beispiel:
http://my.public.dns.amazonaws.com/phpinfo.phpDie PHP-Informationsseite wird angezeigt:
Wenn diese Seite nicht angezeigt wird, überprüfen Sie, ob die Datei
/var/www/html/phpinfo.phpim vorherigen Schritt ordnungsgemäß angelegt wurde. Mit dem folgenden Befehl können Sie auch überprüfen, ob alle erforderlichen Pakete installiert wurden.[ec2-user ~]$sudo yum list installed httpd mariadb-server php-mysqlndWenn eines der erforderlichen Pakete in Ihrem Ergebnis nicht aufgelistet ist, installieren Sie es mit dem Befehl sudo yum install
package. Überprüfen Sie außerdem in der Ausgabe des Befehls amazon-linux-extras, ob diephp7.2- undlamp-mariadb10.2-php7.2-Extras aktiviert sind. -
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 nun über einen voll funktionsfähigen LAMP-Webserver verfügen. Wenn Sie zum Dokumenten-Stammverzeichnis von Apache unter /var/www/html Inhalte hinzufügen, können Sie diese unter der öffentlichen DNS-Adresse für Ihre Instance anzeigen.
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 Hinweise zur Erstellung eines sicheren Passworts 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
Yein, um die anonymen Benutzerkonten zu entfernen. -
Geben Sie
Yein, um die Root-Anmeldung per Remote-Zugriff zu deaktivieren. -
Geben Sie
Yein, um die Testdatenbank zu entfernen. -
Geben Sie
Yein, 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 haben es SSL/TLS in Apache aktiviert. Andernfalls werden Ihr Datenbankadministratorkennwort und andere Daten unsicher über das Internet übertragen. Sicherheitsempfehlungen der Entwickler finden Sie unter Sichern Ihrer phpMyAdmin Installation
Um zu installieren phpMyAdmin
-
Installieren Sie die erforderlichen Abhängigkeiten.
[ec2-user ~]$sudo yum install php-mbstring php-xml -y -
Starten Sie Apache erneut.
[ec2-user ~]$sudo systemctl restart httpd -
Starten Sie
php-fpmneu.[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]$wgethttps://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 -xvzfphpMyAdmin-latest-all-languages.tar.gz-C phpMyAdmin --strip-components 1 -
Löschen Sie den
phpMyAdmin-latest-all-languages.tar.gzTarball.[ec2-user html]$rmphpMyAdmin-latest-all-languages.tar.gz -
(Optional) Wenn der MySQL-Server nicht ausgeführt wird, starten Sie ihn jetzt.
[ec2-user ~]$sudo systemctl start mariadb -
Geben Sie in einem Webbrowser die URL Ihrer phpMyAdmin Installation ein. Diese URL ist die öffentliche DNS-Adresse (oder die öffentliche IP-Adresse) Ihrer Instance gefolgt von einem Schrägstrich und dem Namen wie im folgenden Beispiel: Beispiel:
http://my.public.dns.amazonaws.com/phpMyAdminSie sollten die phpMyAdmin Anmeldeseite sehen:
-
Melden Sie sich mit dem
rootBenutzernamen und dem MySQL-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.phphinein. -
Speichern Sie die Datei
config.inc.phpin 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 zum Lösen 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 httpdWenn der httpd-Prozess nicht ausgeführt wird, wiederholen Sie die unter Vorbereiten des LAMP-Servers beschriebenen Schritte.
-
Ist die Firewall richtig konfiguriert?
Stellen Sie sicher, dass die Sicherheitsgruppe für die Instance eine Regel enthält, die HTTP-Datenverkehr auf Port 80 zulässt. Weitere Informationen finden Sie unter Regeln zur Sicherheitsgruppe hinzufügen.
Ich kann über HTTPS keine Verbindung zu meinem Server herstellen
Führen Sie die folgende Prüfungen durch, um zu sehen, ob Ihr Apache-Webserver konfiguriert ist, HTTPS zu unterstützen.
-
Ist der Webserver richtig konfiguriert?
Nach der Installation von Apache ist der Server für HTTP-Verkehr konfiguriert. Um HTTPS zu unterstützen, aktivieren Sie TLS auf dem Server und installieren Sie ein SSL-Zertifikat. Weitere Informationen finden Sie unter Tutorial: Konfiguration SSL/TLS am AL2.
-
Ist die Firewall richtig konfiguriert?
Stellen Sie sicher, dass die Sicherheitsgruppe für die Instance eine Regel enthält, die HTTPS-Datenverkehr auf Port 443 zulässt. Weitere Informationen finden Sie unter Regeln zu einer Sicherheitsgruppe hinzufügen.
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:
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/
-
PHP-Programmiersprache: http://php.net/
-
Der
chmodBefehl: https://en.wikipedia. org/wiki/Chmod -
Der
chownBefehl: https://en.wikipedia. org/wiki/Chown
Weitere Informationen zum Registrieren eines Domain-Namens für Ihren Webserver oder zum Übertragen eines bestehenden Domain-Namens auf diesen Host finden Sie unter Erstellen und Migrieren von Domains und Sub-Domains zu Amazon Route 53 im Entwicklerhandbuch für Amazon Route 53.