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

Installieren Sie Apache, MySQL, PHP (LAMP Stack) auf Ubuntu 20.04 LTS

LAMP-Stack ist eine beliebte Open-Source-Webentwicklungsplattform, die zum Ausführen und Bereitstellen dynamischer Websites und webbasierter Anwendungen verwendet werden kann. Typischerweise besteht ein LAMP-Stack aus Apache-Webserver, MariaDB/MySQL-Datenbanken, PHP/Python/Perl-Programmiersprachen. LAMP ist die Abkürzung für Linux, Apache, MariaDB/MYSQL, PHP/Python/Perl. Diese Schritt-für-Schritt-Anleitung beschreibt, wie Sie Apache, MySQL, PHP (LAMP-Stack) auf der Ubuntu 20.04 LTS Server Edition installieren.

Installieren Sie Apache, MySQL, PHP (LAMP Stack) auf Ubuntu 20.04 LTS

Für dieses Tutorial verwenden wir das folgende Ubuntu-System.

  • Betriebssystem :Ubuntu 20.04 LTS Server Edition
  • IP-Adresse :192.168.225.52/24

Lassen Sie uns zuerst den Apache-Server installieren.

1. Installieren Sie den Apache-Webserver in Ubuntu

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 mit dem Befehl:

, 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: enabl>
     Active: active (running) since Fri 2020-05-29 07:02:26 UTC; 25s ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 23996 (apache2)
      Tasks: 55 (limit: 2283)
     Memory: 5.1M
     CGroup: /system.slice/apache2.service
             ├─23996 /usr/sbin/apache2 -k start
             ├─23998 /usr/sbin/apache2 -k start
             └─23999 /usr/sbin/apache2 -k start

May 29 07:02:26 ubuntuserver systemd[1]: Starting The Apache HTTP Server...
May 29 07:02:26 ubuntuserver apachectl[23981]: AH00558: apache2: Could not reliably det>
May 29 07:02:26 ubuntuserver systemd[1]: Started The Apache HTTP Server.

Herzliche Glückwünsche! Der Apache-Dienst ist in Betrieb!

1.1. Apache-Webserver über UFW-Firewall zulassen

UFW , steht für U nkompliziert F irew all, ist ein Programm zur Verwaltung einer Netfilter-Firewall, das einfach zu bedienen ist. UFW ist standardmäßig in allen Ubuntu-Versionen verfügbar.

Standardmäßig kann von Remote-Systemen nicht auf den Apache-Webbrowser zugegriffen werden, wenn Sie die UFW-Firewall in Ubuntu 20.04 LTS aktiviert haben. Sie müssen http zulassen und https Ports, indem Sie die unten angegebenen Schritte befolgen.

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. Sie können Informationen zu jedem Profil und den darin enthaltenen Regeln mit ufw app info "Profile Name" auflisten Befehl.

Lassen Sie uns einen Blick auf “Apache Full” werfen Profil mit dem Befehl:

$ 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, "Apache Full" -Profil enthält die Regeln zum Aktivieren des Datenverkehrs zu den Ports 80 und 443 .

Führen Sie nun den folgenden Befehl aus, um eingehendes HTTP zuzulassen und HTTPS Verkehr für dieses Profil:

$ sudo ufw allow in "Apache Full"

Sie sehen eine Ausgabe wie unten:

Rules updated
Rules updated (v6)

Wenn Sie https nicht zulassen möchten Datenverkehr, sondern nur http (80) Datenverkehr, Ausführung:

$ sudo ufw app info "Apache"

1.2. Testen Sie den Apache-Webserver

Öffnen Sie nun Ihren Webbrowser und greifen Sie auf die Apache-Testseite zu, indem Sie zu http://localhost/ navigieren oder http://IP-Address/ .

Wenn Sie die unten gezeigte "Apache 2 Ubuntu-Standardseite" sehen, können Sie loslegen. Apache-Server funktioniert!

2. Installieren Sie MySQL in Ubuntu

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: enabled)
     Active: active (running) since Fri 2020-05-29 07:15:22 UTC; 2min 8s ago
   Main PID: 25242 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 2283)
     Memory: 323.7M
     CGroup: /system.slice/mysql.service
             └─25242 /usr/sbin/mysqld

May 29 07:15:16 ubuntuserver systemd[1]: Starting MySQL Community Server...
May 29 07:15:22 ubuntuserver systemd[1]: Started MySQL Community Server.

Wie Sie in der obigen Ausgabe sehen, läuft MySQL!

2.1. Richten Sie das Kennwort des Administratorbenutzers (Root) der Datenbank für Mysql

ein

Standardmäßig ist MySQL root Benutzerkennwort ist leer. Es wird nicht empfohlen, ein leeres Passwort für das Datenbankadministratorkonto zu verwenden. Sie müssen Ihren MySQL-Server sichern, indem Sie das folgende Skript ausführen:

$ sudo mysql_secure_installation

Sie werden gefragt, ob Sie "VALIDATE PASSWORD" einrichten möchten Komponente oder nicht. Diese Komponente ermöglicht es den Benutzern, sichere 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, es deaktiviert zu lassen . Sie müssen jedoch ein sicheres und eindeutiges Kennwort für Datenbankanmeldeinformationen verwenden. Wenn Sie diese Komponente nicht aktivieren möchten, drücken Sie einfach eine beliebige Taste, um den Teil der Kennwortvalidierung zu überspringen und mit den restlichen Schritten fortzufahren.

Geben Sie y ein wenn Sie VALIDATE PASSWORD einrichten möchten Komponente:

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT 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 component?

Press y|Y for Yes, any other key for No: y

Wenn Ihre Antwort Ja ist , werden Sie aufgefordert, die Ebene der Passwortvalidierung auszuwählen. 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: 0

Geben Sie nun das Passwort für MySQL root ein Benutzer. Bitte beachten Sie, dass Sie das Passwort für MySQL root verwenden müssen Benutzer abhängig von der Kennwortrichtlinie, 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: 100 
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 es 100 ). 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 starkes 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!

Erledigt! Wir haben MySQL auf root gesetzt Benutzerkennwort.

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 ab 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 in caching_sha2_password ändern oder mysql_native_password .

Ab MySQL 8.0-Version ist das bevorzugte und standardmäßige Authentifizierungs-Plugin caching_sha2_password . Das caching_sha2_password Das Authentifizierungs-Plugin bietet eine sicherere Passwortverschlüsselung als das mysql_native_password Plugin.

Um das Authentifizierungs-Plugin zu ändern, melden Sie sich mit dem Befehl:

bei Ihrer MySQL-Eingabeaufforderung an
$ sudo mysql

Oder,

$ mysql -u root -p

Geben Sie das MySQL-root ein Passwort, das wir im vorherigen Schritt eingerichtet haben.

Führen Sie den folgenden Befehl an der mysql-Eingabeaufforderung aus, um die aktuelle Authentifizierungsmethode für alle MySQL-Benutzerkonten zu finden:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Beispielausgabe:

+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user             | authentication_string                                                  | plugin                | host      |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$=s%UO"�[email protected]>[email protected] | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root             |                                                                        | auth_socket           | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)

Wie Sie sehen, verwendet der MySQL-Root-Benutzer auth_socket Plugin für die Authentifizierung.

Um auth_socket zu ändern Plugin zu caching_sha2_password , führen Sie den folgenden Befehl an der MySQL-Eingabeaufforderung aus. Wenn Sie VALIDATE PASSWORD aktiviert haben vergewissern Sie sich, dass Sie ein sicheres Passwort gemäß den aktuellen Richtlinienanforderungen verwendet haben. Ein starkes Sollte besteht aus mindestens 8 Zeichen, darunter ein Großbuchstabe, ein Kleinbuchstabe, eine Zahl und ein Sonderzeichen.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password123#@!';

Ersetzen Sie Password123#@! mit einem starken und eindeutigen Passwort Ihrer Wahl im obigen Befehl.

Aktualisieren Sie die Änderungen mit dem Befehl:

mysql> FLUSH PRIVILEGES;

Überprüfen Sie nun, ob das aktuelle Authentifizierungs-Plugin geändert wurde oder nicht, indem Sie den Befehl verwenden:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Beispielausgabe:

Gut! Nun das MySQL root Der Benutzer kann sich mit einem Passwort authentifizieren, um auf die MySQL-Shell zuzugreifen.

Beenden Sie die MySQL-Eingabeaufforderung:

mysql> exit

Hinweis:

Obwohl caching_sha2_password Das Plugin bietet eine verbesserte sichere Verschlüsselung, hat aber einige Kompatibilitätsprobleme mit bestehenden MySQL-Installationen. Einzelheiten finden Sie unter diesem Link . Wenn Sie auf Kompatibilitätsprobleme gestoßen sind, müssen Sie mysql_native_password festlegen plugin als Standard-Authentifizierungs-Plugin.

Um zu mysql_native_password zu wechseln plugin, führen Sie den folgenden Befehl an der MySQL-Eingabeaufforderung aus.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Aktualisieren Sie die Änderungen mit dem Befehl:

mysql> FLUSH PRIVILEGES;

Überprüfen Sie nun erneut, ob die Authentifizierungsmethode geändert wurde oder nicht, indem Sie den Befehl verwenden:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Beispielausgabe:

Beenden Sie die mysql-Eingabeaufforderung:

mysql> exit

3. Installieren Sie PHP in Ubuntu

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 20.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 ESC drücken und :wq eingeben 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-address/info.php URL.

Sie sehen die PHP-Informationen wie Version, Server-API und die Details aller aktivierten PHP-Plugins.

Wenn ein Benutzer ein Verzeichnis vom Webserver anfordert, sucht Apache normalerweise zuerst nach einer Datei mit dem Namen index.html . Wenn Sie Apache ändern möchten, um PHP-Dateien statt anderer bereitzustellen, verschieben Sie index.php an die erste Position 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 die index.php Datei zuerst . Nachdem 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 .

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

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.

Herzliche Glückwünsche! Wie Sie sehen können, ist es sehr einfach, Apache, mysql, php (LAMP-Stack) auf Ubuntu 20.04 LTS zu installieren. Sie können jetzt damit beginnen, Ihre Websites mit dem LAMP-Stack zu hosten.

Weiterlesen:

  • Installieren Sie phpMyAdmin mit LAMP Stack auf Ubuntu 20.04 LTS

Verwandte Lektüre:

  • Installieren Sie Nginx, MySQL, PHP (LEMP Stack) auf Ubuntu 20.04 LTS
  • Installieren Sie Apache, MariaDB, PHP (LAMP Stack) in CentOS 8

Ubuntu
  1. So installieren Sie den Stack Linux, Apache, MySQL, PHP (LAMP) unter Ubuntu 16.04

  2. Ubuntu 14.10 LAMP-Server-Tutorial mit Apache 2, PHP 5 und MySQL (MariaDB)

  3. Ubuntu 15.04 LAMP-Server-Tutorial mit Apache 2, PHP 5 und MariaDB (anstelle von MySQL)

  4. So installieren Sie LAMP Stack auf Ubuntu 22.04 LTS

  5. So installieren Sie Apache, MySQL, PHP (LAMP) unter Ubuntu 16.04 LTS

So installieren Sie LAMP Stack (Apache, MariaDB, PHP7.1) unter Ubuntu 17.10

So installieren Sie LAMP Stack auf Ubuntu 20.04 Server/Desktop

So installieren Sie Apache, MySQL, PHP unter Ubuntu 18.04 LTS

So installieren Sie Apache, MySQL, PHP (LAMP-Stack) unter Ubuntu

So installieren Sie LAMP auf einem Ubuntu 15.04-Server

So installieren Sie den Stapel Apache, MySQL, PHP (LAMP) unter Ubuntu 16.04