Ich brauche zum Entwickeln einer PHP-Applikation einen lokalen LAMP-Server, möchte ihn aber nicht direkt in meinem Produktiv-System installieren. Daher habe ich einen LAMP-Server unter
VirtualBox (Version 4.1.2) installiert.
Als Gastsystem habe ich
Ubuntu Server 12.04 ausgewählt, als Hostsystem benutze ich Mint Linux 12 (es sollte aber auch mit jedem anderen Gastsystem funktionieren).
Installation
Zuerst habe ich das
Ubuntu Server-Image heruntergeladen und als eine neue virtuelle Maschine mit 768MB RAM und einer virtuellen 4GB Festplatte installiert. Vor dem ersten Starten ist es wichtig, dass unter
Maschine ändern ->
System ->
Prozessor die Option
PAE/NX aktiviert wird, da sonst Ubuntu Server nicht startet. Die restliche Installation ist Ubuntu-typisch unkompliziert. Zwischendurch wird man dazu angehalten, zusätzliche Pakete zur Installation auszuwählen. Dort habe ich
OpenSSH server,
LAMP server und
Mail server ausgewählt.
Lokaler Zugriff
Da der Server zu Entwicklung dient, soll er nicht im Netzwerk, sondern nur im Hostsystem sichtbar sein. Dazu muss zuerst ein
Host-only Netzwerkadapter eingereichtet werden: Im VirtualBox Manager auf
Datei ->
Globale Einstellungen... ->
Netzwerk gehen und dort ein
Host-only Netzwerk hinzufügen. Anschließend muss in den Einstellungen für die virtuelle Maschine unter
Netzwerk noch bei
Angeschlossen an die Option
Host-only Adapter und der eben erstellte Adapter ausgewählt werden.
Hinweis: Nach der Umstellung des Netzwerkadapters auf
Host-only ist der Zugriff des Gastsystems auf das Internet nicht mehr möglich. Die einzige Lösung (für Updates, Paketinstallationen, etc.), die ich bis jetzt gefunden habe, ist temporär den Netzwerkadapter wieder auf
NAT umzustellen und den Server neuzustarten. Dann ist natürlich der Server nicht mehr lokal erreichbar.
Anschließend kann die virtuelle Maschine gestartet werden. Nach dem Einloggen findet man über den Befehl
ifconfig die IP heraus. Diese kann man nun im Browser des Hostsystems eingeben und schon erhält man die Apache-Startseite:
Hinweis: Die Konfigurationsdatei von Apache (normalerweise
httpd.conf) heißt unter Ubuntu
/etc/apache2/apache2.conf.
FTP-Server
Nun fehlt noch ein FTP-Server, um die Dateien bequem auf den Server zu kopieren. Dazu eignet sich am besten ProFTPD. Das Installieren und Einrichten des FTP-Servers, insbesondere die Benutzeraccounterstellung, wird gut unter
http://wiki.ubuntuusers.de/ProFTPD beschrieben. Als Servermodus habe ich
standalone statt
Inetd genommen, da dies zu weniger Problemen geführt hat.
Die Erstellung des virtuellen Benutzers hat bei mir jedoch nicht wie Beschrieben geklappt. So hat es bei mir funktioniert: Nachdem die Konfigurationsdatei angepasst ist, kann man mit
cat /etc/passwd | grep var-www
die UDI und GID des Apache-Users herausfinden (bei mir in beiden Fällen die 33). Anschließend habe ich den Benutzer
ftpuser mit dem Befehl
sudo ftpasswd --passwd --name ftpuser --uid 33 --gid 33 --home /var/www --shell /bin/false --file /etc/proftpd/ftpd.passwd
erstellen können. Jetzt muss man auf dem Server noch mit
sudo chown www-data /var/www/
die Schreibrechte anpassen. Anschließend kann man über ein FTP-Programm und die IP des Servers Dateien in den Rootordner des Apaches kopieren.
MySQL-Server
Als letzter Schritt muss noch der externe Zugriff auf den MySQL-Server zugelassen werden, um beispielsweise mit der
MySQL Workbench die Datenbank administrieren zu können. Die Grundkonfiguration ist im
ubuntuusers-Wiki erläutert. Da ich bei einem lokalen, von außen nicht erreichbaren Server keine großen Sicherheitsbedenken habe, nehme ich den root-User, um auf die Datenbanken zuzugreifen. Mit
mysql -uroot -ppasswort
auf dem Gastsystem erhält man Zugriff auf die MySQL-Kommandozeile und kann mit
GRANT ALL ON *.* TO 'root'@'%';
dem root-User alle Zugriffsrecht einräumen. Anschließend ist der Zugriff von außen über den root-User möglich.