LAMP
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Dieser Artikel ist insbesondere für Einsteiger gedacht und beschreibt kurz und knapp, wie man unter Ubuntu einen einfachen LAMP-Server mit Apache, MySQL und PHP installiert. Mehr Details zu diesen drei Komponenten sind den jeweiligen Einzelartikeln zu entnehmen.
LAMP steht für Linux, Apache, MySQL, PHP und beschreibt ein System, das den Web-Server Apache mit PHP und den Datenbank-Server MySQL unter Linux bereitstellt.
Installation¶
Alle benötigten Komponenten können aus den offiziellen Paketquellen installiert [1] werden. Alternativ kann man sich das Programm tasksel installieren und dort die gewünschte Aufgabe auswählen. Hier können neben Apache, MySQL und PHP noch weitere Server-Komponenten installiert werden.
Experten-Info:
Während der Installation wird in jedem Fall ein Kennwort für den Datenbank-Administrator root
abgefragt. Dieses Kennwort bitte sorgfältig wählen und vor allem sicher verwahren. Und den Datenbank-Administrator bitte nicht mit dem gleichnamigen Systemadministrator-Konto root
verwechseln. Es handelt um zwei völlig unterschiedliche Benutzer, auch wenn der Name identisch ist.
Für die Basisinstallation werden folgende Pakete benötigt:
apache2 (Apache 2.4)
libapache2-mod-php
php
php-mysql
mysql-server
Befehl zum Installieren der Pakete:
sudo apt-get install apache2 libapache2-mod-php php php-mysql mysql-server
Oder mit apturl installieren, Link: apt://apache2,libapache2-mod-php,php,php-mysql,mysql-server
Nutzung¶
Für einen ersten Test mit einem Webbrowser die Internet-Adresse http://localhost
oder http://IP-ADRESSE
aufrufen. Es erscheint eine Startseite, die in etwa so aussieht wie der Screenshot rechts.
Apache wird gemäß der seinem Installationspaket zugrunde liegenden Debian Richtline für Serverpakete automatisch bei der Installation gestartet und für den automatischen Start eingerichtet. Er kann mit folgenden Befehlen gesteuert werden [2][3]:
sudo systemctl stop apache2 sudo systemctl start apache2 sudo systemctl disable apache2
der letzte Befehl entfernt Apache aus dem Autostart des Systems und kann mit "enable" rückgängig gemacht werden. Bei Änderungen an Apache oder PHP (neue Module, neue Webseiten etc) muss der Apache neu gestartet werden:
sudo systemctl restart apache2
Inhalte auf den Server laden¶
Die Inhalte für den Server werden in einem als "document root" bezeichneten Verzeichnis abgespeichert. Je nach Apache- bzw. Ubuntu-Version ist das der folgende Ordner:
/var/www/html/
Für das Speichern in diesem Ordner werden jedoch Root-Rechte benötigt. Da dies unpraktisch sein kann, sollten nicht die Rechte für dieses Verzeichnis angepasst, sondern stattdessen der gewünschte Benutzer der Gruppe www
hinzufügt werden. Wie das geht, wird im Artikel Apache (Abschnitt „Rechte“) beschrieben.
PHP testen¶
Die Datei phpinfo.php mit einem beliebigen Editor [4] im "document root" anlegen und den folgenden Inhalt ergänzen:
1 2 3 | <?php phpinfo(); ?> |
Anschließend im Webbrowser die Adresse http://localhost/phpinfo.php
oder http://IP-ADRESSE/phpinfo.php
aufrufen. Es werden alle Informationen zur verwendeten PHP-Version und -Einstellungen aufgeführt. Nach erfolgreichem Test bitte wieder entfernen, um diese Informationen nicht Außenstehenden zur Verfügung zu stellen.
Weitere Anwendungen¶
Nachdem nun ein LAMP-Server grundsätzlich einsatzbereit ist, kann man sich mit der praktischen Nutzung wie Webentwicklung oder Webapplikationen wie beispielsweise einer Bildergalerie beschäftigen. Wer einen aus dem Internet erreichbaren Webserver betreibt, sollte sich unbedingt auch mit dem Thema "Server-Sicherheit" auseinandersetzen. Anregungen dazu sind den nachfolgend genannten Links zu entnehmen.
Bei Webapplikationen stellt sich häufig die Frage, ob man diese über die offiziellen Paketquellen installieren soll. Leider sind die allermeisten – wenn überhaupt in den Paketquellen enthalten – der Sektion universe
zugeordnet, was bedeutet, dass diese keine Sicherheitsupdates erhalten. So wandelt sich der Vorteil einer einfachen Installation in den entscheidenden Nachteil, dass die spätere Pflege unmöglich wird. Was bei einem privaten, nicht mit dem Internet verbundenen Server noch zu tolerieren ist, ist bei einem öffentlichen Webserver ein absolutes Tabu. In der Praxis sollte man daher eine manuelle Installation bevorzugen und prüfen, welche Mechanismen jeweils angeboten werden, um die betreffende Software aktuell zu halten.
Monitoring¶
Insbesondere bei dezidierten Servern, die ohne Monitor, Tastatur und Maus betrieben werden, ist es praktisch, schnell einen Blick auf den aktuellen Serverstatus zu werfen, ohne auf die Kommandozeile zurückgreifen zu müssen. Während PhpSysInfo 🇬🇧 und Monit seit Langem zum Standard-Inventar gehören, bietet Linux Dash 🇩🇪 eine moderne grafische Oberfläche. Wächst der Serverpark und damit auch die Ansprüche, sind weitere Anregungen im Artikel Netzwerk-Monitoring (Abschnitt „Links“) zu finden.
Links¶
Intern¶
Apache/Sicherheit Module zu Härtung des Webservers gegen Angriffe von außen
fail2ban - DoS-Angriffe auf Server-Dienste blockieren
Apache/SSL - SSL-Zertifikat für verschlüsselte Verbindungen einrichten
MySQL/Werkzeuge - Programme zur Verwaltung von Datenbanken
Instant Webserver - einfache Webserver ohne MySQL und PHP
Serverdienste Übersichtsseite
Extern¶
Apache - MySQL - PHP 🇬🇧 - im engl. Ubuntu-Wiki
Einrichten eines lokalen LAMP-Servers 🇩🇪 - Blogbeitrag, 09/2014
Linux Dash 🇬🇧
LAMP Switch 🇬🇧 - Apache über ein Panel-Symbol starten/stoppen