Et la solution est très simple, puisqu’il suffit de compiler une nouvelle fois PHP depuis ses sources en indiquant le nouveau chemin d’accès à la bibliothèque concernée lors de l’appel à ./configure.

En effet, pour ceux qui ne le sauraient pas, une compilation classique de PHP sous UNIX se fait en trois étapes :

  1. Un appel à ./configure avec diverses options permettant de définir les chemins d’accès aux fichiers ou répertoires nécessaires à la compilation, l’installation et l’exécution de PHP ainsi que les extensions qui doivent être intégrées dans les binaires créés (au passage, ./configure --help est l’ami de ceux qui se lancent dans l'exercice pour la première fois) et qui génère le fichier Makefile correspondant ;
  2. Un appel à make qui utilise le fichier Makefile précédemment généré qui génère les différends binaires ;
  3. Un appel à make install qui provoque l’installation des binaires créés à l’étape précédente ainsi que celle de la documentation et des différents utilitaires associés à PHP (comme phpize qui permet de configurer les extensions PHP pour la version de PHP qui vient d’être installée).

Sauf que je fais une configuration très spécifique de PHP lorsque je le compile et mon appel à `./configure` est donc relativement complexe.

Lorsque je dois compiler PHP, j’utilise donc systématiquement la commande php -i | grep configure pour récupérer la commande configure qui a été utilisée pour compiler la version de PHP actuellement installée sur mon poste.

Mais aujourd’hui, cette version était inutilisable et que PHP n’était donc plus en mesure de me fournir la commande configure que j’avais utilisé pour le compiler.

Mais heureusement pour moi, configure génère dans le répertoire contenant les sources à compiler un journal nommé ./config.log qui contient entre autres le détail du dernier appel à configure.

J’ai donc pu compiler PHP sans devoir reconstruire de zéro la commande suivante :

./configure --disable-all --sysconfdir=/private/etc --enable-xml --enable-cli --with-config-file-path=/etc --enable-type --with-libxml-dir=/usr --with-pare-regex --enable-pear --enable-hash --enable-json --enable-libxml --enable-session --enable-dom --enable-sockets --enable-tokenizer --enable-simpleml --enable-soap --enable-posix --enable-pcntl --with-libedit --enable-filter --with-sqlite3 --enable-mbstring --with-mysqli=mysqlnd --with-curl --with-openssl --with-ldap --enable-xmlwriter --enable-pod --with-pod-mysql --enable-into --with-apxs2 --with-icu-dir=/usr/local/Cellar/icu4c/56.1 --with-glib --with-crypt --enablte-opcache --enable-phpdbg