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

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

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

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