Mac OS X et outils de développement
Dimanche 20 décembre 2009 par dominique
Posté dans Mac OS, Productivité, Technique
Le but est de pouvoir développer sous Mac OX (Snow Leopard) des applications AMP (Apache / MySQL / PHP) et des applications Java (dont des servlets dans Tomcat). Dans cet article sont abordées les installations de Apache, PHP, MySQL, Java, Tomcat et Eclipse.
Xcode
C'est la première étape incontournable pour disposer d'un environnement de développement sous Mac OS. Xcode est disponible sur le DVD de Snow Leopard, mais la dernière version à jour est disponible gratuitement sur le site de Apple (http://developer.apple.com/products/membership.html). Xcode inclut les outils minimums pour créer et debugger des applications pour Mac (ou iPhone).
Java
Pour Java, il n'y a rien à faire puisque le JDK 1.6 est inclus dans Snow Leopard.
MySQL
Pour installé MySQL, j'ai suivi la procédure décrite dans cette page "Installing MySQL on Mac OS X". Je l'ai juste appliquée à une version 5.0.88.
A noter cette article également qui décrit en plus la création d'un user mysql "Compiling and Installing MySQL 5 on Mac OS X Leopard"
Apache
Comme pour Java, il n'y a rien à faire puisque Apache 2.2 est installé avec Snow Leopard (Partage web).
PHP
Apache est installé avec Snow Leopard donc en toute logique PHP l'est également (mais n'est pas actif dans Apache par défaut). Le problème (pas forcément pour tout le monde) est qu'il s'agit de la version 5.3 et que j'ai besoin de la version 5.2.x. Il faut donc downgrader PHP.
Activation de Php 5.3 dans Apache
Il suffit de décommenter la ligne suivante dans /etc/apache2/httpd.conf.
#LoadModule php5_module libexec/apache2/libphp5.so
Downgrader Php en version 5.2.x
Pour cela, soit on utilise une distribution 5.2.x pour Mac OS toute prête, soit on compile soit même Php. Pour utiliser une distribution toutes prête de Php 5.2.9 pour Mac OS, on se rend sur le site de Marc Liyanage. Outre la page sur les distributions de Php pour Mac OS, ce site fournit des informations sur Mac OS en général, MySQL, Java et Perl.
J'ai choisi de compiler moi même Php afin de disposer d'une version à jour (5.2.11). Pour cela, je me suis principalement basé sur cet article "Reverting PHP 5.3 to 5.2.10 on Snow Leopard". Le seul changement que j'ai apporté à la procédure décrite concerne la configuration de la compilation de Php. J'ai utilisé cette ligne de commande afin d'activer entre autres l'option sockets.
./configure \ --prefix=/usr/local/php5 \ --with-apxs2 \ --enable-pdo \ --enable-ftp \ --enable-mbstring \ --enable-mbregex \ --enable-sockets \ --enable-gd-native-ttf \ --enable-cli \ --with-freetype-dir=/usr/local/lib \ --with-t1lib=/usr/local/lib \ --with-gd \ --with-zlib \ --with-jpeg-dir=/usr/local/lib \ --with-png-dir=/usr/local/lib \ --with-curl \ --with-mcrypt \ --with-pdo_mysql=/usr/local/mysql \ --with-mysql=/usr/local/mysql/ \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --without-iconv
Je regrette de n'avoir pas réussi à installer et activer la librairie iconv à cause d'une erreur de compilation. Normalement, la solution est dans cette page, mais pour moi, cela n'a pas (encore) fonctionné.
Durant mes recherches, j'ai également trouvé ces articles intéressants :
- Enabling, Compiling and Installing PHP 5 on Mac OS X Leopard
- Installing AMP (Apache, MySQL, PHP) on Mac OS X 10.6 Snow Leopard
Note (7 avril 2010) : J'ai du recompiler et ré-installer une version 5.2 après être revenue à la version 5.3 par erreur. J'ai finalement utilisé la méthode décrite dans l'article Enabling, Compiling and Installing PHP 5 on Mac OS X Leopard avec les sources de la version 5.2.13. Tout a bien fonctionné avec la librairie iconv.
Tomcat
On trouve beaucoup d'articles décrivant l'installation de Tomcat sous Mac OS. Pour des raisons de compatibilités avec les serveurs Tomcat que je gère et pour lesquels je développe, je souhaite installer une version 5.5. Je me suis basé sur cet article : Apache Tomcat 5.5 Installation on Mac OS-X Leopard 10.5.x.
De mon coté, j'ai installé Tomcat dans /opt/apache-tomcat-5.5.28. J'ai également changer le port d'écoute de Tomcat de 8080 à 8180 comme sous Debian. La version de Java installée avec Snow Leopard est la 1.6 donc dans startup.sh, les variables JAVA_HOME et CATALINA_HOME sont les suivantes :
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/ export CATALINA_HOME=/opt/apache-tomcat-5.5.28
Durant mes recherches, j'ai également trouvé ces articles intéressants :
Dans ce dernier article est expliqué comment faire afin que Tomcat démarre automatiquement comme un demon. Il y plusieurs solutions et j'ai choisi la suivante :
1. Positionner les variables d'environnement JAVA_HOME et CATALINA_HOME au début du script /opt/apache-tomcat-5.5.28/bin/catalina.sh
2. Créer un fichier /Library/LaunchDaemons/org.apache.tomcat.plist qui contient ceci.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Disabled</key> <false/> <key>Label</key> <string>org.apache.tomcat</string> <key>ProgramArguments</key> <array> <string>/opt/apache-tomcat-5.5.28/bin/catalina.sh</string> <string>run</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
et lui affecter le bon propriétaire :
sudo chown root:wheel /Library/LaunchDaemons/org.apache.tomcat.plist
Le démarrage et l'arrêt manuel de Tomcat se font ainsi :
sudo launchctl load /Library/LaunchDaemons/org.apache.tomcat.plist
sudo launchctl unload /Library/LaunchDaemons/org.apache.tomcat.plist
Eclipse pour Java et Php
Pour l'installation de Eclipse, ma source d'informations est cet article Installing Eclipse Galileo on Mac OS X, mais on peut également regarder du coté de la distribution Pulse.
Java
La procédure est simple :
1. Sur la page de téléchargement de Eclipse, récupérer la version Cocoa 32 bits de "Eclipse IDE for Java EE Developers" ou de "Eclipse IDE for Java Developers" et décompresser l'archive récupérée. Un répertoire "eclipse" est créé.
2. Créer un répertoire /Applications/Dev et y copier le répertoire "eclipse" issue de la décompression de l'archive.
Php
Pour la version Php de Eclipse (Eclipse for PHP Developers), la procédure est exactement la même. Avant de copier dans /Applications/dev le répertoire créé par la décompression de l'archive, je le renomme "eclipse php".
Xdebug pour Php
Pour Eclipse Php, il est nécessaire d'installer le composant de debuggage Xdebug.
Sur la page http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging/, on télécharge dans la section "Komodo 5.2 Remote Debugging Packages" le module "PHP Remote Debugging" pour Mac OS X. Une fois décompressé, l'archive contient la librairy xdebug.so pour différentes versions de Php.
Dans un terminal exécuter la commande qui suit (sur une seule ligne) en remplaçant les "x" par les valeurs correspondants à la version que vous aurez téléchargée :
sudo cp ~/Downloads/Komodo-PHPRemoteDebugging-5.2.x-xxxxx-macosx/5.2/xdebug.so /usr/local/php5/include/php/ext/
Dans php.ini (/usr/local/php5/lib/php.ini), ajoutez les lignes suivantes à la fin du fichier :
zend_extension=/usr/local/php5/include/php/ext/xdebug.so [Xdebug] xdebug.remote_enable=1 xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_autostart=1 xebug.remote_handler=dbgp
Redémarrez Apache (Préférences Système -> partage -> partage web).
Sites utiles
Vous pouvez suivre les commentaires à ce message au travers du flux RSS 2.0 . Vous pouvez laisser un commentaire, ou placer un trackback depuis votre propre site.
Lundi 21 décembre 2009 à 23:45
Pour ton souci de compilation iconv dans PHP, utilise la directive –with-iconv-dir=/usr et n’oublie pas de rééditer ton Makefile pour le -lresolv …
Mardi 22 décembre 2009 à 8:55
Merci pour ce conseil, mais le résultat du ./configue est
checking for iconv… no
checking for libiconv… no
configure: error: Please reinstall the iconv library.
le résultat de locate iconv.h donne entre autres :
/opt/local/include/iconv.h
/sw/include/iconv.h
/usr/include/iconv.h
/usr/local/include/iconv.h
J’ai essayé tous ces chemins mais sans succès
Voici également le résultats d’autres commandes :
administrateur$ ls -l /sw/lib/libiconv.dylib
lrwxr-xr-x 1 root admin 20 12 déc 18:21 /sw/lib/libiconv.dylib -> libiconv.2.4.0.dylib
administrateur$ ls -l /usr/lib/libiconv.dylib
lrwxr-xr-x 1 root wheel 20 14 sep 22:37 /usr/lib/libiconv.dylib -> libiconv.2.4.0.dylib
administrateur$ ls -l /usr/local/lib/libiconv.dylib
lrwxr-xr-x 1 root wheel 16 15 déc 23:43 /usr/local/lib/libiconv.dylib -> libiconv.2.dylib
administrateur$ ls -l /opt/local/lib/libiconv.dylib
lrw-r–r– 1 root admin 16 12 déc 15:35 /opt/local/lib/libiconv.dylib -> libiconv.2.dylib
administrateur$ which iconv
/sw/bin/iconv