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 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
/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.
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/