So installieren Sie Linux, Apache, MySQL, PHP (LAMP) Stack auf Ubuntu 18.04

Veröffentlicht in: Articles | 0

Eine frühere Version dieses Tutorials wurde von Brennan Bearnes geschrieben.

Einführung

Ein „LAMP“-Stack ist eine Gruppe von Open-Source-Software, die normalerweise zusammen installiert wird, damit ein Server dynamische Websites und Web-Apps hosten kann. Dieser Begriff ist eigentlich ein Akronym, das das Linux-Betriebssystem mit dem Apache-Webserver darstellt. Die Site-Daten werden in einer MySQL-Datenbank gespeichert und dynamischer Inhalt wird von PHP verarbeitet.

In diesem Leitfaden installieren wir einen LAMP stack auf einem Ubuntu 18.04 server.,

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie einen Ubuntu 18.04-Server mit einem Nicht-Root – sudo – fähigen Benutzerkonto und einer grundlegenden Firewall. Dies kann mit unserem Initial Server Setup Guide für Ubuntu 18.04 konfiguriert werden.

Schritt 1-Installieren von Apache und Aktualisieren der Firewall

Der Apache-Webserver gehört zu den beliebtesten Webservern der Welt. Es ist gut dokumentiert und wurde für einen Großteil der Webgeschichte weit verbreitet, was es zu einer großartigen Standardauswahl für das Hosten einer Website macht.,

Installieren Sie Apache mit dem Paketmanager von Ubuntu, apt:

  • sudo apt update
  • sudo apt install apache2

Da dies ein sudo Befehl ist, werden diese Operationen mit Root-Rechten ausgeführt. Sie werden nach dem Passwort Ihres regulären Benutzers gefragt, um Ihre Absichten zu überprüfen.

Sobald Sie Ihr Passwort eingegeben haben, teilt Ihnen apt mit, welche Pakete installiert werden sollen und wie viel zusätzlichen Speicherplatz sie benötigen. Drücken Sie Y und drücken Sie ENTER, um fortzufahren, und die Installation wird fortgesetzt.,

Passen Sie die Firewall so an, dass der Webverkehr zugelassen wird

Als nächstes stellen Sie sicher, dass Ihre Firewall HTTP-und HTTPS-Datenverkehr zulässt, vorausgesetzt, Sie haben die Anweisungen zur Ersteinrichtung des Servers befolgt und die UFW-Firewall aktiviert.,um zu zeigen, dass der Datenverkehr zu den Ports 80 und :

  • sudo ufw app info "Apache Full"
Output
Profile: Apache FullTitle: Web Server (HTTP,HTTPS)Description: Apache v2 is the next generation of the omnipresent Apache webserver.Ports: 80,443/tcp

Eingehenden HTTP-und HTTPS-Datenverkehr für dieses Profil zulassen:

  • sudo ufw allow in "Apache Full"

Sie können eine Punktprüfung durchführen um sofort zu überprüfen, ob alles wie geplant verlaufen ist, besuchen Sie die öffentliche IP-Adresse Ihres Servers in Ihrem Webbrowser (siehe Hinweis unter der nächsten Überschrift, um herauszufinden, was Ihre öffentliche IP-Adresse ist, wenn Sie diese Informationen nicht bereits haben):

You will see the default Ubuntu 18.04 Apache web page, which is there for informational and testing purposes. It should look something like this:

If you see this page, then your web server is now correctly installed and accessible through your firewall.

How To Find your Server’s Public IP Address

If you do not know what your server’s public IP address is, there are a number of ways you can find it. Usually, this is the address you use to connect to your server through SSH.

There are a few different ways to do this from the command line. First, you could use the iproute2 tools to get your IP address by typing this:

  • ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Dies gibt Ihnen zwei oder drei Zeilen zurück., Sie sind alle korrekte Adressen, aber Ihr Computer kann möglicherweise nur eine davon verwenden, also probieren Sie jede aus.

Eine alternative Methode besteht darin, das Dienstprogramm curl zu verwenden, um eine externe Partei zu kontaktieren, um Ihnen mitzuteilen, wie sie Ihren Server sieht. Dies geschieht, indem Sie einen bestimmten Server fragen, was Ihre IP-Adresse ist:

  • sudo apt install curl
  • curl http://icanhazip.com

Geben Sie unabhängig von der Methode, mit der Sie Ihre IP-Adresse abrufen, diese in die Adressleiste Ihres Webbrowsers ein, um die Standard-Apache-Seite anzuzeigen.,

Schritt 2-Installieren von MySQL

Nachdem Sie Ihren Webserver installiert haben, ist es Zeit, MySQL zu installieren. MySQL ist ein Datenbankverwaltungssystem. Grundsätzlich organisiert und bietet es Zugriff auf Datenbanken, in denen Ihre Website Informationen speichern kann.

Verwenden Sie erneut apt, um diese Software zu erwerben und zu installieren:

  • sudo apt install mysql-server

Hinweis: In diesem Fall müssen Sie sudo apt update nicht vor dem Befehl ausführen. Dies liegt daran, dass Sie es kürzlich in den obigen Befehlen ausgeführt haben, um Apache zu installieren., Der Paketindex auf Ihrem Computer sollte bereits auf dem neuesten Stand sein.

Dieser Befehl zeigt Ihnen auch eine Liste der Pakete, die installiert werden, zusammen mit der Menge an Speicherplatz, die sie einnehmen werden. Geben Sie Y ein, um fortzufahren.

Wenn die Installation abgeschlossen ist, führen Sie ein einfaches Sicherheitsskript aus, das mit MySQL vorinstalliert ist und einige gefährliche Standardeinstellungen entfernt und den Zugriff auf Ihr Datenbanksystem sperrt. Starten Sie das interaktive Skript, indem Sie Folgendes ausführen:

  • sudo mysql_secure_installation

Dies fragt, ob Sie die VALIDATE PASSWORD PLUGINkonfigurieren möchten.,

Hinweis: Das Aktivieren dieser Funktion ist so etwas wie ein Richteraufruf. Wenn aktiviert, werden Passwörter, die nicht den angegebenen Kriterien entsprechen, von MySQL mit einem Fehler abgelehnt. Dies führt zu Problemen, wenn Sie ein schwaches Kennwort in Verbindung mit einer Software verwenden, die MySQL-Benutzeranmeldeinformationen automatisch konfiguriert, z. B. die Ubuntu-Pakete für phpMyAdmin. Es ist sicher, die Validierung deaktiviert zu lassen, aber Sie sollten immer starke, eindeutige Kennwörter für Datenbankanmeldeinformationen verwenden.

Antwort Y für ja, oder irgendetwas anderes, um fortzufahren, ohne zu aktivieren.,

VALIDATE PASSWORD PLUGIN can be used to test passwordsand improve security. It checks the strength of passwordand allows the users to set only those passwords which aresecure enough. Would you like to setup VALIDATE PASSWORD plugin?Press y|Y for Yes, any other key for No:

Wenn Sie mit“ Ja “ antworten, werden Sie aufgefordert, eine Ebene der Passwortüberprüfung auszuwählen. Wenn Sie 2 für die stärkste Ebene eingeben, erhalten Sie Fehler, wenn Sie versuchen, ein Kennwort festzulegen, das keine Zahlen, Groß-und Kleinbuchstaben sowie Sonderzeichen enthält oder auf allgemeinen Wörterbuchwörtern basiert.

There are three levels of password validation policy:LOW Length >= 8MEDIUM Length >= 8, numeric, mixed case, and special charactersSTRONG Length >= 8, numeric, mixed case, special characters and dictionary filePlease enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

Unabhängig davon, ob Sie die VALIDATE PASSWORD PLUGIN eingerichtet haben, wird Ihr Server Sie als nächstes auffordern, ein Kennwort für den MySQL-Root-Benutzer auszuwählen und zu bestätigen., Dies ist ein Administratorkonto in MySQL, das über erhöhte Berechtigungen verfügt. Stellen Sie sich vor, es ähnelt dem Root-Konto für den Server selbst (obwohl das, das Sie jetzt konfigurieren, ein MySQL-spezifisches Konto ist). Stellen Sie sicher, dass dies ein starkes, eindeutiges Passwort ist, und lassen Sie es nicht leer.

Wenn Sie die Passwortüberprüfung aktiviert haben, wird Ihnen die Kennwortstärke für das gerade eingegebene Root-Passwort angezeigt, und Ihr Server fragt, ob Sie dieses Passwort ändern möchten., Wenn Sie mit Ihrem aktuellen Passwort zufrieden sind, geben Sie für“ nein“an der Eingabeaufforderung ein:

Using existing password for root.Estimated strength of the password: 100Change the password for root ? ((Press y|Y for Yes, any other key for No) : n

Drücken Sie für den Rest der Fragen Y und drücken Sie die Taste ENTER an jeder Eingabeaufforderung. Dadurch werden einige anonyme Benutzer und die Testdatenbank entfernt, Remote-Root-Anmeldungen deaktiviert und diese neuen Regeln geladen, sodass MySQL die von Ihnen vorgenommenen Änderungen sofort berücksichtigt.

Beachten Sie, dass in Ubuntu-Systemen MySQL 5 ausgeführt wird.,7 (und spätere Versionen) ist der Root-MySQL-Benutzer so eingestellt, dass er sich standardmäßig mit dem auth_socket – Plugin und nicht mit einem Kennwort authentifiziert. Dies ermöglicht in vielen Fällen eine größere Sicherheit und Benutzerfreundlichkeit, kann aber auch die Dinge erschweren, wenn Sie einem externen Programm (z. B. phpMyAdmin) den Zugriff auf den Benutzer ermöglichen müssen.

Wenn Sie beim Herstellen einer Verbindung zu MySQL als root lieber ein Kennwort verwenden möchten, müssen Sie die Authentifizierungsmethode von auth_socket auf mysql_native_passwordumstellen., Öffnen Sie dazu die MySQL-Eingabeaufforderung von Ihrem Terminal aus:

  • sudo mysql

Überprüfen Sie anschließend mit dem folgenden Befehl, welche Authentifizierungsmethode jedes Ihrer MySQL-Benutzerkonten verwendet:

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

In diesem Beispiel können Sie sehen, dass sich der Root-Benutzer tatsächlich mit dem Plugin auth_socket authentifiziert. Führen Sie den folgenden Befehl ALTER USER aus, um das Root-Konto für die Authentifizierung mit einem Kennwort zu konfigurieren., Stellen Sie sicher, dass Sie password in ein sicheres Kennwort Ihrer Wahl ändern:

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

Führen Sie dann FLUSH PRIVILEGES aus, das den Server anweist, die Grant-Tabellen neu zu laden und Ihre neuen Änderungen in Kraft zu setzen:

  • FLUSH PRIVILEGES;

Überprüfen Sie die Authentifizierungsmethoden, die von benutzer erneut bestätigen, dass root sich nicht mehr mit dem Plugin auth_socket authentifiziert:

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

Sie können in dieser Beispielausgabe sehen, dass sich der Root-MySQL-Benutzer jetzt mit einem Kennwort authentifiziert., Sobald Sie dies auf Ihrem eigenen Server bestätigt haben, können Sie die MySQL-Shell beenden:

  • exit

Zu diesem Zeitpunkt ist Ihr Datenbanksystem jetzt eingerichtet und Sie können mit der Installation von PHP fortfahren, der letzten Komponente des LAMP-Stacks.

Schritt 3-Installieren von PHP

PHP ist die Komponente Ihres Setups, die Code zur Anzeige dynamischer Inhalte verarbeitet. Es kann Skripte ausführen, eine Verbindung zu Ihren MySQL-Datenbanken herstellen, um Informationen abzurufen, und den verarbeiteten Inhalt zur Anzeige an Ihren Webserver übergeben.

Nutzen Sie erneut das apt – System, um PHP zu installieren., Fügen Sie dieses Mal einige Hilfspakete hinzu, damit PHP-Code unter dem Apache-Server ausgeführt und mit Ihrer MySQL-Datenbank gesprochen werden kann:

  • sudo apt install php libapache2-mod-php php-mysql

Dies sollte PHP ohne Probleme installieren. Wir werden das gleich testen.

In den meisten Fällen möchten Sie die Art und Weise ändern, wie Apache Dateien bereitstellt, wenn ein Verzeichnis angefordert wird. Wenn ein Benutzer derzeit ein Verzeichnis vom Server anfordert, sucht Apache zuerst nach einer Datei mit dem Namen ., Wir möchten dem Webserver mitteilen, dass er PHP-Dateien anderen vorziehen soll, also lassen Sie Apache zuerst nach einer index.php Datei suchen.

Geben Sie dazu diesen Befehl ein, um die dir.conf – Datei in einem Texteditor mit Root-Rechten zu öffnen:

  • sudo nano /etc/apache2/mods-enabled/dir.conf

Es sieht so aus:

/etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm</IfModule>

Verschieben Sie die PHP-Indexdatei (oben hervorgehoben) an die erste Position nach der Spezifikation DirectoryIndex wie folgt:

/etc/apache2/mods-enabled/dir.,conf
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm</IfModule>

Wenn Sie fertig sind, speichern und schließen Sie die Datei durch drücken von CTRL+X. Bestätigen Sie das Speichern, indem Sie Y eingeben und dann ENTER drücken, um den Speicherort der Datei zu überprüfen.

Starten Sie danach den Apache-Webserver neu, damit Ihre Änderungen erkannt werden., Geben Sie dazu Folgendes ein:

  • sudo systemctl restart apache2

Sie können den Status des apache2 – Dienstes auch mit systemctl:

  • sudo systemctl status apache2

Drücken Sie Q, um diese Statusausgabe zu beenden.

Um die Funktionalität von PHP zu verbessern, haben Sie die Möglichkeit, einige zusätzliche Module zu installieren., Um die verfügbaren Optionen für PHP-Module und-Bibliotheken anzuzeigen, leiten Sie die Ergebnisse von apt search in less, einen Pager, mit dem Sie durch die Ausgabe anderer Befehle scrollen können:

  • apt search php- | less

Scrollen Sie mit den Pfeiltasten nach oben und unten und drücken Sie Q, um zu beenden.

Die Ergebnisse sind alle optionalen Komponenten, die Sie installieren können. Es gibt Ihnen eine kurze Beschreibung für jeden:

bandwidthd-pgsql/bionic 2.0.1+cvs20090917-10ubuntu1 amd64 Tracks usage of TCP/IP and builds html files with graphsbluefish/bionic 2.2.10-1 amd64 advanced Gtk+ text editor for web and software developmentcacti/bionic 1.1.38+ds1-1 all web interface for graphing of monitoring systemsganglia-webfrontend/bionic 3.6.1-3 all cluster monitoring toolkit - web front-endgolang-github-unknwon-cae-dev/bionic 0.0~git20160715.0.c6aac99-4 all PHP-like Compression and Archive Extensions in Gohaserl/bionic 0.9.35-2 amd64 CGI scripting program for embedded environmentskdevelop-php-docs/bionic 5.2.1-1ubuntu2 all transitional package for kdevelop-phpkdevelop-php-docs-l10n/bionic 5.2.1-1ubuntu2 all transitional package for kdevelop-php-l10n…:

Um mehr darüber zu erfahren, was jedes Modul tut, können Sie im Internet nach weiteren Informationen suchen., Alternativ können Sie sich die lange Beschreibung des Pakets ansehen, indem Sie Folgendes eingeben:

  • apt show package_name

Es wird viel ausgegeben, mit einem Feld namens Description Dies hat eine längere Erklärung der Funktionalität, die das Modul bietet.,

Um beispielsweise herauszufinden, was das Modul php-cli tut, können Sie Folgendes eingeben:

  • apt show php-cli

Zusammen mit einer großen Menge anderer Informationen finden Sie etwas, das so aussieht:

Output
…Description: command-line interpreter for the PHP scripting language (default) This package provides the /usr/bin/php command interpreter, useful for testing PHP scripts from a shell or performing general shell scripting tasks. . PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. . This package is a dependency package, which depends on Ubuntu's default PHP version (currently 7.2).…

Wenn Sie nach Recherchen entscheiden, dass Sie ein Paket installieren möchten, können Sie dies tun, indem Sie verwenden Sie den Befehl apt install wie bei der anderen Software.,

Wenn Sie sich entschieden haben, dass php-cli etwas ist, das Sie benötigen, können Sie Folgendes eingeben:

  • sudo apt install php-cli

Wenn Sie mehr als ein Modul installieren möchten, können Sie dies tun, indem Sie jedes durch ein Leerzeichen getrennte Modul nach dem Befehl apt install wie folgt auflisten:

  • sudo apt install package1 package2 ...

Zu diesem Zeitpunkt ist Ihr LAMP-Stack installiert und konfiguriert. Bevor Sie etwas anderes tun, empfehlen wir Ihnen, einen virtuellen Apache-Host einzurichten, auf dem Sie die Konfigurationsdetails Ihres Servers speichern können.,

Schritt 4 – Einrichten virtueller Hosts (empfohlen)

Wenn Sie den Apache-Webserver verwenden, können Sie virtuelle Hosts (ähnlich wie Serverblöcke in Nginx) verwenden, um Konfigurationsdetails zu kapseln und mehr als eine Domäne von einem einzelnen Server aus zu hosten. Wir werden eine Domain namens your_domain einrichten, aber Sie sollten diese durch Ihren eigenen Domainnamen ersetzen. Weitere Informationen zum Einrichten eines Domainnamens mit DigitalOcean finden Sie in unserer Einführung in DigitalOcean DNS.

Apache auf Ubuntu 18.,04 standardmäßig ist ein Serverblock aktiviert, der für die Bereitstellung von Dokumenten aus dem Verzeichnis /var/www/html konfiguriert ist. Dies funktioniert zwar gut für eine einzelne Site, kann jedoch unhandlich werden, wenn Sie mehrere Sites hosten. Anstatt /var/www/html zu ändern, erstellen wir eine Verzeichnisstruktur innerhalb von /var/www für unsere your_domain-Site und lassen /var/www/html als Standardverzeichnis, das bereitgestellt werden soll, wenn eine Clientanforderung nicht mit anderen Sites übereinstimmt.,your_domain wie folgt:

sudo mkdir /var/www/your_domain

Weisen Sie als nächstes den Besitz des Verzeichnisses mit der Umgebungsvariablen $USER zu:

  • sudo chown -R $USER:$USER /var/www/your_domain

Die Berechtigungen Ihrer Webroots sollten korrekt sein, wenn Sie Ihren unmask – Wert nicht geändert haben, aber Sie können sicherstellen, dass Sie Folgendes eingeben:

Erstellen Sie als nächstes ein Beispiel Seite mit nano oder Ihrem bevorzugten Editor:

  • nano /var/www/your_domain/index.html

Fügen Sie das folgende Beispiel HTML hinzu:

/var/www/your_domain/index.,html
<html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain server block is working!</h1> </body></html>

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Damit Apache diesen Inhalt bereitstellen kann, muss eine virtuelle Hostdatei mit den richtigen Anweisungen erstellt werden. Anstatt die Standardkonfigurationsdatei unter /etc/apache2/sites-available/000-default.conf direkt zu ändern, erstellen wir eine neue unter /etc/apache2/sites-available/your_domain.conf:

  • sudo nano /etc/apache2/sites-available/your_domain.conf

Fügen Sie sie in den folgenden Konfigurationsblock ein, der dem Standard ähnelt, aber für unser neues Verzeichnis und unseren neuen Domainnamen aktualisiert wurde:

/etc/apache2/sites-available/your_domain.,conf

Beachten Sie, dass wir die DocumentRoot in unser neues Verzeichnis und ServerAdmin in eine E-Mail aktualisiert haben, auf die der Administrator der your_domain-Site zugreifen kann. Wir haben auch zwei Direktiven hinzugefügt: ServerName, die die Basisdomäne festlegt, die mit dieser Definition des virtuellen Hosts übereinstimmen soll, und ServerAlias, die weitere Namen definiert, die übereinstimmen sollten, als wären sie der Basisname.

Speichern und schließen Sie die Datei, wenn Sie fertig sind.,

Lassen Sie uns die Datei mit dem Werkzeug a2ensite aktivieren:

  • sudo a2ensite your_domain.conf

Deaktivieren Sie die in 000-default.conf:

  • sudo a2dissite 000-default.conf

Als nächstes testen wir auf Konfigurationsfehler:

  • sudo apache2ctl configtest

Sie sollten die folgende Ausgabe sehen:

Output
Syntax OK

Starten Sie Apache neu, um Ihre Änderungen zu implementieren:

  • sudo systemctl restart apache2

Apache sollte jetzt Ihren Domainnamen bereitstellen., Sie können dies testen, indem Sie zu navigieren, wo Sie Folgendes sehen sollten:

Damit ist Ihr virtueller Host vollständig eingerichtet. Bevor Sie weitere Änderungen vornehmen oder eine Anwendung bereitstellen, ist es jedoch hilfreich, Ihre PHP-Konfiguration proaktiv zu testen, falls Probleme auftreten, die behoben werden sollten.

Schritt 5 – Testen der PHP-Verarbeitung auf Ihrem Webserver

Um zu testen, ob Ihr System richtig für PHP konfiguriert ist, erstellen Sie ein sehr einfaches PHP-Skript namens info.php., Damit Apache diese Datei finden und korrekt bereitstellen kann, muss sie in Ihrem Webstammverzeichnis gespeichert werden.

Erstellen Sie die Datei im Webstamm, den Sie im vorherigen Schritt erstellt haben, indem Sie Folgendes ausführen:

  • sudo nano /var/www/your_domain/info.php

Dadurch wird eine leere Datei geöffnet. Fügen Sie den folgenden Text, der gültiger PHP-Code ist, in die Datei ein:

info.php
<?phpphpinfo();?>

Wenn Sie fertig sind, speichern und schließen Sie die Datei.

Jetzt können Sie testen, ob Ihr Webserver die von diesem PHP-Skript generierten Inhalte korrekt anzeigen kann. Um dies auszuprobieren, besuchen Sie diese Seite in Ihrem Webbrowser., Sie benötigen erneut die öffentliche IP-Adresse Ihres Servers.

Die Adresse, die Sie besuchen möchten, lautet:

The page that you come to should look something like this:

This page provides some basic information about your server from the perspective of PHP. It is useful for debugging and to ensure that your settings are being applied correctly.

If you can see this page in your browser, then your PHP is working as expected.

You probably want to remove this file after this test because it could actually give information about your server to unauthorized users. To do this, run the following command:

  • sudo rm /var/www/your_domain/info.php

Sie können diese Seite jederzeit neu erstellen, wenn Sie später erneut auf die Informationen zugreifen müssen.

Fazit

Nachdem Sie nun einen Lampenstapel installiert haben, haben Sie viele Möglichkeiten, was als nächstes zu tun ist. Grundsätzlich haben Sie eine Plattform installiert, mit der Sie die meisten Arten von Websites und Websoftware auf Ihrem Server installieren können.

Als sofortiger nächster Schritt sollten Sie sicherstellen, dass Verbindungen zu Ihrem Webserver gesichert sind, indem Sie sie über HTTPS bereitstellen., Die einfachste Möglichkeit besteht darin, Let ‚ s Encrypt zu verwenden, um Ihre Site mit einem kostenlosen TLS/SSL-Zertifikat zu sichern.

Einige andere beliebte Optionen sind:

  • Installieren Sie WordPress das beliebteste content management system im internet.
  • Richten Sie phpMyAdmin ein, um Ihre MySQL-Datenbanken über den Webbrowser zu verwalten.
  • Erfahren Sie, wie Sie mit SFTP Dateien auf und von Ihrem Server übertragen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.