Home > Werkzeuge > Symfony2 auf XAMPP installieren (Windows 7)

Symfony2 auf XAMPP installieren (Windows 7)

Ein lokaler Server wie XAMPP oder WAMPP ist für Webentwickler unabdingbar. In diesem Tutorial möchte ich erklären wie man auf einem Windows 7 Betriebssystem das Symfony 2 Framework unter XAMPP installieren kann und PHP in der Umgebung für Symfony richtig konfiguriert. Eine Einfache Installation reicht zwar aus, jedoch werden zusätzliche PHP Module wie APC benötigt.

1. Schritt: XAMPP installieren
Zuerst brauchen wir XAMPP für Windows. Den Download finden wir auf der offiziellen Apache Friends Webseite. XAMPP für Windows steht aktuell in der Version 1.7.7 (vom 20.9.2011) zum Download bereit:

Nachdem Download installiert man XAMPP, in der Regel sollte „C:/xampp“ als Installationsverzeichnis vorgeschlagen werden. Aufgrund fehlender Schreibrechte auf Vista im Verzeichnis „C:/Program Files“ wird auch auf der offiziellen apachefriends Seite die Installation in einem alternativen Verzeichnis wie „C:/xampp“ empfohlen.

2. Schritt: Umgebungsvariablen für PHP setzen
Nachdem XAMPP im Ordner „C:/xampp“ installiert wurde, setzen wir die Umgebungsvariable für PHP, um das Symfony 2 Kommandozeilentool zu nutzen. Dazu gehen wir zuerst in die Systemsteuerung (mit Klick auf Start -> Systemsteuerung) und dann auf System. Wir können auf die Tastenkombination „Windowstaste (in der Regel zwischen STR und ALT) + Pause“ nutzen. Es öffnet sich das selbe Fenster. Anschließend klicken wir auf „Erweiterte Systemeinstellungen“. Es öffnet sich ein weiteres Fenster. Dort klicken wir auf den Button „Umgebungsvariablen“.

Im Fenster Umgebungsvariablen wählen wir unten die Variable „Path“ aus und klicken auf „Bearbeiten“. Ans Ende fügen wir den Eintrag „C:\xampp\php“ hinzu. Bitte darauf achten, dass man das Semikolon als Trennzeichen nicht vergisst. Um die gesetzte Variable zu kontrollieren, können wir die Windows Kommandozeile (cmd.exe) aufrufen und mit dem Befehl „php -version“ prüfen, ob alles korrekt gesetzt ist.

3. Schritt: PHP für Symfony 2 konfigurieren

Kommen wir nun zum wichtigsten Schritt, der Konfiguration von PHP. Man muss die intl (internalization) Extension aktivieren. Diese befindet sich bereits im Extenstion Verzeichnis und muss in der PHP-Konfigurationsdatei nur noch aktiviert werden. Dazu öffnen wir die Datei „C:/xampp/php/php.ini“ und fügen den Eintrag

[code]
extension=php_intl.dll
[/code]

an das Ende der Datei oder an eine gewünschte Stelle, zum Beispiel zu den anderen Extenstions, hinzu.

Diese Extension benötigt noch weitere Dateien. Die einfachste Methode ist es alle icu*46.dll Dateien aus dem Ordner „C:/xampp/php“ in das Verzeichnis „C:/xampp/apache/bin“ zu kopieren. Es sollte darauf geachtet werden, dass die Dateien wirklich nur kopiert werden. Ein „Ausschneiden“ kann beim Starten des XAMPP Servers einen Fehler verursachen, da die Dateien an dieser Stelle benötigt werden.

Desweiteren brauchen wir die APC Extenstion. Diese ist bei der Installation von XAMPP nicht vorinstalliert. Wir brauchen allerdings die richtige Version. In diesem Fall wäre das:
php_apc-3.1.5-5.3-vc9-x86.zip (Download von der offiziellen Seite)

Sollte nicht die richtige APC Version beim Download gewählt werden, so wird eine Fehlermeldung beim Serverstart erscheinen. Und zwar mit dem Hinweis, dass die Build Version von PHP und APC nicht übereinstimmen.

Nach dem Download entpacken wir das ZIP Archiv und kopieren die Datei php_apc.dll in das Verzeichnis „C:/xampp/php/ext“. Auch hier müssen wir die Extenstion in der php.ini noch aktivieren:

[code]
extension=php_apc.dll
[/code]

Als letzten Schritt der PHP Konfiguration stellen wir in der php.ini short_open_tag auf Off. In der Standardinstallation von XAMPP ist short_open_tag eingeschaltet. Wir ändern also die Zeile

[code]
short_open_tag = On
[/code]

in folgende um:

[code]
short_open_tag = Off
[/code]

4. Schritt: VirtualHost einrichten und Symfony 2 Framework downloaden

Für jedes Webprojekt sollte vorzugsweise ein eigener Virtual Host eingerichtet werden. In der „Datei C:/xampp/apache/conf/extra/httpd-vhosts.conf“ fügen wir folgenden Virtual Host für unser Symfony-Beispielprojekt hinzu:

[code]
<VirtualHost *:80>
ServerAdmin postmaster@symfonyprojekt
DocumentRoot "C:/xampp/htdocs/www/symfonyprojekt/web"
ServerName symfonyprojekt
ServerAlias local.symfonyprojekt
ErrorLog "logs/symfonyprojekt-error.log"
CustomLog "logs/localhost.symfonyprojekt-access.log" combined
</VirtualHost>
[/code]

Wie man an dem DocumentRoot erkennt, liegen unsere Symfony Dateien im Verzeichnis „C:/xampp/htdocs/www/symfonyprojekt/“. Als letzten Schritt brauchen wir natürlich noch das Symfony 2 Framework selbst. Es gibt die Möglichkeit das Framework mit oder ohne „vendors“ herunterzuladen. Wenn Symfony ohne vendors heruntergeladen wird, dann müssen die vendors wie in der Anleitung im ersten Schritt mit dem Befehl

[code]
php bin/vendors install
[/code]

in der Windows cmd geladen werden. Dazu ist allerdings zuvor git zu installieren und wie in Schritt 2 in diesem Tutorial ebenfalls in die Umgebungsvariablen einzutragen, damit das Installationscript den git Befehl ausführen kann.

Dass die PHP Konfiguration korrekt ist, kann mit dem mitgelieferten Check Script getestet werden. Dazu rufen wir die Windows Kommandozeile auf und führen mit dem Befehl „php app/check.php“ die Prüfung der PHP-Konfiguration durch. Wenn alles richtig konfiguriert ist, dann sollte die cmd folgende Ausgabe liefern:

Schritt 5: Symfony 2 Beispielprojekt testen

In dieser Beispielinstallation habe ich wie man auch am ServerName Eintrag des VirtualHosts sehen kann, in meiner hosts Datei einen Eintrag

[code]
127.0.0.1 symfonyprojekt
[/code]

gemacht. Damit kann ich im Browser die URL http://symfonyprojekt/app.php/ aufrufen und erhalte nun die Symfony Startseite:

Anmerkung: Um die hosts zu editieren, kann man zum Beispiel den Notepad als Administrator ausführen und anschließend die Datei hosts im Verzeichnis „C:/Windows/System32/drivers/etc“ öffnen. Im Internet gibt es beispielsweise auch diverse Tools, die das Editieren vereinfachen sollen.

Ich hoffe dieses Tutorial hat euch geholfen Symfony korrekt zum laufen zu bringen. Bei Fragen können gerne Kommentare gepostet werden. Viel Spaß!

  1. Bernd
    21. Juli 2012, 14:59 | #1

    Hey vielen Dank für dein Tutorial, aber ich komme leider ab Schritt 4 nicht mehr weiter .. wo genau kommen denn die Symfony dateien hin ?

    Ich bekomme andauernd den fehler
    Oops! An Error Occurred
    The server returned a „404 Not Found“.
    Something is broken. Please e-mail us at [email] and let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused.

    Vielen Dank schonmal im Voraus !!

    Gruß Bernd

    • Peter
      22. Juli 2012, 10:08 | #2

      Hallo Bernd, hier handelt es sich um einen Symfony-Fehler, den Du bekommst – die Installation ist demnach soweit richtig. Eventuell ist die Route nur in der Produktivumgebung nicht vorhanden. Das Documentroot für den Vhost ist anscheinend richtig auf den /web Ordner gesetzt.

      Ich würde an Deiner Stelle im Browser nicht http://localhost/index.php/ aufrufen, sondern die dev Umgebung:
      http://localhost/frontend_dev.php

      Hier müsstest Du dann eine Fehlerausgabe bekommen woran es liegt. Wenn Du nicht weiterkommst, kannst Du den Fehler auch hier posten.

  2. Davincho
    15. November 2012, 12:40 | #3

    Hi,

    Hab gerade nach deiner Anleitung Symfony2 + XAMPP installiert. Auf folgende Probleme bin ich gestoßen (eventuell aufgrund von neuen Versionen von Apache und PHP):

    Vhost: Man braucht für die Directory Anweisung zwingend ein „Require all granted“, wenn man bei einem Vhost einen Ordner als RootDirectory angiebt, der nicht unter C:\xampp\htdocs liegt. z.B: D:\www (siehe http://stackoverflow.com/questions/89118/apache-gives-me-403-access-forbidden-when-documentroot-points-to-two-different-d)
    PHP-Apc: Die DLLs von der Seite auf die du verlinkt hast, haben bei mir nicht funktioniert, ich habe http://www.dragffy.com/php-extensions verwendet (PHP Version 5.4.7)

    • Peter
      15. November 2012, 12:49 | #4

      Hallo Davincho,

      ja das stimmt. Das Tutorial ist etwas älter und mittlerweile gibt es entsprechend neue Versionen von PHP bzw. APC. Die PHP-Version und die DLLs der APC Library müssen übereinstimmen, sonst wird der Apache Server garnicht erst korrekt starten können. Danke für die Rückmeldung. Ich hoffe die Anleitung war trotzdem hilfreich.

  3. Davincho
    15. November 2012, 13:08 | #5

    Ja auf jeden Fall 😉
    Btw.: Hier gibt es die aktuellen APC Versionen für PHP 5.4 ts/nts http://dev.freshsite.pl/nc/php-accelerators/apc/download/

  4. 15. November 2012, 18:07 | #6

    Hallo Peter,
    ich habe endlich eine deutschsprachige Anleitung gefunden, die für mich detailiert genug ist.Dafür vielen Dank!
    Ich habe unter Win7/64
    Xampp-win32-1.8.1-VC9-installer.exe installiert (php 5.4.7, php Extension Built TS, Apache 2.4.3 (Win32).
    Nun versuche ich Mapbender3 (Symfony2) zu installieren und bekomme bei app/check.php die Fehlermeldungen „php5.dll nicht gefunden“ und „Unable to load dynamic library C:\xampp\php\ext\php_apc.dll.
    Vielleicht ist „TS“ der Übeltäter? Gibt es einen Tipp, mir über diese Klippe zu helfen?

    Viele Grüße

    Rolf

  5. Peter
    15. November 2012, 21:18 | #7

    @Rolf

    Hallo Rolf, anscheinend hast Du bei der Fehlermeldung „Unable to load dynamic library C:\xampp\php\ext\php_apc.dll“ das selbe Problem wie Davincho in den Kommentaren geschrieben hat. Ich würde hier nochmal die APC Version mit der PHP Version vergleichen bzw. überprüfen.

    Wozu wird „php Extension Built TS“ benötigt? In der Mapbender3 Dokumentaton hab ich bei den Anforderungen nur folgende Komponenten gelesen:

    >= PHP 5.3 (php5)
    PHP CLI Interpreter (php5-cli)
    PHP SQLite Erweiterung (php5-sqlite)
    PHP cURL Erweiterung (php5-curl)

  6. 16. November 2012, 12:31 | #8

    @Peter

    Hi,
    vielen Dank. Deine Hinweise haben mir über diese Klippen geholfen.

  7. felted
    29. Januar 2013, 22:26 | #9

    Hallo,

    ich habe XAMPP Version 1.8.1 auf ein Netzwerklaufwerk kopiert und versuche nun nach dieser Anleitung Symfony2 zu installiern.

    Ich habe einen virtual Host angelegt und komme soweit, dass Symfony mir den Welcomescreen ::http://jobeet.local/config.php:: anzeigt.

    Dort werde ich darauf hingewiesen, dass ich doch bitte noch die intl extension und APC instllieren soll. Die intl-Extension ist drauf. APC will nich und erklärt mir nach der Installation, dass es bereits installiert sei.

    Wie auch immer. Nach einen Klick auf >>Bypass configuration and go to the Welcome page<< bekomme ich nach einer gewissen Zeit diese Fehlermeldung:

    Fatal error: Maximum execution time of 30 seconds exceeded in P:\xampp\htdocs\jobeet\vendor\symfony\symfony\src\Symfony\Component\Config\Resource\FileResource.php on line 32

    Kann mir da jemand weiterhelfen?

    Viele Grüße und Danke, Detlef

    • Peter
      1. Februar 2013, 00:11 | #10

      Hallo Detlef, anscheinend hast Du die falsche APC Version. Schau mal in der phpinfo() nach Thread Safety und kopiere die entsprechende php_apc.dll entweder aus dem Ordner „ts“ (bei Thread Safety = enabled) oder eben aus dem „nts“ Ordner (bei Thread Safety = disabled). Ich habe gerade testweise Symfony 2.1.7 unter XAMPP 1.8.1 und Windows 7 durchgeführt. Wenn ich „php app/check.php“ aufrufe, dann steht bei mir alles auf OK. Die obere Fehlermeldung kann ich leider nicht nachvollziehen. Ggf. prüfen ob APC für die richtige PHP-Version heruntergeladen wurde (5.3 oder 5.4). Viel Erfolg.

  1. Bisher keine Trackbacks