Apache, MySQL et PHP sous Mac OS X Mavericks (Dernière mise à jour : 03/08/2014 17:10:34)

La dernière version d'OS X est disponible depuis quelques jours et comme je préfère faire une installation plutôt qu'une mise à jour d'une version d'OS X une autre, j'ai été obligé de reconfigurer Apache et PHP sur mon Macbook Pro.

Rien de bien compliqué de toute façon mais si jamais ça peut servir à certains d'entre vous, c'est avec plaisir que je partage.

Alors, commençons.

Tout d'abord, il vous faut ouvrir un Terminal.

De base, Apache n'est pas lancé ("clean install") donc inutile de l'arrêter. Nous allons donc modifier les différents paramètres d'Apache :
sudo nano /private/etc/apache2/httpd.conf

Première modification : charger le module PHP avec Apache en enlevant le "#" en début de ligne :
#LoadModule php5_module libexec/apache2/libphp5.so

Etant le seul utilisateur de mon Mac et le dossier racine pour mes développements sera dans mon répertoire personnel, je vais donc modifier l'utilisateur et le groupe utilisés par Apache :
User benjamin
Group staff


J'en profite également pour mettre (décommentez en enlevant le # devant la ligne si nécessaire) :
ServerAdmin root@localhost
et
ServerName localhost:80

Il faut ensuite changer le répertoire de base d'Apache. J'ai changé ceci :
DocumentRoot "/Library/WebServer/Documents"
pour :
DocumentRoot "/Users/benjamin/www"
Adaptez à votre convenance. Ce n'est pas ce qu'il y a de mieux à faire mais je suis le seul utilisateur de mon mac donc ça me ne posera aucun problème.

On va donc adapter la configuration de cette directive quelques lignes plus bas.
Changez :
Directory "/Library/WebServer/Documents"
pour :
Directory "/Users/benjamin/www"

Pour que ce soit plus simple, on va également autoriser les changements de configuration via un fichier .htaccess.
Modifiez donc le :
AllowOverride None
par :
AllowOverride All

On souhaite travailler avec des pages en PHP. Il peut être utile de configurer les fichiers "index.php" comme des documents à afficher en priorité.
Il faut donc modifier :
DirectoryIndex index.html
par :
DirectoryIndex index.htm index.html index.php

J'ai pris la liberté de mettre "index.htm" et "index.html" en premier et de terminer par "index.php". A vous d'adapter l'ordre suivant votre préférence.

Modifications terminées pour Apache. On le relance :
sudo apachectl start

On vérifie qu'Apache tourne via http://localhost

Afin de s'assurer maintenant que PHP est bien interprété, on va créer un fichier index.php avec un phpinfo().
Dans mon cas, je vais créer le fichier index.php dans /Users/benjamin/www avec ceci :
<?php phpinfo(); ?>

http://localhost/index.php me donne bien toutes les informations à propos de mon environnement Apache/PHP et surtout la version de PHP :
PHP Version 5.4.17

En regardant de plus près votre phpinfo(), vous vous apercevrez sûrement qu'il y a un message d'erreur concernant le fuseau horaire utilisé.
Nous allons donc corriger ce problème.

Voici la démarche. Dans Terminal toujours, saisissez ceci :
sudo cp /private/etc/php.ini.default /private/etc/php.ini
sudo nano /private/etc/php.ini

On copie le fichier de configuration d'origine de PHP pour en créer un (ça permet de créer une copie de sauvegarde si jamais on se trompe).

Nous sommes dans un environnement de développement, on va donc afficher les erreurs. Trouvez la ligne
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
et changez-la pour
error_reporting = E_ALL

Nous allons également en profiter pour passer le "display_errors" de "Off" à "On" et le "display_startup_errors" de "Off" à "On" aussi. Pour aller plus vite, vous pouvez rechercher avec Crtl + w dans nano.

Ensuite, trouvez la ligne :
;date.timezone =
et modifiez-la par :
date.timezone = Europe/Paris
Veillez à bien enlever le ";" en début ligne (équivaut à un commentaire et ne sera pas pris en compte sinon).


Modifications terminées, on enregistre le fichier php.ini (Ctrl + o dans Nano) et on relance Apache :
sudo apachectl restart

Histoire d'être sûr, on retourne voir notre phpinfo(). Le message d'avertissement n'est plus présent et on a bien :
Default timezone Europe/Paris
C'est tout bon.

Pour l'installation de MySQL, je ne m'attarde pas sur le sujet. C'est très simple, il suffit de télécharger le fichier DMG adéquat sur le site de MySQL (ici par exemple) et de faire l'installation comme n'importe quel autre logiciel.

Je mettrai sûrement à jour cet article ultérieurement pour m'attarder sur le sujet et pour la mise en place de PHPMyAdmin.

Mise à jour au 03 août 2014 : après une clean install en version 10.9.4 (téléchargement du fichier d'installation depuis le Mac App Store), il s'avère que PHP a été mis à jour vers la version 5.4.24 :
mbp:~ benjamin$ php -v
PHP 5.4.24 (cli) (built: Jan 19 2014 21:32:15)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies


J'en profite également pour apporter quelques modifications à l'article et plus particulièrement pour l'affichage des erreurs dans le php.ini et la modification concernant l'utilisateur et le groupe pour Apache.
27/10/2013 10:37:46

Partager cet article

Commentaires (Cliquer pour afficher)

comments powered by Disqus