Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
XAMPP
ist eine Zusammenstellung von freier Software vorwiegend aus dem Umfeld eines LAMP-Servers. LAMP ist ein 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: Linux, Apache, MySQL und PHP bzw. Perl.
XAMPP ermöglicht das einfache Installieren und Konfigurieren des Webservers Apache mit der Datenbank MySQL bzw. SQLite 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 Mercury, phpMyAdmin, Webalizer und OpenSSL.
Das häufig 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.
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.
XAMPP ist ausschließlich eine Testumgebung für Entwickler und sollte nicht als öffentlicher Webserver verwendet werden! Dies erklärt auch die bewusst in Kauf genommenen Einschränkungen in Hinblick auf die Sicherheit von XAMPP (siehe unten).
Unter Linux installiert sich XAMPP komplett in das Verzeichnis /opt.
Eventuelle Installationen von Apache, PHP und MySQL aus der Paketverwaltung werden in der Regel nach /usr/bin oder /usr/sbin installiert, so dass es ratsam ist, diese Pakete vor einer Installation von XAMPP komplett zu deinstallieren oder zumindest die Dienste abzuschalten.
Fremdsoftware kann das System gefährden.
Anmerkung: Die XAMPP-Software wird als tar.gz-Archiv von apachefriends.org zum Download
angeboten. Aus den dort angebotenen Optionen wählt man in der Regel die erste (Komplettpaket). Finden kann man dort auch ein eventuelles Upgrade-Paket.
Das heruntergeladene Archiv entpackt [1] man mit dem folgenden Befehl im Terminal [2] ins Verzeichnis /opt:
sudo tar xvfz xampp-linux-*.tar.gz -C /opt
XAMPP ist damit im Verzeichnis /opt/lampp installiert.
Eigentlich ist XAMPP nun schon einsatzbereit. Um XAMPP zu starten [3], reicht der folgende Befehl im Terminal aus:
sudo /opt/lampp/lampp start
Auf dem Bildschirm sollten nun folgende Mitteilungen zu sehen sein (die Versionsnummer kann abweichen):
Starte XAMPP fuer Linux 1.7.3a... XAMPP: Starte Apache mit SSL (und PHP5)... XAMPP: Starte MySQL... XAMPP: Starte ProFTPD... XAMPP fuer Linux gestartet.
Damit sind XAMPP bzw. der Apache, MySQL und evtl. ProFTPD gestartet und laufen.
Nutzer eines 64-bit Systems werden eine Fehlermeldung bezüglich fehlender Abhängigkeiten erhalten. Eine Lösung dafür ist unter Probleme und Fehler zu finden.
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 (siehe localhost) ein:
http://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.
Hat man später diese Startseite durch seine eigene Seite ersetzt, kann man übrigens die XAMPP-Startseite immer noch unter http://localhost/xampp/
erreichen.
Mit einem ebenso einfachen und kurzen Befehl wird XAMPP bzw. der Apache, MySQL und evtl. ProFTPD wieder gestoppt:
sudo /opt/lampp/lampp stop
Auf dem Bildschirm sollten nun folgende Mitteilungen zu sehen sein (die Versionsnummer kann abweichen):
Stoppe XAMPP fuer Linux 1.7.3a... XAMPP: Stoppe Apache mit SSL... XAMPP: Stoppe MySQL... XAMPP: Stoppe ProFTPD... XAMPP beendet.
Damit sind XAMPP bzw. der Apache, MySQL und evtl. ProFTPD gestoppt und wurden beendet.
Eine komfortable Möglichkeit, um XAMPP zu starten/stoppen, bietet die XAMPP-eigene GUI. Da der Ordner /opt Root-Rechte voraussetzt, startet man die folgenden Befehle mit Hilfe von gksu bzw kdesudo:
Bei der Nutzung von GNOME oder Xfce:
gksu "python /opt/lampp/share/xampp-control-panel/xampp-control-panel.py"
Bei der Nutzung von KDE:
kdesudo "python /opt/lampp/share/xampp-control-panel/xampp-control-panel.py"
Diese Befehle kann man auch dem Menü oder dem Panel hinzufügen [4] .
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 umgehen zu können, kann man sich diesen Ordner in das eigene Homeverzeichnis verlinken:
mkdir ~/name_des_ordners ## man wählt sich hier einen passenden Namen
sudo ln -s ~/name_des_ordners /opt/lampp/htdocs/$USER ## name_des_ordners mit dem oben vergebenen Namen ersetzen
Erreichbar ist das htdocs-Verzeichnis im Browser dann via http://localhost/username
bzw http://127.0.0.1/username
.
Erhält man eine Fehlermeldung beim Aufruf der Seite, muss man noch die Rechte des Ordners anpassen, so dass XAMPP darauf zugreifen kann:
chmod -R 755 ~/name_des_ordners
Da XAMPP außerhalb der Paketverwaltung installiert wurde, muss man sich selbst um eventuell anfallende Updates/Ugrades kümmern. Zwei Gründe sprechen für das im obigen 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 htdocs) nicht überschrieben, was sonst bei einer Neuinstallation der Fall wäre.
Das Upgrade startet man mit dem Download des Upgrade-Pakets und entpackt es mit dem nachfolgenden Befehl:
tar xvfz xampp-linux-upgrade-*.tar.gz
Danach startet man das Upgrade mit dem Befehl:
sudo xampp-upgrade/start
Auf dem Bildschirm sollten nun folgende Mitteilungen zu sehen sein (die Versionsnummer kann abweichen):
Stoppe XAMPP fuer Linux 1.7.3... XAMPP: Stoppe Apache... XAMPP: Stoppe MySQL... XAMPP beendet. Aktualisiere XAMPP fuer Linux 1.7.3 auf 1.7.3a... Installiere neue Dateien... Loesche ueberfluessige Dateien... Aktualisiere bestehende Dateien... patching file xampp/etc/httpd.conf Akutalisierung erfolgreich abgeschlossen. Starte XAMPP fuer Linux 1.7.3a... XAMPP: Starte Apache... XAMPP: Starte MySQL... XAMPP fuer Linux gestartet.
XAMPP wurde damit erfolgreich aktualisiert. Durch das Upgrade wird ein eventuell laufender XAMPP gestoppt und anschließend wieder gestartet (XAMPP wird aber auch dann gestartet, wenn es vorher nicht lief).
Abschließend sollte man mittels Browser auf http://localhost
zugreifen. Dort sieht man nun die neue XAMPP-Version. Nach dem Upgrade sollte das Verzeichnis /xampp-upgrade wieder gelöscht werden.
Um XAMPP zu deinstallieren, muss man nur das Verzeichnis /opt/lampp löschen. Dazu nutzt man entweder den jeweiligen Dateimanager oder das Terminal [2] (z. B. mit Hilfe des Befehls rm). Zum Löschen sind in beiden Fällen Root-Rechte erforderlich.
Die Parameter, welche in der Tabelle aufgeführt sind, werden immer dem folgenden Befehl angehängt:
sudo /opt/lampp/lampp PARAMETER
Die folgende Tabelle zeigt die verschiedenen Parameter von XAMPP.
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 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 FTP-Server ist so vorkonfiguriert, dass man nun mit dem Benutzer nobody und dem Passwort lampp nun z.B. die HTML-Dateien auf den XAMPP-Server hochladen kann. Achtung: Man sollte schnellstens ein anderes Passwort setzten. (siehe 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 |
Die nachfolgende Tabelle gibt einen Überblick über die Konfigurationsdateien der in XAMPP enthaltenen Software-Pakete.
Wichtige Dateien und Verzeichnise von XAMPP | |
Datei/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 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 |
Wie schon an obiger Stelle erwähnt, ist XAMPP nicht für den Produktiveinsatz gedacht, sondern nur für Entwickler als Testumgebung. Das hat zur Folge, dass XAMPP absichtlich nicht restriktiv, sondern im Gegenteil sehr offen vorkonfiguriert ist. Für einen Entwickler ist das ideal, da er so keine Grenzen vom System vorgeschrieben bekommt.
Die folgende Liste zeigt die Eigenschaften, die an XAMPP absichtlich (!) unsicher sind:
Der MySQL-Administrator (root) hat kein Passwort
Der MySQL-Daemon ist übers 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).
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:
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 „Fremden“ übers Netzwerk erreichbar. Nach diesen Aufruf kann man jedenfalls davon ausgehen, dass die XAMPP-Installation halbwegs sicher ist. Man sollte in jedem Fall den Sicherheits-Abschnitt in der Linux FAQ durchlesen.
Bei Problemen oder Fehlermeldungen kann man sich die XAMPP-Linux-FAQ anschauen. Dort werden viele Probleme und Fehlermeldungen erklärt.
XAMPP hat einen Zuweisungsproblem mit Dropbox. Es hilft Dropbox auszuschalten.
/usr/bin/dropbox stop
Beim Versuch XAMPP auf einem 64-Bit System zu starten, werden Nutzer folgende Fehlermeldungen erhalten:
XAMPP gibt es zur Zeit nur als 32-Bit Applikation. Bitte verwende eine 32-Bit Kompatibilitaetsbibliothek fuer Dein System. XAMPP is currently only availably as 32 bit application. Please use a 32 bit compatibility library for your system.
Die Lösung des Problems ist ganz einfach. Man installiert sich die beiden Pakete gcc-multilib und eglibc-source
gcc-multilib
eglibc-source (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install gcc-multilib eglibc-source
sudo aptitude install gcc-multilib eglibc-source
Danach sollte man das XAMPP-Paket wie im Abschnitt Entpacken beschrieben erneut ins Verzeichnis /opt entpacken, da es sonst vorkommen kann, dass MySQL nicht startet. Anschließend verläuft der Start und Betrieb auf einem 64-Bit System problemlos.
Erhält man die Fehlermeldung:
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 (Anleitung ).