[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte erlangen] [:Programme starten: Ein Programm ohne Menüeintrag starten] [:Menüeditor: Programme zum Menü hinzufügen] [:Editor: Einen Editor öffnen] [:Pakete installieren: Installation von Programmen] }}} [[Inhaltsverzeichnis(2)]] [[Bild(/xampp-logo.png, 48, align=left)]] [http://www.apachefriends.org/ XAMPP] {en} ist eine Zusammenstellung von freier Software vorwiegend aus dem Umfeld eines LAMP-Servers. LAMP ist ein [wikipedia:Akronym:] für den kombinierten Einsatz von Programmen auf Basis von Linux, um dynamische Webseiten zur Verfügung zu stellen. Die einzelnen Buchstaben des Akronyms stehen für die verwendeten Komponenten: '''L'''inux, '''A'''pache, '''M'''ySQL und '''P'''HP bzw. '''P'''erl (ab XAMPP 5.5.30 und 5.6.14 wird XAMPP mit der Datenbank [:MariaDB:] anstelle von MySQL ausgeliefert). XAMPP ermöglicht das einfache Installieren und Konfigurieren des Webservers [:Apache:] mit einer Datenbank und den Skriptsprachen [:Perl:] und [:PHP:] (mit PEAR). Das X steht hierbei für die verschiedenen Betriebssysteme, auf denen es eingesetzt werden kann. Zusätzlich enthalten sind andere nützliche Werkzeuge wie den FTP-Server ProFTPD, den Mailserver [wikipedia:Mercury_MTS:Mercury], [:MySQL/Werkzeuge#phpMyAdmin:phpMyAdmin], [:Webalizer:] und [wikipedia:Transport_Layer_Security:TLS]-Vrschlüsselung. {{{#!vorlage Hinweis Das häufig für Windows empfohlene XAMPP bereitet unter Ubuntu immer wieder Probleme. Da Ubuntu (fast) alle in XAMPP enthaltenen Serverdienste auch über die offiziellen Paketquellen bereitstellt, sollten bevorzugt die Einzelpakete genutzt werden. Konkret wird das im Artikel [:LAMP:] erläutert. }}} = Eigenschaften und Funktionen = Ziel von XAMPP ist es, eine besonders einfache Installation zu erreichen. Mit wenigen Mausklicks erhält man eine brauchbare Vorkonfiguration, die alleine teilweise recht lange dauern würde. {{{#!vorlage Warnung XAMPP ist ausschließlich eine Testumgebung für Entwickler und sollte nicht als öffentlicher [wikipedia:Webserver:] verwendet werden! Dies erklärt auch die bewusst in Kauf genommenen Einschränkungen in Hinblick auf die [#Sicherheit Sicherheit von XAMPP] (siehe unten). }}} = Installation = Unter Linux installiert sich XAMPP komplett in das Verzeichnis [:opt:/opt/lamp/]. Eventuelle Installationen von Apache, PHP und MySQL aus der [:Paketverwaltung:] werden in der Regel nach '''/usr/bin/''' oder '''/usr/sbin/''' installiert. Während Dateikonflikte damit auszuschließen sind, ist es ratsam, vorhandene Dienste zumindest abzuschalten (oder zu deinstallieren). [[Vorlage(Fremd, Software, "")]] Die von [sourceforge:xampp/files/XAMPP Linux/:SourceForge] {en} {dl} heruntergeladene Datei (ca. 120 MiB) installiert man mit folgenden Befehlen im Terminal [1][2]: {{{#!vorlage Befehl chmod 755 xampp-linux-VERSION-installer.run sudo ./xampp-linux-VERSION-installer.run }}} Bereits vorhandene Dateien werden kommentarlos überschrieben. Bei Fehlermeldungen während der Installation empfiehlt es sich, einen vorhandenen XAMPP-Ordner im selben Verzeichnis zu löschen. Wer den Zielordner anders benennen möchte, kann den Ordner nach der Installation umbenennen. Ältere Versionen (vor Version 1.8.2) wurden dagegen mit dem Befehl: {{{#!vorlage Befehl sudo tar xvfz xampp-linux-VERSION.tar.gz -C /opt }}} nach '''/opt/lampp''' entpackt. = XAMPP starten = Damit ist XAMPP nun einsatzbereit. Um XAMPP zu starten [3], reicht der folgende Befehl im Terminal aus: {{{#!vorlage Befehl sudo /opt/lampp/lampp start }}} Auf dem Bildschirm sollten nun folgende Mitteilungen zu sehen sein (die Versionsnummer kann abweichen): {{{ Starting XAMPP for Linux 1.8.2-0... XAMPP: Starting Apache...ok. XAMPP: Starting MySQL...ok. XAMPP: Starting ProFTPD...ok. }}} Damit sind XAMPP bzw. der Apache, MySQL und evtl. ProFTPD gestartet und laufen. == Testen – Läuft der Server? == [[Bild(/xampp_start.png,200,right)]] Um zu testen, ob der Server auch wirklich läuft und einsatzbereit ist, kann man einfach auf den Apache zugreifen. Dazu gibt man in der Adresszeile des Browsers die eigene URL ein: `http://localhost` (siehe [wikipedia:localhost:]). Ist alles korrekt eingegeben und der Apache läuft, sieht man nun die Startseite von XAMPP (siehe Bild rechts). Auf der Startseite gibt es nun einen Link zum Testen der Installation und ein paar kleine Programmbeispiele. {{{#!vorlage hinweis Hat man später diese Startseite durch seine eigene Seite ersetzt, kann man übrigens die XAMPP-Startseite immer noch unter `http://localhost/xampp/` erreichen. }}} = XAMPP stoppen = Mit einem ebenso einfachen und kurzen Befehl wird XAMPP bzw. der Apache, MySQL und evtl. ProFTPD wieder gestoppt: {{{#!vorlage Befehl sudo /opt/lampp/lampp stop }}} Auf dem Bildschirm sollten nun folgende Mitteilungen zu sehen sein (die Versionsnummer kann abweichen): {{{ Stopping XAMPP for Linux 1.8.2-0... XAMPP: Stopping Apache...ok. XAMPP: Stopping MySQL...ok. XAMPP: Stopping ProFTPD...ok. }}} Damit sind XAMPP bzw. der Apache, MySQL und evtl. ProFTPD gestoppt und wurden beendet. = XAMPP per GUI starten/stoppen = [[Bild(/xampp_control_panel.png,200,right)]] Eine komfortable Möglichkeit, um XAMPP zu starten/stoppen, bietet eine XAMPP-eigene [wikipedia:Grafische_Benutzeroberfläche:GUI]. Da der Ordner '''/opt/lampp/''' [:sudo:Root-Rechte] voraussetzt, startet man die folgenden Befehle mit [:mit_Root-Rechten_arbeiten:mit Root-Rechten] {{{#!vorlage Befehl sudo -H "python /opt/lampp/share/xampp-control-panel/xampp-control-panel.py" }}} Diese Befehle kann man auch dem Anwendungsmenü oder dem Panel hinzufügen [4] . Es kann, je nach eingesetzter Ubuntuversion, dazu kommen, dass man eine Fehlermeldung beim Aufruf des Python-Befehls erhält. Dieser kann wie folgt aussehen: {{{Error importing pygtk2 and pygtk2-libglade}}} Um diesen zu umgehen, muss man das Paket '''python-glade2''' installieren [6] . = Einen Starter im Panel erzeugen = Mit folgenden zwei Schritten ist es möglich, einen Starter im Ubuntu Panel zu erzeugen: 1. In einem Editor mit Root-Rechten die Datei '''/usr/share/applications/xamppgui.desktop''' mit folgendem Inhalt anlegen: {{{ [Desktop Entry] Name=XAMPP Comment=Apachefriends XAMPP Exec=sh /opt/./startscriptxampp.sh Icon=/home/BENUTZER/Bilder/xamppicon.png Terminal=false Type=Application Categories=Application; }}} 2. In einem Editor mit Root-Rechten die Datei die Datei '''/opt/startscriptxampp.sh''' mit folgendem Inhalt anlegen: {{{ #!/bin/bash pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /opt/lampp/manager-linux-x64.run }}} = Speicherort ändern = Die vom Anwender erstellten Webseiten (z. B. HTML oder PHP) werden im Verzeichnis '''/opt/lampp/htdocs/''' gespeichert. Das ist auch der Ort, den XAMPP durchsucht, um selbige im Browser darzustellen. Um die oben genannten Root-Rechte beim Editieren der Dateien im Verzeichnis '''/opt/lampp/''' umgehen zu können, kann man sich diesen Ordner in das eigene [:Homeverzeichnis:] verlinken: {{{#!vorlage Befehl mkdir ~/ORDNERNAME sudo ln -s ~/ORDNERNAME /opt/lampp/htdocs/$USER }}} Erreichbar ist das '''htdocs'''-Verzeichnis im Browser dann über den eigenen Benutzernamen via `http://localhost/BENUTZERNAME/` bzw `http://127.0.0.1/BENUTZERNAME/`. Erhält man eine Fehlermeldung ('''Zugriffsfehler: 403''') beim Aufruf der Seite, so muss man die Datei '''/opt/lampp/etc/httpd.conf''' mit einem Editor mit root-Rechten [5] (etwa im Bereich von Zeile 173) anpassen: Die Zeile {{{User nobody}}} bzw. {{{User daemon}}} ändert man in {{{User BENUTZERNAME}}} Um XAMPP (respektive Apache) diese Änderung bekannt zu machen, muss man XAMPP neu starten. Danach sollte der 403-Fehler verschwunden sein. Bitte im Nachgang auch den Hinweis unter "Problembehandlung / PHPMyAdmin" beachten! = Upgrade == Da XAMPP an der [:Paketverwaltung:] vorbei installiert wurde, muss man sich selbst um Updates/Ugrades kümmern. Zwei Gründe sprechen für das unter Umständen im [#Installation Download-Verzeichnis] angebotene Upgrade-Paket: * Die XAMPP-Distribution ist recht umfangreich, weshalb sich bei einer schon bestehenden XAMPP-Installation das viel kleinere Upgrade-Paket empfiehlt. * Bei einem Upgrade werden bestehende Konfigurations- und HTML-Dateien (z.B. htdocs/index.php, siehe [#Speicherort-der-htdocs-aendern htdocs]) nicht überschrieben, was sonst bei einer Neuinstallation der Fall wäre. = Deinstallation = Um XAMPP zu deinstallieren, muss man nur das Verzeichnis '''/opt/lampp/''' löschen. Dazu nutzt man entweder den jeweiligen [:Dateimanager:] oder das [:Terminal:] (siehe [:rm:]). Zum Löschen sind in beiden Fällen Root-Rechte [2] erforderlich. = Start- und Stopp-Parameter = Die Parameter, welche in der Tabelle aufgeführt sind, werden immer dem folgenden Befehl angehängt: {{{#!vorlage Befehl sudo /opt/lampp/lampp PARAMETER }}} Die folgende Tabelle zeigt die verschiedenen Parameter von XAMPP. {{{#!vorlage tabelle <-2 rowclass="titel"> '''Start- und Stopp-Parameter von XAMPP''' +++ '''Parameter''' '''Bedeutung''' +++ `start` Startet XAMPP +++ `stop` Stoppt XAMPP +++ `restart` Stoppt und startet XAMPP +++ `reload` Apache, MySQL und – wenn gestartet – ProFTPD lesen die jeweiligen Konfigurationsdateien neu ein +++ `security` Führt einen kleinen Sicherheitscheck von XAMPP durch und schließt eventuelle Lücken +++ `startapache` Startet nur den Apache +++ `startssl` Dadurch wird der Apache mit [wikipedia:Transport_Layer_Security:SSL]-Unterstützung gestartet. Unter `https://localhost` kann man seinen Apache via SSL erreichen. Durch diesen Befehl wird die SSL-Unterstützung permanent aktiviert. D.h. auch beim nächsten Start des XAMPP wird SSL wieder mit gestartet. +++ `startmysql` Startet nur die MySQL-Datenbank +++ `startftp` Startet nur den ProFTPD-Server. Der [wikipedia:File_Transfer_Protocol:FTP]-Server ist so vorkonfiguriert, dass man nun mit dem Benutzer `nobody` und dem Passwort `lampp` nun z.B. die [wikipedia:Hypertext_Markup_Language:HTML]-Dateien auf den XAMPP-Server hochladen kann. Wichtig: Man sollte schnellstens ein anderes Passwort setzten. (siehe [#Sicherheit Abschnitt Sicherheit]). Durch diesen Befehl wird der FTP-Server permanent aktiviert, das heißt auch beim nächsten Start von XAMPP wird der FTP-Server wieder gestartet. +++ `stopapache` Stoppt den Apache +++ `stopssl` Stoppt die SSL-Unterstützung des Apache. Auch beim nächsten Start von XAMPP wird die SSL-Unterstützung nicht mehr gestartet. +++ `stopmysql` Stoppt die MySQL-Datenbank +++ `stopftp` Stoppt den ProFTPD-Server. Auch beim nächsten Start von XAMPP wird der FTP-Server nicht mehr gestartet. +++ `reloadapache` Der Apache liest die Konfigurationsdatei neu ein +++ `reloadmysql` MySQL liest die Konfigurationsdatei neu ein +++ `reloadftp` ProFTPD liest die Konfigurationsdatei neu ein }}} = Was ist wo? = Die nachfolgende Tabelle gibt einen Überblick über die Konfigurationsdateien der in XAMPP enthaltenen Software-Pakete. {{{#!vorlage tabelle <-2 rowclass="titel"> Wichtige Dateien und Verzeichnisse von XAMPP +++ Datei oder Verzeichnis Bedeutung +++ '''/opt/lampp/bin/''' Dort liegen die Befehle zu XAMPP. `/opt/lampp/bin/mysql` ruft beispielsweise den MySQL-Monitor auf +++ '''/opt/lampp/htdocs/''' Das [:Apache#Systemweit:DocumentRoot]-Verzeichnis des Apache-Webserver. Dort liegen die Webseiten des Apache +++ '''/opt/lampp/etc/httpd.conf''' Die zentrale Konfigurations-Datei für den Apache-Webserver +++ '''/opt/lampp/etc/my.cnf''' Die Konfigurations-Datei für den MySQL-Datenbankserver +++ '''/opt/lampp/etc/php.ini''' Die Konfigurations-Datei für PHP +++ '''/opt/lampp/etc/proftpd.conf''' Die Konfigurations-Datei für ProFTPD +++ '''/opt/lampp/phpmyadmin/config.inc.php''' Die Konfigurations-Datei für phpMyAdmin }}} = Sicherheit = Wie schon an obiger Stelle erwähnt, ist XAMPP nicht für den Produktiveinsatz gedacht, sondern nur für Entwickler als [:Entwicklungsversion:Testumgebung]. Das hat zur Folge, dass XAMPP absichtlich nicht restriktiv, sondern im Gegenteil sehr offen vorkonfiguriert ist. Für Amateure ist das ideal, da sie so keine Grenzen vom System vorgeschrieben bekommen. Die folgende Liste zeigt die Eigenschaften, die an XAMPP absichtlich (!) unsicher sind: [[Bild(/xampp_status.png,350,right)]] * Der MySQL-Administrator (`root`) hat kein Passwort * Der MySQL-Dienst ist über das Netzwerk erreichbar * Der ProFTPD-Daemon benutzt das Passwort `lampp` * PhpMyAdmin ist übers Netzwerk erreichbar * Die Demoseiten sind für jeden im Netzwerk abrufbar * MySQL und Apache laufen unter der gleichen Benutzerkennung (`nobody`) In den XAMPP-Demo-Seiten gibt es den Punkt ''"Sicherheitscheck"'': `http://localhost/xampp/security.php`. Dort kann man sich den aktuellen Sicherheitszustand der eigenen XAMPP-Installation anzeigen lassen (siehe Bild rechts). == XAMPP in einem Netzwerk betreiben == Will man XAMPP in einem Netzwerk betreiben, so dass der XAMPP-Server auch von anderen erreichbar ist, sollte man unbedingt den folgenden Befehl aufrufen, mit dem man diese Unsicherheiten einschränken kann: {{{#!vorlage befehl sudo /opt/lampp/lampp security }}} Dieser Befehl zeigt folgenden Dialog im Terminal an (aus Demonstrationsgünden wurde hier jeweils die Option ''"Nein"'' gewählt): {{{ XAMPP: Schneller Sicherheits-Check... XAMPP: Die XAMPP-Seiten sind NICHT mit einem Passwort geschuetzt. XAMPP: Moechtest Du ein Passwort setzen? [ja] n XAMPP: Der MySQL/phpMyAdmin-Benutzer pma hat kein Passwort gesetzt!!! XAMPP: Moechtest Du ein Passwort setzten? [ja] n XAMPP: MySQL hat kein root-Passwort gesetzt!!! XAMPP: Moechtest Du ein Passwort setzten? [ja] n XAMPP: Das FTP-Passwort fuer 'nobody' ist noch auf 'lampp' gestellt. XAMPP: Moechtest Du das Passwort aendern? [ja] n XAMPP: Fertig. }}} Mit der Option ''"Ja"'' sind dann die XAMPP-Demoseiten mit einem Benutzernamen (`lampp`) und einem Passwort geschützt und auch nicht mehr für jeden über das Netzwerk erreichbar. Nach diesen Aufruf kann man jedenfalls davon ausgehen, dass die XAMPP-Installation halbwegs sicher ist. Man sollte in jedem Fall den Punkt "Sicherheit" in der Linux FAQ durchlesen. == Backup Datenbank == Um eine Datenbank zu sichern, XAMPP starten und im Browser `localhost/phpmyadmin` aufrufen. Hiermit gelangt man zum phpMyAdmin. Auf der Verwaltungsoberfläche kann nun die Datenbank ausgewählt und mit der Export-Funktion gesichert werden. = Problembehebung = Bei Problemen oder Fehlermeldungen kann man sich die [https://www.apachefriends.org/faq_linux.html Linux FAQ] {en} anschauen. Dort werden viele Probleme und Fehlermeldungen erklärt. == Dropbox == XAMPP hat einen Zuweisungsproblem mit [:Dropbox:]. Dann Dropbox ausschalten. {{{#!vorlage Befehl /usr/bin/dropbox stop }}} == phpMyAdmin == Erhält man die '''Fehlermeldung der Art''': {{{ Neues XAMPP Sicherheitskonzept: Der Zugriff auf das angeforderte Verzeichnis ist nur aus dem lokalen Netzwerk möglich. Diese Einstellung kann in der Datei "httpd-xampp.conf" angepasst werden. Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber. Error 403 localhost Apache/2.4.2 (Unix) OpenSSL/1.0.1c PHP/5.4.4 }}} ändert man die Datei '''/opt/lampp/etc/extra/httpd-xampp.conf''' entsprechend ab ([http://www.apachefriends.org/f/viewtopic.php?f=17&t=50902&p=196185#p196185 Anleitung] {en}). Erhält man die '''Fehlermeldung der Art''': {{{ session_start(): open(abcdefghijklmnopqrstuvwxyz, O_RDWR) failed: Permission denied (13) }}} müssen die die alten Session-Daten aus dem TEMP-Verzeichnis '''/opt/lampp/temp''' mit root-Rechten gelöscht werden. {{{ cd /opt/lampp/temp sudo rm sess_* }}} Dies kann z.B. passieren, wenn man die Datei httpd.conf bearbeitet hat und seinen eigenen Benutzernamen anstelle von "daemon" eingesetzt hat. = Links = * [http://www.apachefriends.org/ Projektseite] {en} * [https://www.apachefriends.org/download.html Downloads] {en} {dl} * [https://www.apachefriends.org/faq_linux.html Linux FAQ] {en} * [:Serverdienste:] {Übersicht} Übersichtsartikel # tag: Internet, Netzwerk, Server