Zend Server CE, xdebug und Magento auf Mac OSX (Snow Leopard) installieren.

Viele PHP- und Magento-Entwickler nutzen einen Mac, um mit PHP und Magento zu entwickeln. Ich bevorzuge hierbei den Zend Server Community Edition mit der PHP Version 5.3 sowie zum Debuggen Xdebug.

Zend Server Community Edition gefällt mir deshalb besonders gut, da hier alles wichtig recht nah an der Produktionsumgebung mitgeliefert wird. Hierzu zählen

  • Apache 2
  • MySQL
  • eine zertifizierte PHP Distribution, in meinem Fall PHP 5.3
  • Zend Framework
  • Web-basierte PHP Administrator Konsole
  • phpMyAdmin
  • und einige Annehmlichkeiten mehr

Zend Server CE Web-Interface

Zend Server Community Edition Web-Interface

Da Zend Server seinen eigenen Debugger mitbringt, einige jedoch Xdebug bevorzugen, möchte ich hier aufzeigen, wie man diese Kombination zum Laufen bekommt:

  • Zend Server Community Edition herunterladen und wie üblich installieren
  • nach der Installation http://localhost:10081 öffnen
  • „Zend Debugger“ abschalten
  • Herunterladen der xdebug.so. Am besten nimmt man hier die vorkompilierte Version von Komodo, verfügbar unter http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging
  • Das heruntergeladene Archiv entpacken, in das Verzeichnis /5.3/ navigieren und die xdebug.so nach /usr/local/zend/lib/php_extensions kopieren
  • /usr/local/zend/etc/php.ini öffnen und folgende Zeilen über dem Bereich [zend] einfügen:
    zend_extension=/usr/local/zend/lib/php_extensions/xdebug.so
    
    [xdebug]
    xdebug.remote_enable=1
    xdebug.remote_port=9000
    xdebug.remote_host=”localhost”
    xdebug.show_local_vars=On
    xdebug.var_display_max_depth=20
    xdebug.var_display_max_data=10000
  • nun den Server mit sudo /usr/local/zend/bin/zendctl.sh restart neu starten
  • Nun sollte die Arbeit mit Xdebug möglich sein

Für die einzelnen Magento-Projekte lege ich mir jeweils einen virtuellen Eintrag in der /etc/hosts nach diesem Schema an:

127.0.0.1     dev.projekt1.de
127.0.0.1     dev.projekt2.de
127.0.0.1     dev.projekt3.de

Standardmäßig wird der Apache-Webserver auf Port 10088 installiert, so das man jede Domain nach dem Schema www.projekt1.de:10088 aufrufen muss. Mir persönlich gefällt das nicht so gut, so das ich folgende Änderungen in der /usr/local/zend/apache2/conf/httpd.conf vorgenommen habe:

Listen 80

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

Auch die virtuellen Domains werden auf Port 80 gestellt und über die Datei /usr/local/zend/apache2/conf/extra/httpd-vhosts.conf wie folgt angelegt:
NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "/your/path/to/your/project1"
    ServerName dev.projekt1.de
    <Directory "/your/path/to/your/project1">
        Options FollowSymLinks
        AllowOverride All
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/your/path/to/your/project2"
    ServerName dev.projekt2.de
    <Directory "/your/path/to/your/project2">
        Options FollowSymLinks
        AllowOverride All
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost> 

<VirtualHost *:80>
    DocumentRoot "/your/path/to/your/project3"
    ServerName dev.projekt3.de
    <Directory "/your/path/to/your/project3">
        Options FollowSymLinks
        AllowOverride All
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

Der Vorteil ist, das man somit nur sehr wenige Änderungen vornehmen muss, falls man z.B. mal ein Mysql-Dump von einem Webserver in seine lokale Installation importiert. Hierzu reichen wenige SQL-Befehle und schon kann man lokal weiterarbeiten:

update core_config_data set value="http://dev.projekt1.de" where path="web/secure/base_url";
update core_config_data set value="http://dev.projekt1.de" where path="web/unsecure/base_url";
update core_config_data set value="dev.projekt1.de" where path="web/cookie/cookie_domain";

Durch das Setzen der Cookie-Domain ist es somit möglich, sich auf mehreren Subdomains einzuloggen (z.B. www.projekt1.de, stage.projekt1.de, dev.projekt1.de), was ansonsten zu Problemen führen könnte.

Tags: , , , , ,

Eine Antwort zu “Zend Server CE, xdebug und Magento auf Mac OSX (Snow Leopard) installieren.”

  1. Ralf Siepker 23. September 2012 at 19:04 #

    Wichtiger Hinweis für Nutzer von Mountain Lion. Scheinbar gibt es hier Probleme mit der aktuellesten Version von Zend Server CE 5.6. Beim mir war es so, das beim ersten Neustart der MySQL-Server nicht gestartet wurde (missing mysql.sock file: usr/local/zend/mysql/tmp/mysql.lock).

    Hierbei war der zweite Kommentar auf dieser Seite für mich zielführend:
    http://jameshalsall.co.uk/missing-mysql-sock-file-in-zendserver-mac-osx/

Kommentar schreiben

You must be logged in to post a comment.