LAMPE Stack ist eine beliebte Open-Source-Webentwicklungsplattform, die zum Ausführen und Bereitstellen dynamischer Websites und webbasierter Anwendungen verwendet werden kann. Typischerweise besteht der LAMP-Stack aus Apache-Webserver, MariaDB/MySQL-Datenbanken, PHP/Python/Perl-Programmiersprachen. LAMP ist die Abkürzung für L inux, M ariaDB/M YSQL, P HP/P ython/P Erl. In dieser Anleitung wird beschrieben, wie Apache, MySQL, PHP (LAMP-Stack) auf dem Ubuntu 18.04 LTS-Server installiert wird.
Apache, MySQL, PHP (LAMP) Stack auf Ubuntu 18.04 LTS installieren
Für dieses Tutorial verwenden wir die folgende Ubuntu-Testbox.
- Betriebssystem :Ubuntu 18.04.1 LTS Server Edition
- IP-Adresse :192.168.225.22/24
1. Installieren Sie den Apache-Webserver
Aktualisieren Sie zunächst den Ubuntu-Server mit den folgenden Befehlen:
$ sudo apt update
$ sudo apt upgrade
Installieren Sie als Nächstes den Apache-Webserver:
$ sudo apt install apache2
Überprüfen Sie, ob der Apache-Webserver läuft oder nicht:
$ sudo systemctl status apache2
Beispielausgabe wäre:
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: en Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Tue 2019-02-05 10:48:03 UTC; 1min 5s ago Main PID: 2025 (apache2) Tasks: 55 (limit: 2320) CGroup: /system.slice/apache2.service ├─2025 /usr/sbin/apache2 -k start ├─2027 /usr/sbin/apache2 -k start └─2028 /usr/sbin/apache2 -k start Feb 05 10:48:02 ubuntuserver systemd[1]: Starting The Apache HTTP Server... Feb 05 10:48:03 ubuntuserver apachectl[2003]: AH00558: apache2: Could not reliably Feb 05 10:48:03 ubuntuserver systemd[1]: Started The Apache HTTP Server.
Herzliche Glückwünsche! Der Apache-Dienst ist in Betrieb!
1.1 Passen Sie die Firewall an, um den Apache-Webserver zuzulassen
Standardmäßig kann von Remote-Systemen nicht auf den Apache-Webbrowser zugegriffen werden, wenn Sie die UFW-Firewall in Ubuntu 18.04 LTS aktiviert haben. Sie müssen die http- und https-Ports zulassen, indem Sie die folgenden Schritte ausführen.
Listen Sie zunächst die auf Ihrem Ubuntu-System verfügbaren Anwendungsprofile mit dem Befehl auf:
$ sudo ufw app list
Beispielausgabe:
Available applications: Apache Apache Full Apache Secure OpenSSH
Wie Sie sehen können, haben Apache- und OpenSSH-Anwendungen UFW-Profile installiert. Mit "ufw app info "Profile Name" " können Sie Informationen zu jedem Profil und den darin enthaltenen Regeln auflisten Befehl.
Lassen Sie uns einen Blick auf “Apache Full” werfen Profil. Führen Sie dazu Folgendes aus:
$ sudo ufw app info "Apache Full"
Beispielausgabe:
Profile: Apache Full Title: Web Server (HTTP,HTTPS) Description: Apache v2 is the next generation of the omnipresent Apache web server. Ports: 80,443/tcp
Wie Sie sehen, enthält das Profil „Apache Full“ die Regeln zum Aktivieren des Datenverkehrs zu den Ports 80 und 443 :
Führen Sie nun den folgenden Befehl aus, um eingehenden HTTP- und HTTPS-Datenverkehr für dieses Profil zuzulassen:
$ sudo ufw allow in "Apache Full" Rules updated Rules updated (v6)
Wenn Sie keinen https-Verkehr, sondern nur http (80)-Verkehr zulassen möchten, führen Sie Folgendes aus:
$ sudo ufw app info "Apache"
1.2 Apache-Webserver testen
Öffnen Sie nun Ihren Webbrowser und greifen Sie auf die Apache-Testseite zu, indem Sie zu http://localhost/ navigieren oder http://IP-Adresse/ .
Apache-Testseite
Wenn Sie einen Bildschirm wie oben sehen, können Sie loslegen. Apache-Server funktioniert!
2. MySQL installieren
Um MySQL auf Ubuntu zu installieren, führen Sie Folgendes aus:
$ sudo apt install mysql-server
Überprüfen Sie, ob der MySQL-Dienst ausgeführt wird oder nicht, indem Sie den Befehl verwenden:
$ sudo systemctl status mysql
Beispielausgabe:
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enab Active: active (running) since Tue 2019-02-05 11:07:50 UTC; 17s ago Main PID: 3423 (mysqld) Tasks: 27 (limit: 2320) CGroup: /system.slice/mysql.service └─3423 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid Feb 05 11:07:49 ubuntuserver systemd[1]: Starting MySQL Community Server... Feb 05 11:07:50 ubuntuserver systemd[1]: Started MySQL Community Server.
MySQL läuft!
2.1 Passwort für den administrativen Benutzer (Root) der Datenbank einrichten
Standardmäßig ist MySQL root Benutzerkennwort ist leer. Sie müssen Ihren MySQL-Server sichern, indem Sie das folgende Skript ausführen:
$ sudo mysql_secure_installation
Sie werden gefragt, ob Sie das VALIDATE PASSWORD plugin einrichten möchten oder nicht. Dieses Plugin ermöglicht es den Benutzern, starke Passwörter für Datenbankanmeldeinformationen zu konfigurieren. Wenn aktiviert, überprüft es automatisch die Stärke des Passworts und zwingt die Benutzer, nur die Passwörter festzulegen, die sicher genug sind. Es ist sicher, dieses Plugin deaktiviert zu lassen . Sie müssen jedoch ein sicheres und eindeutiges Kennwort für Datenbankanmeldeinformationen verwenden. Wenn Sie dieses Plugin nicht aktivieren möchten, drücken Sie einfach eine beliebige Taste, um den Teil der Passwortvalidierung zu überspringen und mit den restlichen Schritten fortzufahren.
Wenn Ihre Antwort Ja ist , werden Sie aufgefordert, die Ebene der Passwortvalidierung auszuwählen.
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No y
Die verfügbaren Passwortvalidierungen sind niedrig , mittel und stark . Geben Sie einfach die entsprechende Zahl ein (0 für niedriges, 1 für mittleres und 2 für sicheres Passwort) und drücken Sie die EINGABETASTE.
There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
Geben Sie nun das Passwort für den MySQL-Root-Benutzer ein. Bitte beachten Sie, dass Sie das Passwort für den mysql-Root-Benutzer verwenden müssen, abhängig von der Passwortrichtlinie, die Sie im vorherigen Schritt ausgewählt haben. Wenn Sie das Plugin nicht aktiviert haben, verwenden Sie einfach ein sicheres und eindeutiges Passwort Ihrer Wahl.
Please set the password for root here. New password: Re-enter new password: Estimated strength of the password: 50 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
Sobald Sie das Passwort zweimal eingegeben haben, sehen Sie die Passwortstärke (in unserem Fall ist sie 50 ). Wenn es für Sie in Ordnung ist, drücken Sie Y, um mit dem bereitgestellten Passwort fortzufahren. Wenn Sie mit der Passwortlänge nicht zufrieden sind, drücken Sie eine beliebige andere Taste und legen Sie ein sicheres Passwort fest. Ich bin mit meinem aktuellen Passwort einverstanden, also habe ich y gewählt .
Geben Sie für die restlichen Fragen einfach y ein und drücken Sie ENTER. Dadurch wird der anonyme Benutzer entfernt, die Anmeldung des Root-Benutzers aus der Ferne verweigert und die Testdatenbank entfernt.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done!
Das ist es. Das Passwort für den MySQL-Root-Benutzer wurde festgelegt.
2.2 Authentifizierungsmethode für MySQL-Root-Benutzer ändern
Standardmäßig ist der MySQL-Root-Benutzer so eingestellt, dass er sich mit auth_socket authentifiziert Plugin in MySQL 5.7 und neueren Versionen auf Ubuntu. Obwohl dies die Sicherheit erhöht, wird es auch komplizierter, wenn Sie mit externen Programmen, z. B. phpMyAdmin, auf Ihren Datenbankserver zugreifen. Um dieses Problem zu beheben, müssen Sie die Authentifizierungsmethode von auth_socket ändern zu mysql_native_password . Melden Sie sich dazu mit dem Befehl:
bei Ihrer MySQL-Eingabeaufforderung an$ sudo mysql
Führen Sie den folgenden Befehl an der mysql-Eingabeaufforderung aus, um die aktuelle Authentifizierungsmethode für alle mysql-Benutzerkonten zu finden:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Beispielausgabe:
+------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | | auth_socket | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | debian-sys-maint | *F126737722832701DD3979741508F05FA71E5BA0 | mysql_native_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 4 rows in set (0.00 sec)
Wie Sie sehen, verwendet der MySQL-Root-Benutzer auth_socket
Plugin für die Authentifizierung.
Um diese Authentifizierung in mysql_native_password zu ändern -Methode führen Sie den folgenden Befehl an der mysql-Eingabeaufforderung aus. Vergessen Sie nicht, "Passwort" zu ersetzen mit einem starken und einzigartigen Passwort Ihrer Wahl. Wenn Sie das VALIDATION-Plug-in aktiviert haben, stellen Sie sicher, dass Sie ein starkes Passwort basierend auf den aktuellen Richtlinienanforderungen verwendet haben.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Aktualisieren Sie die Änderungen mit dem Befehl:
FLUSH PRIVILEGES;
Überprüfen Sie nun erneut, ob die Authentifizierungsmethode geändert wurde oder nicht, indem Sie den Befehl verwenden:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Beispielausgabe:
Gut! Jetzt kann sich der myql-Root-Benutzer mit einem Passwort authentifizieren, um auf die mysql-Shell zuzugreifen.
Beenden Sie die mysql-Eingabeaufforderung:
exit
3. Installieren Sie PHP
Um PHP zu installieren, führen Sie Folgendes aus:
$ sudo apt install php libapache2-mod-php php-mysql
Erstellen Sie nach der Installation von PHP info.php Datei im Apache-Stammdokumentordner. Normalerweise ist der Apache-Stammdokumentordner /var/www/html/ oder /var/www/ in den meisten Debian-basierten Linux-Distributionen. In Ubuntu 18.04 LTS ist es /var/www/html/ .
Lassen Sie uns info.php erstellen Datei im Apache-Root-Ordner:
$ sudo vi /var/www/html/info.php
Fügen Sie die folgenden Zeilen hinzu:
<?php phpinfo(); ?>
Drücken Sie die ESC-Taste und geben Sie :wq ein um die Datei zu speichern und zu beenden. Starten Sie den Apache-Dienst neu, um die Änderungen zu übernehmen.
$ sudo systemctl restart apache2
3.1 PHP testen
Öffnen Sie Ihren Webbrowser und navigieren Sie zu http://IP-Adresse/info.php URL.
Sie sehen jetzt die PHP-Testseite.
php-Testseite
Wenn ein Benutzer ein Verzeichnis vom Webserver anfordert, sucht Apache normalerweise zuerst nach einer Datei namens index.html . Wenn Sie Apache ändern möchten, um PHP-Dateien statt anderer bereitzustellen, verschieben Sie index.php an erster Stelle in der dir.conf Datei wie unten gezeigt
$ sudo vi /etc/apache2/mods-enabled/dir.conf
Hier ist der Inhalt der obigen Datei.
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Verschieben Sie zuerst die Datei "index.php". Sobald Sie die Änderungen vorgenommen haben, wird Ihre dir.conf Datei wird wie unten aussehen.
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Drücken Sie ESC drücken und :wq eingeben um die Datei zu speichern und zu schließen. Starten Sie den Apache-Dienst neu, um die Änderungen zu übernehmen.
$ sudo systemctl restart apache2
3.2 PHP-Module installieren
Um die Funktionalität von PHP zu verbessern, können Sie einige zusätzliche PHP-Module installieren.
Um die verfügbaren PHP-Module aufzulisten, führen Sie Folgendes aus:
$ sudo apt-cache search php- | less
Beispielausgabe:
Verwenden Sie die Pfeiltasten, um durch das Ergebnis zu gehen. Geben Sie zum Beenden q ein und drücken Sie die EINGABETASTE.
Um die Details eines bestimmten PHP-Moduls zu finden, zum Beispiel php-gd , ausführen:
$ sudo apt-cache show php-gd
Um ein PHP-Modul zu installieren, führen Sie Folgendes aus:
$ sudo apt install php-gd
Um alle Module zu installieren (jedoch nicht notwendig), führen Sie Folgendes aus:
$ sudo apt-get install php*
Vergessen Sie nicht, den Apache-Dienst nach der Installation eines PHP-Moduls neu zu starten. Um zu überprüfen, ob das Modul geladen ist oder nicht, öffnen Sie die Datei info.php in Ihrem Browser und prüfen Sie, ob sie vorhanden ist.
Als Nächstes möchten Sie möglicherweise Datenbankverwaltungstools installieren, um Datenbanken einfach über einen Webbrowser zu verwalten. Wenn ja, installieren Sie phpMyAdmin wie im folgenden Link beschrieben.
- Installieren Sie phpMyAdmin mit LAMP Stack auf Ubuntu 18.04 LTS
Herzliche Glückwünsche! Wir haben den LAMP-Stack erfolgreich auf dem Ubuntu 18.04 LTS-Server eingerichtet.
Lesen Sie auch:
- Nginx, MariaDB, PHP (LEMP) Stack in Ubuntu 18.04 LTS installieren
- Installieren Sie Apache, MariaDB, PHP (LAMP)-Stack auf Arch Linux
- Nginx, MariaDB, PHP (LEMP) Stack auf Arch Linux installieren
Und das ist alles für jetzt. Wie Sie sehen können, ist das Einrichten des LAMP-Stacks in Ubuntu absolut einfach und unkompliziert.
Referenz:
- Digitaler Ozean