2 votes

Pourquoi mes extensions php sont-elles compilées pour PHP4 et non pour PHP5 ?

J'essaie de compiler memcache pour Dreamhost PS.

La bibliothèque est créée mais n'apparaît pas dans phpinfo. Les journaux d'Apache indiquent que la bibliothèque n'est pas chargée car "undefined symbol : OnUpdateInt dans Inconnu sur la ligne 0".

J'ai lu que OnUpdateInt est défini en PHP4 et que OnUpdateLong est défini en PHP5. Le problème est donc que la configuration de la compilation pense qu'elle doit compiler avec PHP4.

La version SAPI de PHP est 5.2.10 (indiquée dans phpinfo). La version CLI est 4.4.9 (indiquée par php -v).

Ma question : Comment faire pour que la compilation des bibliothèques soit compatible avec le PHP5 de mon serveur et non le php4.

2voto

user10822 Points 141

Il semble que vous vouliez mettre à jour votre PATH pour "choisir" PHP 5 au lieu de PHP 4. Le processus de compilation utilise le PHP qu'il trouve dans votre chemin. Pour trouver votre installation actuelle :

which php

PHP info devrait indiquer le chemin vers la version de PHP 5. Pour le tester, vous pouvez alors exécuter php -v avec le chemin complet de la version de PHP 5 (par exemple, s'il se trouve dans le répertoire /usr/local/bin vous pouvez utiliser /usr/local/bin/php -v ). Vous pouvez alors mettre à jour votre chemin :

# for bash
export PATH=/usr/local/bin:$PATH

Entonces php -v devrait atteindre la version mise à jour après cela.

S'ils sont tous deux installés "côte à côte" (par exemple un php y php5 ), vous devrez utiliser une option configure (en supposant que vous compilez memcached à partir des sources). Je ne suis pas familier avec la façon dont Dreamhost a configuré cela.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X