XAMPP und Symfony unter Mac

Nachdem ich jetzt endlich auch Besitzer eines schicken Macbook Pro bin und somit (fast) komplett von Windows auf Mac umgestiegen bin, wollte ich meine Webseite dazu nutzen einige Tipps und Tricks für frische Macuser zusammenzutragen.

Da ich für mein Studium und auch in meiner Freelancertätigkeit Projekte mit Hilfe des PHP Frameworks symfony realisiere, war eine der ersten Aufgaben das Aufsetzen eines laufendes Webservers mit PHP, einer MySQL Datenbank und einer funktionierenden symfony Umgebung.

Also fangen wir an:

XAMPP installieren

Aus Windows Zeiten kenne ich noch die sehr komfortable All-In-One Lösung XAMPP und habe gemerkt, dass es das Paket auch für OsX gibt. Für alle, die nicht wissen, was XAMPP ist, zitiere ich mal die Website:

XAMPP ist eine Distribution von Apache, MySQL, PHP und Perl, die es ermöglicht diese Programme auf sehr einfache Weise zu installieren.

Also laden wir uns das .dmg-Image von dieser Seite runter und folgen der einfachen Anleitung:

1. Installieren

  1. Das DMG-Image öffnen, sollte dies nicht automatisch passiert sein.
  2. Den XAMPP Ordner in den Programme Ordner ziehen.

Nun ist XAMPP unter /Applications/XAMPP installiert. Achtung, eine bereits vorhandene Installation von XAMPP wird damit überschrieben!

2. Starten

In dem neuen Ordner /Applications/XAMPP befindet sich das Programm XAMPP Controll, welches ihr einfach startet. Mit den Buttons können die entsprechenden Features ganz einfach aktiviert und deaktiviert werden.

XAMPP 4 OSX

Beim jeweils ersten Start müsst ihr euer Benutzerpasswort eingeben, da Webserver, Datenbank und FTP Server root Rechte benötigen.

3. Testen

Wenn Apache und MySQL aktiviert sind, kann man einfach testen ob alles funktioniert hat, in dem man einen beliebigen Browser öffnet und http://localhost in die Adressleiste eingibt.

Nach einer ersten Sprachauswahl müsste die Seite dann etwa so aussehen:

XAMPP für Mac OSX Startseite

Wenn wir es bis hierhin geschafft haben, machen wir weiter mit…

Symfony installieren

Symfony Projekt anlegen

Am besten legt ihr euch in eurem Benutzerverzeichnis einen Ordner sfproject an.

Öffnet nun ein Terminal (am einfachsten im Spotlight „Terminal“ eingeben). Normalerweise befindet ihr euch nun in eurem Benutzerverzeichnis. Navigiert nun mit „cd sfproject“ in den neu angelegten Ordner. Erstellt mit mkdir -p PROJECT_NAME einen neuen Ordner für euer neues Projekt. PROJECT_NAME ersetzt ihr natürlich gegen den Namen eures neuen Projekts!

Nun erstellt ihr euch noch mit mkdir -p lib/vendor einen Ordner für die symfony Dateien. Seit 1.3 wird symfony nämlich mit in jedem einzelnen Projekt gespeichert und wir müssen uns keine Sorgen mehr über unterschiedliche symfony Versionen machen.

Nun laden wir uns von http://www.symfony-project.org/installation die aktuellste Version von symfony als Archiv herunter und entpacken es. Der Ordner der zurzeit aktuellen Version heißt dann symfony-1.4.4. Benennt den Ordner um in symfony und verschiebt ihn unter /Users/BENUTZERNAME/sfproject/PROJECT_NAME/lib/vendor/.

Stellt per pwd noch einmal sicher, dass ihr euch in eurem Projektverzeichnis befindet und dann tippt ihr folgendes in euer Terminal:
php lib/vendor/symfony/data/bin/symfony generate:project PROJECT_NAME

Hiermit weist ihr der Consolenversion von PHP an das symfony script in dem angegeben Pfad auszuführen.
Daraufhin rattern einige Befehle durch die Konsole und euer erstes Symfony Projekt ist angelegt. Damit ihr nicht jedes Mal wieder diesen langen Pfad eintippen müsst, legt symfony für euch ein Script namens symfony in dem neu angelegten Projektordner an, so dass man in Zukunft nur noch ./symfony irgendnensymfonybefehl in die Konsole tippen muss.

Im Folgenden gehe ich nur noch auf zwei spezielle Einstellungen ein, ansonsten überlasse ich euch dem wirklich guten Getting Started-Tutorial auf der symfony Seite.

Begebt euch in das Unterverzeichnis config eures neuen Projektes und editiert die Datei ProjectConfiguration.class.php und kontrolliert dort, ob die erste Reihe wie folgt aussieht:
require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';

Webserver einrichten

Dieser Teil ist auch noch immens wichtig, da ihr sonst nicht mit symfony entwicklen könnt.

Für die folgenden Operationen braucht ihr einen TextEditor mit root Rechten, ich habe dafür nano benutzt.

Zuerst fügt ihr der Datei /etc/hosts folgende Zeile hinzu:
127.0.0.1 project_name

Nun editiert ihr die Datei /Applications/XAMPP/etc/extra/httpd-vhosts.conf. Kommentiert alle vorhandenen Zeilen aus, indem ihr ein # an die erste Position schreibt und fügt ans Ende der Datei folgendes an:

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName localhost
  DocumentRoot "/Applications/XAMPP/htdocs"
  <Directory "/Application/XAMPP/htdocs">
    Options Indexes FollowSymLinks Includes execCGI
    AllowOverride None
    Order Allow,Deny
    Allow From All
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  ServerName project_name
  DocumentRoot "/Users/BENUTZERNAME/sfproject/PROJECT_NAME/web"
  DirectoryIndex index.php
  <Directory "/Users/BENUTZERNAME/sfproject/PROJECT_NAME/web">
    AllowOverride All
    Allow from All
  </Directory>
  Alias /sf /Users/BENUTZERNAME/sfproject/PROJECT_NAME/lib/vendor/symfony/data/web/sf
  <Directory "/Users/BENUTZERNAME/sfproject/PROJECT_NAME/lib/vendor/symfony/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

Der Erste Block ist dafür da, dass das normale XAMPP Interface später noch funktioniert, der zweite Block ist für euer symfony Projekt.

Nun editiert ihr die Datei /Applications/XAMPP/etc/httpd.conf und sucht dort nach dem Eintrag
Include /Applications/XAMPP/etc/extra/httpd-vhosts.conf
Stellt sicher, dass diese Zeile nicht mit einem # beginnt!

Startet nun den Apache neu und ruft in einem beliebigen Browser http://project_name auf. Wenn ihr alles richtig gemacht habt, müsstet ihr nun folgendes Bild sehen:

Viel Spaß beim Programmieren!