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"
OutputProfile: 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 PLUGIN
konfigurieren 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_password
umstellen., Ö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:
<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:
<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:
<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:
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:
OutputSyntax 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:
<?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