Installation de PHP 5.3, MySQL 5.x, phpMyAdmin sur MacOsX 10.6
L’utilisation des installations « embeded » tel que MAMP (Mac OS X, Apache, MySQL, PHP) ne sont pas obligatoires sur un environnement tel que MacOSX pour pouvoir développer vos sites avec PHP, avec un minimum de connaissances, il est tout à fait possible d’utiliser les services intégrés au système, ce dernier possède nativement certains logiciels tel qu’Apache2 et même PHP 5.3 qui peuvent être utilisés en ne modifiant que quelques lignes.
1ère étape: Désinstaller et/ou désactiver les serveurs Apache « embeded » et activer Apache2 de Mac OS X
Si vous avez installé des serveurs web tel que MAMP ou bien Zend Server, veillez à les supprimer ou les désactiver afin qu’ils ne fassent pas interference avec le service Apache par défaut de Mac OS X. Ensuite, rendez-vous dans vos « préférences système », partie « Partage » et cocher la case « Partage internet » ou « Web Sharing » suivant la langue dans laquelle vous vous trouvez. A la suite de cette action, vous aurez lancé le service Apache 2 de MacOsX 10.6.
2ème étape: Lier Apache2 et PHP 5.3
Par défaut, Apache2 ne pourra pas interpréter les scripts PHP, il faudra pour cela le « lier » au module PHP adequat.
Ouvrer le fichier /etc/apache2/httpd.conf
sudo vi /etc/apache2/httpd.conf
Trouver la ligne suivante
#LoadModule php5_module libexec/apache2/libphp5.so
Décommenter là afin d’avoir le résultat suivant
LoadModule php5_module libexec/apache2/libphp5.so
Après avoir précisé à Apache2 de charger le module PHP5, ce dernier pourra alors exécuter les scripts PHP lors de son prochain redémarrage, nous allons redémarrer le serveur web immediatement avec la commande suivante.
$ sudo apachectl apachectl restart
Nous allons vérifier si nos modications ont été réaliséss avec succès, ouvrer le terminal et entrer la commande suivante
$ php -v
La commande doit renvoyer approximativement (Quelques détails peuvent changer suivant votre version du système) le résultat suivant
PHP 5.3.0 (cli) (built: Jul 19 2009 00:34:29) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
Nous allons maintenant vérifier la version d’Apache
$ apachectl -v
Le résultat doit ressembler ~ à ce qui suit
Server version: Apache/2.2.13 (Unix) Server built: Oct 16 2009 02:12:22
Vous pouvez directement passer à l’étape 3 si vous avez déjà réaliser la manipulation.
La ligne à modifier se situe dans le fichier /etc/php.ini, si il n’existe pas, vous pouvez le récupérer de la manière suivante
$ sudo cp /etc/php.ini.default /etc/php.ini
Ensuite ouvrer le fichier directement depuis le shell ou avec un éditeur
$ sudo vi /etc/php.ini
Et trouver les lignes suivantes
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = ""
Et préciser un fuseau horaire, dans mon cas j’utilise celui de Paris
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = "Europe/Paris"
Ensuite nous allons mettre les permissions adéquat au fichier php.ini afin qu’il puisse être exécuter, puis nous allons redémarrer Apache2 afin qu’il puisse prendre en compte les différentes modifications
$ sudo chmod 444 /etc/php.ini $ sudo apachectl restart
3ème étape: Installation de MySQL
L’installation de MySQL sur Mac OS X s’effectue assez facilement, je vais donc passer brièvement sur cette partie.
- Télécharger la dernière version « packager » de MySQL directement sur le site officiel (Au moment ou j’écris ces lignes, nous en sommes à la version 5.5, Attention, veillez à prendre la version « packager » (Mac OS X ver. 10.6 (x86, 64-bit), DMG Archive) qui possède un installeur)
- Installer les 2 packets disponibles dans le fichier .dmg ainsi que le « préference pane » de MySQL
- Exécuter MySQL depuis la parte « MySQL » de votre fenêtre « préférences système »
A la suite de ces manipulation nous allons spécifier le chemin du fichier « mysql.sock » dans les préférences de PHP, pour cela, ouvrer le fichier /etc/php.ini puis remplacer les 3 occurences de « /var/mysql/mysql.sock » et les remplacer par « /tmp/mysql.sock », ensuite redémarrer Apache2. Puis, toujours dans le même fichier, fixer le port 3306 pour la variable « mysql.default_port », de la manière suivante.
mysql.default_port = 3306
Puis redémarrer Apache2 afin qu’il puisse prendre en compte les changements.
$ sudo apachectl restart
4ème étape: Installer phpMyAdmin
Pour installer phpMyAdmin, il faut se rendre sur le site officiel et télécharger la dernière version (Télécharger la version .zip), une fois le fichier zip récupéré, dézipper le, renommer le nom du dossier en « phpMyAdmin » afin qu’il soit plus explicite, puis déplacer le dossier à la racine de votre server web afin qu’il puisse être accessible par Apache2.
phpMyAdmin devient donc disponible à l’adresse suivante -> http://localhost/phpMyAdmin (phpMyAdmin étant le nom du dossier que vous avez spécifié précedement)
L’installation par défault de MySQL sur Snow Leopard install ce dernier sans mot de passe pour le compte root, dans le but de vous connecter à votre base MySQL depuis phpMyAdmin, vous devez préciser à phpMyAdmin qu’il à le droit de s’authentifier sans mot de passe, pour cela, modifier le fichier config.ini.php qui se situe dans le dossier de phpMyAdmin et rajouter la ligne suivante à la fin du fichier.
$cfg['Servers'][$i]['AllowNoPassword'] = true;
Dans ce même fichier, rajouter ou modifier la variable suivante, elle servira à crypter les mots de passe dans les cookies (Indispensable pour fonctionner)
$cfg['blowfish_secret'] = 'UnePhraseAuHasard'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
Une fois la manipulation effectuée, vous devez redemarrer Apache2 et vous pourrez accéder à phpMyAdmin avec l’adresse situer ci-dessus.
$ sudo apachectl restart
5ème étape: Installation de différentes extensions pour PHP (Image Magick, Magickwand, xDebug, MemCached)
Vous devez posséder xCode 3.2 d’installé sur votre machine, ainsi que MacPorts que vous pouvez télécharger ici -> MacPorts v 1.8.2 pour Snow Leopard pour pouvoir installer les modules suivants.
Image Magick (imagick)
$ sudo port install imagemagick
Ensuite, une fois la commande éxécuté, télécharger ici le module imagick pour PHP, dézipper le fichier « imagick-2.3.0.tgz et entrer dans le terminal les commandes suivantes, vérifier bien les chemins de vos fichiers !
$ cd ~/Downloads/imagick-2.3.0/imagick-2.3.0 $ phpize $ ./configure --with-imagick=/opt/local $ make $ cd modules $ sudo cp imagick.so /usr/lib/php/extensions/no-debug-non-zts-20090626/
Le module PHP imagick est bien installé, mais pas encore bindé avec Apache2.
Magickwand
Télécharger Magickwand ici, dézipper le fichier « MagickWandForPHP-1.0.8.tar.gz » et entrer dans le terminal les commandes suivantes
$ cd ~/Downloads/MagickWandForPHP-1.0.8/ $ phpize $ ./configure --with-magickwand=/opt/local $ make $ cd modules $ sudo cp magickwand.so /usr/lib/php/extensions/no-debug-non-zts-20090626/
Le module PHP Macgickwand est bien installé, mais pas encore bindé avec Apache2.
xDebug
Télécharger xdebug ici (dernière version stable), dézipper le fichier xdebug-2.0.5.tgz et entrer dans le terminal les commandes suivantes
$ cd ~/Downloads/xdebug-2.0.5/xdebug-2.0.5 $ phpize $ ./configure $ make $ cd modules $ sudo cp xdebug.so /usr/lib/php/extensions/no-debug-non-zts-20090626/
Le module PHP xDebug est bien installé, mais pas encore bindé avec Apache2.
Liaisons entre les modules installés et Apache2
Les modules sont bien en place, cependant, ils ne sont pas encore liés avec Apache2, pour cela rajouter les lignes suivantes à la fin dans le fichier /etc/php.ini.
;;;;;; extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/magickwand.so extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/imagick.so extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/memcached.so zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so xdebug.default_enable = On xdebug.collect_params = 4 xdebug.trace_format = 1 xdebug.show_local_vars = On xdebug.dump_globals = On xdebug.show_exception_trace = On xdebug.collect_assignments = 1 ;;;;;;
Votre espace de travail est enfin prêt à être utilisé, il suffit simplement de redémarrer une dernière fois Apache2 (à vous de trouver la commande adéquat) et le développement sera à vous !












J’avoue avoir cédé à la facilité en utilisant MAMP. Mais maintenant que je me mets à symfony il me faudrait un deuxième environnement totalement séparé pour utiliser des configurations différentes.
En effet, symfony impose un environnement assez spécial, MAMP n’est pas adapté pour supporter ce genre de framework.
Si tu as besoin d’informations pour créer ton environnement pour Symfony sur MacOsX je pourrais te donner mes tips, le mien fonctionne parfaitement.
salut big boss ! j’essaye depuis 3 jours d’installer symfony pour commencer a apprendre mais je suis vraiment perdu pck je le fais avec mamp. donc si ca te dirait de me donner un bon coup de main.ca me ferait du bien! en faite g installé symfony avec un tuto ki etait disponible sur le web . mais j’ai de ces commandes qui marchent pas. comme quand je tape symfony ds le terminal :=> -bash: symfony: command not found
et je ne comprends rien pourtant tout avait été bien installé.
donc jatends de te lire ….
Merci d’avance !!
Pour Symfony, tu dois te mettre à la racine de ton projet Symfony, puis pour utiliser la commande Symfony, tu dois tapper « ./symfony clear:cache » par exemple, mais tu dois préfixer avec « ./symfony tacommande » car la commande Symfony n’a pas été rajouté à ton :PATH … Si tu veux avoir la commande Symfony de manière globale pour ton environnement de terminale, je peux te donner le tips, mais je ne le conseil pas !
Sinon, ton environnement PHP fonctionne t-il ?
Merci pour le tuto top bien fait. J’ai juste un pb à la fin car il n’a pas créé le memcached.so dans le dossier module et je ne sais pas où le trouver ! Merci de me donner l’info si tu l’as ! (il n’avait pas créé le .so de xdebug, je l’ai récupéré d’un dossier komodo en version 5.3, ça marchera ?)
Merci pour tes réponses,
Bertrand.
J’ai refais les 2 points sur lesquels tu as eu des problèmes, en effet, la méthode concernant memcached est bugué depuis la mise à jour du fichier 1.0.0 vers 1.0.2, je vais donc enlever cette partie en attendant de trouver la solution.
Concernant xDebug, j’ai refais la manipulation décrite dans le tuto, elle fonctionne impecable chez moi. Mais pour répondre à ta question, le fichier .so de chez Komodo fera amplement l’affaire ;-)
J’ai trouvé une solution via macport
$ cd /opt/local/var/macports/sources/rsync.macports.org/release/ports/php/php5-mcrypt
$ sudo port install php5-mcrypt
il m’a du coup installé pléthores de plugins :
libmcrypt
apr
db46
readline
sqlite3
apr-util
openssl
pcre
apache2 (réinstal ?)
gawk
autoconf213
gsed
mhash
php5 (réinstal de 5.3.2 ?)
mais cela mcrypt n’apparait pas dans mon phpinfo ?? et le logiciel que je veux installer me demande toujours mcrypt ?
une idée ?
Merci
Bertrand.
Hum de mémoire, la liste des packets que tu as cités ont été installés dans un dossier crée par mcport, mais en aucun cas apache2 à été réinstallé ou même mit à jour. C’est juste une autre installation d’Apache2, c’est pareil pour tout les autres packets que macport à installé.
Sachant que ton phpinfo fait référence à la configuration de /etc/php.ini et non à l’installation de macport, il est donc normal que tu n’aperçois pas mcrypt dedans …
Tu as compris ?
ok capito pour les install du coup j’ai ajouté en fin de fichier /etc/php.ini les lignes suivantes pour qu’il lance les plugins mais rien n’est détecté a priori :
;;;;;;
extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/magickwand.so
extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/imagick.so
extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/memcached.so
extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/phpcups.so
extension=/usr/lib/php/extensions/no-debug-non-zts-2090626/mcrypt.so
zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so
xdebug.default_enable = On
xdebug.collect_params = 4
xdebug.trace_format = 1
xdebug.show_local_vars = On
xdebug.dump_globals = On
xdebug.show_exception_trace = On
xdebug.collect_assignments = 1
;;;;;;
Je ne trouve rien dans mon phpinfo et le logiciel que je souhaite installer me demande toujours de loader mcrypt. En fait je ne sais pas vraiment là… !!
un peu perdu en fait !!!
Merci !
As-tu vérifié que la totalité des chemins de tes fichiers .so existent ?
As-tu redemarré Apache2 ? (sudo apachectl restart)
As-tu fais tes modifications dans le fichier php.ini ? (Fais un ‘cat /etc/php.ini pour vérifier le contenu de ton fichier)
Si vraiment ça ne marche pas, je ferais un petit screecast additionnel.
Merci de prendre le temps !
J’ai bien redémarré Apache mais l’install bloque toujours sur mcrypt.
Concernant le fichier php.ini, j’ai seulement ajouté les dernières lignes que je t’ai copiées plus haut.
…et ça marche pas….
En effet, symfony impose un environnement assez spécial, MAMP n’est pas adapté pour supporter ce genre de framework.
Si tu as besoin d’informations pour créer ton environnement pour Symfony sur MacOsX je pourrais te donner mes tips, le mien fonctionne parfaitement.
Bonjour,
J’ai le même problème que Bertrand. Chez moi, PhpMyAdmin, en l’occurrence, me demande toujours ce package. Pourtant j’ai utilisé macport comme Bertrand l’a proposé (tous ces plugins ont été installé). Mais dans no-debug-non-zts-20090626/ il n’y a que phpcups.so, pas de mcrypt.so.
De plus, dans php.ini, il y a marqué que par défaut les librairies se trouvent dans /usr/local/lib/libmcrypt mais ce répertoire est vide.
Un détail que je n’ai pas compris dans macport ? Il n’installe pas tout à fait ? Autre chose ?
Merci d’avance,
Didier
j’ai trouvé, en fait il est là
/opt/local/lib/php/extensions/no-debug-non-zts-20090626/
Je ne sais pas pourquoi il s’est mis là mais au moins maintenant, php ne me réclame plus ce package.
Il m’est assez difficile de régler des problèmes que je ne rencontre pas sur ma machine. Pour vous ajouter des précisions ?
Bonjour,
Pour le module memcache la méthode fonctionne avec le paquet se trouvant à l’adresse : http://pecl.php.net/package/memcache
Merci pour ce tuto excellent.
Bonjour,
J’ai un petit problème avec MySQL, j’ai tout installé, mais quand je clique sur « Start MySQL Server », rien ne se passe, le serveur ne démarre pas.. Pourtant je n’ai rien oublié
Merci d’avance,
Vgalaxy.
As-tu utiliser l’installeur officiel pour installer MySQL ? (le package .dmg)
Salut,
Oui j’ai téléchargé la version 5.5.5 (sur http://dev.mysql.com/downloads/mysql) . au début, puis je l’ai désisntallée. J’ai voulu essayer la version 5.1.50 mais celle-ci ne veut pas s’installer, donc j’ai réinstallé la version 5.5.5, mais ça ne marche toujours pas.
La version 5.5.5 n’étant pas ’stable’, je te déconseille pour le moment de l’utiliser. Tu dois donc t’orienter vers la version 5.1.50.
Peux-tu m’en dire plus sur la configuration de ta machine, l’OS, sa version …
Et simple petite question, as-tu pris la version adequate, c’est à dire, celle optimisé pour ton d’OS ?
Le problème c’est que je ne peux pas installer la version 5.1.50, il y a un message d’erreur me disant qu’une version plus récente est déjà installée.
J’ai un MacBookPro 15″ avec Mac OS X Snow Leopard (10.6).
Et j’ai ouvert ma session ce matin, et en message d’erreur, j’ai eu quelque chose du genre qu’il y avait une erreur de sécurité dans le dossier /Library/StartupItems/MySQLCOM
Il faut que tu trouve le script qui te permet de désinstaller proprement MySQL 5.5.5 afin que tu puisse installer le package « stable ».
J’ai téléchargé la version 5.5.5 pour voir si le script de désinstalle était dedans … à première ça n’a pas l’air.
Salut,
Après quelques recherces sur le web, j’ai trouvé des lignes de code qui réussissent à effacer complètement mysql, j’ai donc pu installer la version 5.1 (la « stable »). Merci beaucoup pour ton aide !
Pour ceux qui voudraient les lignes de code shell :
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.mysql*
Je te remercie d’avoir apporté ta réponse ici, dès que j’ai 5m je rajouterai ce bout de code dans mon post !
J’ai un problème, il ne trouve l’URL. Je monte un serveur local sur Mac avec MAMP. Ex. http://localhost:8888/MAMP/automne4-V4_0_2-install/install.php, il me met le message suivant: Not Found
The requested URL /MAMP/automne4-V4_0_2-install/install.php was not found on this server.
Alors que l’URL suivante fonctionne:http://localhost:8888/MAMP/, là, j’ai accès à la configuration de PHP, MySQL, etc.
Avec cela bien sûr je ne peux pas installer mon application Web (automne).
Merci de me guider, est-ce no scrpit qui chicane ou pas…
Salut Dédé, je n’utilise que rarement MAMP, mais je pense que ton projet se trouve à l’adresse suivante -> http://localhost:8888/automne4-V4_0_2-install/install.php
Est-ce good ?
Merci, ton tuto est super! C’est le meilleur que j’ai trouvé sur internet!
Merci ;-)
Merci, tutorial clair et bien fait.
Bonsoir, j’en suis à la « validation » de l’étape 4. Je pensais avoir tout fait correctement mais apparemment non car j’ai le message d’erreur suivant :
« Not Found
The requested URL /phpMyAdmin/index.php was not found on this server. »
Merci de votre aide.
Par défaut dans Apache la configuration est Il faut donc mettre ton dossier phpMyAdmin dans le dossier Documents qui se trouve dans le dossier WebServer qui se trouve lui même dans le dossier Library