[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:mit Root-Rechten arbeiten:] [:Editor: Einen Editor benutzen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/service.png, 48, align=left)]] Dieser Artikel ist insbesondere für Einsteiger gedacht und beschreibt kurz und knapp, wie man unter Ubuntu einen einfachen [wikipedia:LAMP_(Softwarepaket):LAMP]-Server mit Apache, [:MySQL:] und [:PHP:] installiert. Mehr Details zu diesen drei Komponenten sind den jeweiligen Einzelartikeln zu entnehmen. LAMP steht für '''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP 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. {{{#!vorlage Experten 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: {{{#!vorlage Paketinstallation apache2, [:Apache_2.4:] 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. [[Bild(apache-index-default-datei.png, 400x400, right, alt="Screenshot localhost unter Apache 2.4", title="Die von Apache 2.4 standardmäßig eingerichtete index.html, aufgerufen in Firefox" align=center)]] 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]: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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#Rechte:] beschrieben. == PHP testen == Die Datei '''phpinfo.php''' mit einem beliebigen Editor [4] im "document root" anlegen und den folgenden Inhalt ergänzen: {{{#!code php }}} 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 [:Serverdienste#Multimedia: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 [http://phpsysinfo.github.io/phpsysinfo/ PhpSysInfo] {en} und [:Monit:] seit Langem zum Standard-Inventar gehören, bietet [heise:-2407522:Linux Dash] {de} eine moderne grafische Oberfläche. Wächst der Serverpark und damit auch die Ansprüche, sind weitere Anregungen im Artikel [:Netzwerk-Monitoring#Links:] zu finden. = Links = == Intern == * [:Apache/Sicherheit:] {Übersicht} 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:] {Übersicht} Übersichtsseite == Extern == * [ubuntu_doc:community/ApacheMySQLPHP:Apache - MySQL - PHP] {en} - im engl. Ubuntu-Wiki * [http://www.decocode.de/?37 Einrichten eines lokalen LAMP-Servers] {de} - Blogbeitrag, 09/2014 * [github:afaqurk/linux-dash:Linux Dash] {en} * [https://tari.in/www/software/lampswitch/ LAMP Switch] {en} - Apache über ein Panel-Symbol starten/stoppen #tag: Netzwerk, Internet, Server, Apache, Einsteiger, PHP, Webanwendung