Das arbeiten daheim, in der Firma oder gar im Zug kann durch einen lokalen Webserver sehr angenehm werden. Gerade im Zug ist es häufig sehr schwierig eine Internetverbindung aufrecht zu erhalten. Falls man es doch schaffen sollte, ist die Bandbreite so gering, dass der Spaß am Arbeiten häufig ausbleibt.
Ein lokaler Webserver würde all diese Probleme lösen und genau um so einen Webserver, soll es in diesem Blogeintrag auch gehen. Ich selbst nutze seit Jahren privat einen Mac und bin auch all diese Jahre sehr glücklich mit diesem System. Auf Arbeit jedoch musste ich bis vor kurzem noch mit Windows und Linux vorlieb nehmen.
Doch wie ihr an der Formulierung schon bemerkt haben solltet musste ich dies, d.h. mittlerweile arbeite ich auch mit einem Mac. Unter Windows greifen fast alle, die einen Webserver lokal nutzen wollen zu XAMP. Es ist sehr leicht zu installieren und leistet für die meisten Anwendungsfälle gute Dienste. Falls man wie ich gerne Bordmittel des Betriebssystems nutzt, versucht man sich unter Windows auch einmal mit IIS. Und ich muss sagen es ist besser als sein Ruf. Ich konnte unter IIS damals TYPO3 ohne Probleme installieren.
Nach meinen Windows-Exkursen bin ich auf Linux gewechselt und in Serversachen kann man mit Linux echt alles machen. Auch wenn man hier doch ein wenig Einarbeitungszeit benötigt, um mit der Shell klarzukommen. Die echten Linux-Nutzer werden zurecht behaupten, dass sie das beste System in Sachen Server haben.
Doch was machen wir nun mit einem Mac? Viele Mac Einsteiger googlen eine Minute und werden dann auf das MAMP Projekt stoßen. Die Installation wurde genauso einfach gehalten wie beim XAMP oder LAMP (auch Linux für Linux verfügbar). Einfach die DMG herrunterladen, installieren, starten und schon läuft der Webserver. Wie schon für XAMP gilt auch hier – für die meisten Anwendungsfälle genügt dies vollkommen.
Wenn man sich als Einsteiger dann an einen Fortgeschrittenen Mac-Nutzer wendet, dann wird man gesagt bekommen, dass das ganze mit MAMP nicht so schön ist und man doch MacPorts nutzen soll. Was ist nun wieder MacPorts? MacPorts ist ein OpenSource-Projekt, welches wie zum Beispiel aptitude oder apt funktioniert. Es ist sozusagen ein Paketverwaltungstool. Man kann X11 Pakete kompilieren, installieren, updaten oder upgraden.
Mit Macports kann ich also nun einfach – wie auf einem Debian Server – meine Pakete für den Webserver installieren. Ich selbst habe es auch einmal genutzt und war begeistert. Nun habe ich jedoch einen neuen Mac und wollte einmal schauen was mir Mac OS so bietet. Denn was viele vielleicht nicht wissen – Mac OS liefert euch sowie ihr euren Rechner aus dem Karton nehmt einen WEBSERVER. Und ich möchte euch nun zeigen was ihr machen müsst um diesen zu nutzen.
Um euch zu zeigen, dass man auch ohne große Anpassungen euren Mac als Webserver nutzen kann, werden wir zunächst nur Basis aktivieren und ausprobieren. Um euren “Webserver” zu aktivieren begebt ihr euch bitte in eure Systemeinstellungen und klickt auf den Menüpunkt “Freigaben” oder englisch “sharing”.
Nun setzt ihr bei Webfreigabe einen Haken und siehe da – euer Mac verkündet euch unter welcher Adresse ihr in eurem Browser auf das Home Verzeichnis zugreifen könnt. Bei mir wäre es http://172.20.10.2/~markusguenther/ Wobei man leicht sehen kann das es einfach nur meine IP + mein Homeverzeichnis ist. Denn mit der Tilde kommt ihr direkt in euer Nutzerverzeichnis.
In diesem Ordner sollte sich nun ein Ordner mit dem Namen “Sites” bzw. “Seiten” befinden. Falls dies nicht der Fall ist - legt einfach einen an. Wenn ihr nun im Browser eure URL aufruft zeigt euch der Mac, wenn ihr keinen Sites Ordner erstellen musstet, eine Begrüßungsseite.
Das war es im Prinzip schon. Nun könnt ihr kleine Webseiten für euch lokal aufsetzen. Ihr könnt sogar schon PHP nutzen. Falls ihr wissen wollt über was ihr nun schon alles verfügt, testet dies doch mit einem phpinfo();
Hierzu erstellt ihr euch einfach eine Datei foo.php mit dem folgenden Inhalt. Ihr könnte diese Datei mit einer IDE oder einfach TextEdit erstellen.
phpinfo();
Bitte die php-Tags nicht vergessen.
Nun ruft ihr einfach http://172.20.10.2/~markusguenther/foo.php auf und schon bekommt ihr sämtliche Informationen zu eurem Apache Server.
Doch was ist nun wenn ihr ein TYPO3 betreiben wollt oder FLOW3? Wie ihr seht, habt ihr mit Mac OS Lion, PHP 5.3 zur Verfügung. Also FLOW3 und TYPO3 4.6 sind kein Problem. Doch dazu brauchen wir noch ein bisschen mehr.
Was ist also das Ziel? Zunächst wollen wir vielleicht nicht nur eine Seite Lokal betreiben. Man möchte ja entwickeln und dazu auch mal 5 oder mehr vhost besitzen. Diese sollen auch eine schöne URL haben. Zum Beispiel http://flow3.local. Wir benötigen auf jeden Fall eine Datenbank. Denn MySQL bekommt ihr mit eurem Mac leider nicht ausgeliefert.
Benötigte Downloads:
Empfohlene zusätzl. Downloads:
- iTerm 2
Kurz zur Erläuterung der empfohlenen zusätzlichen Downloads. Wie ihr schon wisst möchten wir MySQL auf eurem Mac installieren. Da ich jetzt einmal davon ausgehe, dass ihr gern auch mit GUI Tools arbeitet und nicht immer alles im Terminal tippen wollt – lege ich euch das kostenlose Program Sequel Pro ans Herz. Es ist quasi euer phpmyadmin ohne Browser.
Und wo wir gerade beim Terminal waren. Ich persönlich mag das Mac-Terminal nicht und vermisse die kleinen aber feinen Dinge eines Linux-Terminals. iTerm 2 verhält sich fast wie ein Terminal von Linux und man kann eben auch mit einem Doppelklick bzw. Doppeltab Dinge kopieren und sie dann einfach wieder einfügen. Im Mac-Terminal muss ich alles mit der Mouse makieren, dann kopieren und kann es schließlich wieder einfügen. Also als Empfehlung Nummer zwei iTerm 2.
So dann wollen wir einmal MySQL installieren, einen vhost für typo3.local anlegen, einen vhost für flow3.local anlegen, eine Datenbank für TYPO3 anlegen, TYPO3 installieren und da wir auch eine FLOW3 Domain haben, FLOW3 installieren.
Schritt 1 – Webserver konfigurieren
Da viele der folgenden Befehle Root-Zugriff erfordern, verschaffen wir uns zunächst die nötigen Rechte. Alternativ könnt ihr gern auch immer sudo vor die Befehle schreiben.
sudo -i
Nun könnt ihr sämtliche Befehle ohne lästige Fragen abfeuern. Seid jedoch sorgsam mit jedem Befehl. Euer Apache Server befindet sich im Verzeichnis /etc/apache2. Nun werden wir einige Änderungen an der Konfiguration vornehmen.
vim /etc/apache2/httpd.conf
Sucht bitte mit Hilfe des Slash-Befehls nach ‘/libphp5.so’. Ihr solltet nun folgende Zeile vorfinden und falls nicht, einfach so lange ‘n’ drücken, bis ihr sie gefunden habt.
LoadModule php5_module libexec/apache2/libphp5.so
Falls diese Zeile von einer Raute angeführt wird, kommentiert sie bitte ein. Hierfür drückt ihr die ‘i’-Taste und entfernt die Raute mit Hilfe des Cursors und Backspace. Mit der Tastenkombination CTRL + C könnt ihr den Insert-Modus wieder verlassen.
Nun haben wir in unserem Apache Server PHP aktiviert bzw. vielleicht war er es auch schon.
Als nächstes möchten wir, dass der Apache Server index.php Dateien genau wie die index.html Dateien bei Aufruf eines Verzeichnisses, die Dateien ausführt. Wir suchen also nach dem Schlüsselwort ‘DirectoryIndex’ (wieder mit Hilfe des Slashes). Wir finden nun die folgende Zeile und fügen index.php hinzu. Ergo, wieder ‘i’-Taste drücken, index.php hinzufügen und mit CTRL + C den Insert-Modus verlassen.
DirectoryIndex index.html index.php
Als nächstes suchen wir uns .
Options FollowSymLinks AllowOverride All Order allow,deny Allow from all
Eines unserer Ziele waren vhosts, damit wir diese nutzen können, müssen wir noch die folgende Zeile einkommentieren.
#Include /private/etc/apache2/extra/httpd-vhosts.confNachdem wir nun alles was wir benötigen in der hhtpd.conf eingerichtet haben, speichern und verlassen wir die Datei mit ‘/wq’ und drücken ENTER. Nun befinden wir uns wieder in unserem home-Verzeichnis. Unser Webserver kann nun mit vhosts umgehen, daher sollten wir unsere auch konfigurieren. Wir öffnen hierzu die von uns eben einkommentierte httpd-vhosts.conf Datei.
vim /private/etc/apache2/extra/httpd-vhosts.conf
Wie ihr nun seht existieren schon ein paar Beispiel Einträge. Diese könnt ihr alle löschen. Wir legen uns folgende vhosts an.
ServerName flow3.local DocumentRoot "/Users//Sites/flow3.local" ServerName typo3.local DocumentRoot "/Users//Sites/typo3.local"
Ihr könnt natürlich hier jeden vhost Konfiguration vornehmen. Ich beschränke mich auf das Nötigste. Speichert diese Änderung wieder mit ‘:wq’ und drückt ENTER. Falls ihr den ersten Befehl ‘sudo -i’ nicht ausgeführt habt, werdet ihr die Datei nicht schreiben können.
Diese beiden URLs werden wir nun noch als Hosts eintragen.
vim /etc/hosts
Fügt nun die folgenden 2 Zeilen hinzu.
127.0.0.1 flow3.local 127.0.0.1 typo3.local
Noch ein Schritt dann haben wir den Webserver soweit fertig. Falls ihr diesen vergessen solltet, werdet ihr bei der Installation von TYPO3 ein Problem bekommen. Denn wir TYPO3-Jungs, nutzen liebend gern Symlinks, aber für jeden Nutzer sind diese standardmäßig deaktiviert.
vim /private/etc/apache2/users/markusguenther.conf
Also bei euch je nachdem wie euer Username ist die .conf Datei öffnen und bei den Options FollwSymLinks hinzufügen.
Es sollte dann ungefähr so aussehen:
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from allNun könnt ihr euch in euer Sites Verzeichnis begeben und die Ordner für diese beiden vhosts anlegen. Entweder im Finder oder mit folgenden Zeilen.
cd ~/Sites/ mkdir flow3.local typo3.local apachectl restart
Mit dem letzten Befehl startet ihr den Apache Server neu und mit diesem Neustart werden sämtliche Änderungen aktiv. Wenn ihr nun die foo.php Datei mit dem phpinfo() Aufruf in euren flow3.local Ordner verschiebt und dann im Browser flow3.local aufruft, dann wird genau in eurem vhost die phpinfo ausgeführt. Und somit funktioniert auch alles.
Schritt 2 – PHP konfigurieren
Schritt eins ist vollbracht und es war nicht schwer, oder? Ein bisschen Befehle jonglieren und fertig war der konfigurierte Server. Wenn ihr MacPorts benutzt, müsst ihr im Prinzip alles genauso konfigurieren. Warum nicht mal die Sachen nutzen, die eh schon vorhanden sind.
Die folgenden Befehle kopieren die default-PHP-Konfiguration zu unseren php.ini, welche wir nutzen werden. Und wie immer im Leben müssen wir sie noch ein wenig anpassen.
cp /etc/php.ini.default /etc/php.ini vim /etc/php.ini
Wichtig ist es das ihr die Pfade für MySQL richtig setzt. Diese Zeilen sind verteilt. Sucht also jeweils den einen Wert und passt die Pfade so an.
pdo_mysql.default_socket = /tmp/mysql.sock mysql.default_socket = /tmp/mysql.sock mysqli.default_socket = /tmp/mysql.sock
Nun ein bisschen Kosmetik. Einfach wieder die einzelnen Werte suchen und dann setzen.
date.timezone = Europe/Berlin
error_reporting = E_ALL
display_errors = OnUnd zum Schluss kann man sich noch PHP Module, die man gern nutzen möchte, aktivieren. Ich habe mir folgende noch einkommentiert.
extension=php_curl.dll extension=php_xmlrpc.dll extension=php_mysql.dll extension=php_mysqli.dll extension=php_pdo_mysql.dll extension=php_gd2.dll extension=php_mbstring.dll
Noch einmal den Apachen neustarten und schon haben wir auch unser PHP, wie wir es möchten. Ich bin ein Systemintegrator. Also wenn ihr das anders konfigurieren möchtet – tut es einfach.
apachectl restart
Schritt 3 – MySql installieren
Das MySQL installieren ist sehr einfach. Denn ihr müsst nur die DMG laden und den Instruktionen der README.txt Folge leisten. Was darauf hinaus läuft, dass ihr alle drei Dinge installieren werdet.
In den folgenden Screenshots sehr ihr den nun neuen Menüpunkt MySQL in den Systemeinstellungen und dort könnt ihr nun eurem Server starten und stoppen.
Nun müssen wir nur noch das root Passwort setzen und schon haben wir einen vollwertigen Webserver und können wunderbar lokal entwickeln.
mysql -uroot UPDATE mysql.user SET Password=PASSWORD('#f00bar!') WHERE User='root'; FLUSH PRIVILEGES; quit;
Schritt 4 – FLOW3 installieren
Nun installieren wir noch ala FLOW3 Dokumentation unser FLOW3 und dann sind wir glückliche Entwickler.
git clone --recursive git://git.typo3.org/FLOW3/Distributions/Base.git /Users/markusguenther/Sites/flow3.local/
Setzen unserer Schreibrechte für den Nutzer markusguenther und die Gruppe _www.
./flow3 core:setfilepermissions markusguenther _www _wwwUnd da unser flow3.local auch gleich auf Web zeigen soll passen wir noch den vhost an.
vim /private/etc/apache2/extra/httpd-vhosts.conf
ServerName flow3.local
DocumentRoot "/Users//Sites/flow3.local/Web"Dann noch einmal den Apachen neustarten.
apachectl restart
Und et voila … unser lokaler Rechner präsentiert uns FLOW3.








1 Kommentar
somebdy sagt:
Januar 18, 2012 von 12:58 am (UTC 0)
0. Ich bin ein Mac-Nutzer.
1. Windows und Linux sind nicht unbedingt schlechter als Macs, nur anders.
2. IIS ist für die meisten Standard-Anwendungsfälle (falls man nicht gerade auf dem Production Server IIS hat) Schrott.
3. Es heißt Windows-Exkursen, nicht “Windows Exkursen”, Linux-Nutzer, nicht “Linux Nutzer”, OpenSource-Projekt statt “OpenSource Projekt”, “fortgeschrittenen Mac-Nutzer” statt “Fortgeschrittenen Mac Nutzer”, “Mac Terminal” sollte “Mac-Terminal” heißen, das gleiche für die “Linux Terminals”; “TYPO3 Jungs” hätte auch gerne einen Bindestrich mehr, und die Kommasetzung schaust du dir auch nochmal an, gell? “Sites-Verzeichnis” wäre auch richtiger als die Variante ohne den Bindestrich. Die “default PHP Konfiguration” bekommt im Deutschen auch zwei Bindestriche spendiert.
4. Die “Mouse” hat auch eine deutsche Übersetzung.
5. MacPorts verwaltet nicht nur X11-Pakete, sondern beliebige OpenSource-Software.
6. Den Insert-Modus in vim verlässt man mit Escape, nicht Ctrl-C. Wer nicht mit vim umgehen kann: vimtutor ausführen!
7. Beenden und speichern in Vim: ggf. Escape, dann “:wq” und Enter. Wie du auf “/wq” kommst ist mir ein Rätsel.
8. Mit “vim /private/etc/apache2/extra/httpd-vhosts.conf” startet man nicht den Apachen neu.