Zend Server CE, xdebug und Magento auf Mac OSX (Snow Leopard) installieren.
Administration · Magento-Einstieg 1 Kommentar
Archiv-Beitrag aus 2011 – Magento mache ich heute nur noch selten. Aktuell: com:werft (Shopware 6, Laravel & PHP) · siepker.com · kontor:worx · campr
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
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 restartneu 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.deStandardmäß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.