J'ai réalisé qu'il y avait une correspondance manquante entre la version PHP rapportée par phpinfo()
et php -v
(dans la CLI).
phpinfo(): 5.5.24
php -v: 5.6.9
Je travaille sur un Mac OS X 10.10 (Yosemite) et ai installé une bibliothèque (php-version
) pour essayer de gérer les versions PHP.
Il me rapporte 3 versions différentes installées sur mon ordinateur portable:
5.4.41
5.5.25
* 5.6.9
Je souhaite définir la même version de PHP dans Apache et dans la CLI.
Comment savoir quelle version de PHP est utilisée?
J'ai essayé d'écrire cette ligne dans mon httpd.conf
:
LoadModule php5_module /usr/local/opt/php56/libexec/Apache2/libphp5.so
Ensuite:
Sudo apachectl restart
Mais tout cela ne résout pas le problème… Dans mon PHP info j'ai encore: 5.5.24
Quelques problèmes différents sont tous cachés sous le concept de confusion de la version de PHP. Nous allons donc essayer de les traiter le plus clairement possible. D'abord ceci:
J'ai réalisé qu'il y avait une correspondance manquante entre la version PHP rapportée par
phpinfo()
etphp -v
(dans la CLI).phpinfo(): 5.5.24 php -v: 5.6.9
Comme je l'explique dans la réponse à cette autre question ici , ne paniquez pas! Si vous êtes préoccupé par la version PHP utilisée par votre serveur Apache, la sortie de phpinfo()
correspond toujours à ce à quoi vous devriez faire attention. Le module Apache PHP et le binaire en ligne de commande PHP sont deux choses différentes qui ne se gênent pas.
Faites attention à la sortie de phpinfo()
si vous souhaitez configurer la version correcte du module PHP dans Apache.
Cela dit, vous semblez toujours avoir du mal à charger le bon module PHP dans Apache:
J'ai essayé d'écrire cette ligne dans mon
httpd.conf
:LoadModule php5_module /usr/local/opt/php56/libexec/Apache2/libphp5.so
Bien que ce que vous avez techniquement semble être correct, la seule raison pour laquelle cela ne fonctionne pas est qu’il existe une autre directive LoadModule php5_module
dans les fichiers de configuration Apache qui remplace la valeur que vous définissez cette ligne.
Je recommanderais de regarder dans le httpd.conf
- que je suppose se trouve ici /etc/Apache2/httpd.conf
- et de voir s'il existe peut-être un autre LoadModule php5_module
que vous avez manqué ou que vous n'avez pas remarqué lors de la modification de ce fichier. En regardant mon fichier équivalent sous Mac OS X 10.9.5, je vois que la ligne est commentée - car je n’utilise pas les configurations Apache/PHP de Mac OS X - et lit quelque chose comme ceci:
#LoadModule php5_module libexec/Apache2/libphp5.so
Bien sûr, dans votre cas, cela ne serait pas commenté. Plus de détails sur la configuration d’Apache et de PHP pour le développement Web sont disponibles sur ce site .
Cela dit, je ne sais pas ce que vous essayez de faire, mais si vous faites du développement Web sur un système Mac OS X, vous devriez sérieusement envisager d’utiliser MAMP au lieu de pirater la pile Web principale de Mac OS X pour que les choses fonctionnent.
L’avantage de MAMP est qu’il s’agit d’un équivalent Mac OS X extrêmement productif d’une pile LAMP. Et comme il est conçu pour le développement Web dans le monde réel, tous les modules et toutes les configurations sont configurés exactement comme il se doit.
Le principal problème d'Apache et de PHP sous Mac OS X est que le logiciel est généralement obsolète, qu'il est difficile de configurer/Tweak et de le gérer et qu'il est difficile de déboguer lorsque de telles choses se produisent. Et si une nouvelle mise à jour de Mac OS X efface vos paramètres Apache et PHP soigneusement configurés? Vous êtes de retour à la case départ.
J'ai trouvé la solution à mon problème. Après avoir édité /etc/Apache2/httpd.conf
, j'avais l'habitude de redémarrer Apache en utilisant:
Sudo apachectl restart
Pour une raison quelconque, en utilisant cette commande, Apache n’allait pas récupérer les mises à jour dans le httpd.conf
et charger l’ancienne configuration.
En utilisant:
Sudo apachectl -k stop
Sudo apachectl -k start
Effectuez une sorte de redémarrage à froid de tous les services et lisez également les mises à jour dans le fichier de configuration, puis lisez le nouveau chemin d'accès pour le php5_module
:
/usr/local/opt/php56/libexec/Apache2/libphp5.so
Merci également @ JakeGould pour son explication .