Nous exécutons CentOS 6 et PHP 5.3.8 (en tant que module Apache) qui devrait avoir JSON comme élément central (on me l’a dit). En regardant # php -i
sur la ligne de commande, je peux voir sous Configure Command '--enable-json=shared'
… génial!
Cependant, en regardant php_info () sur une page Web, Configure Command montre '--disable-json'
.
Aucun problème je pensais, je vais juste l’installer en utilisant pecl:
# yum update php # yum install php-pear # yum install gcc # pecl install json # service httpd restart
Réussite, ça a du faire, j’ai pensé. Cependant, php -m montre:
Avertissement de PHP: Démarrage de PHP: impossible de charger la bibliothèque dynamic ‘/usr/lib64/php/modules/json.so’ – /usr/lib64/php/modules/json.so: symbole non défini: ZVAL_DELREF dans Unknown sur la ligne 0
Excuses si c’est une question idiote mais est-ce que quelqu’un sait ce qui se passe ici et pourriez-vous m’indiquer comment corriger ce problème pour que JSON commence à fonctionner?
Merci beaucoup
Je pensais suivre la solution. L’installation de PECL semblait entrer en conflit avec PHP 5.3.8. Après quelques recherches et quelques conseils, j’ai eu l’idée de:
# yum remove php # yum install php
Cependant, après d’autres conseils, nous avons plutôt:
# yumdownloader php-common # rpm -Uvh --force php-common*.rpm # service httpd reload # rm php-common*.rpm
Cela a fait l’affaire et JSON fonctionne maintenant à nouveau. J’espère que ceci aide quelqu’un d’autre.
Merci
télécharger json-1.2.1.tgz
FROM PECL
enter code heretar zxvf json-1.2.1.tgz cd json-1.2.1 vi JSON_parser.c
Trouver ZVAL_DELREF
remplacer à Z_DELREF_P
(vous pouvez trouver à 3 place) et enregistrer le fichier
alors
phpize ./configure make make install
Vous pouvez obtenir votre json.so n’oubliez pas d’append à php.ini
Créez tmp et var / tmp exec
mount -v -o remount,exec /tmp
mount -v -o remount,exec /var/tmp
Pas aller de l’avant et installer JSON
pecl install json
Et enfin, faites de nouveau tmp et var / tmp noexec
mount -v -o remount,noexec /tmp
mount -v -o remount,noexec /var/tmp