magelounge

Infos, Tipps und Tricks rund um Magento Commerce

Start › 2011 › August

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

1 Kommentar

Ralf SiepkerAutor

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/

Kommentare sind geschlossen – dieser Blog ist ein Archiv.

Meine Projekte

Der Blog ist Archiv – gebaut wird heute hier:

com:werft

Software-Entwicklung für Shopware 6, Laravel und PHP – als Freelancer unterstütze ich Shopbetreiber und verstärke Agentur-Teams.

comwerft.de →

siepker.com

Meine persönliche Seite: Blog über Camping, Radtouren, Segelfliegen und Software.

siepker.com →

kontor:worx

Bürogemeinschaft & Coworking in Rheine seit 2012 – Büros XS–L, FixedDesk, FlexDesk und ein Meetingraum, mitten in der Innenstadt.

kontorworx.de →

campr

35 Jahre Camping-Leidenschaft: meine persönlich besuchten Stellplätze in Europa – und die Basis für etwas Größeres.