Question

We're running CentOS 6 and PHP 5.3.8 (as an apache module) which should have JSON as part of it's core (I'm told). Looking at # php -i on the command line I can see under Configure Command '--enable-json=shared' ... great!

However, looking at php_info() on a web page Configure Command shows '--disable-json'.

No problem I thought, I'll just install it using pecl:

# yum update php
# yum install php-pear
# yum install gcc
# pecl install json
# service httpd restart

Success, that aught to do it I thought. However php -m shows:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/json.so' - /usr/lib64/php/modules/json.so: undefined symbol: ZVAL_DELREF in Unknown on line 0

Apologies if this is a silly question but does anyone know what's going on here and could you point me in the right direction on how to fix this so that JSON starts working?

Many thanks

Was it helpful?

Solution

Thought I'd follow up with the solution. The PECL installation seemed to conflict with PHP 5.3.8 so after a bit of research and some advice I toyed with the idea of:

# yum remove php
# yum install php

However, after further advice instead went with:

# yumdownloader php-common
# rpm -Uvh --force php-common*.rpm
# service httpd reload
# rm php-common*.rpm

This did the trick and JSON is now working again. Hope this helps someone else.

Thanks

OTHER TIPS

download 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

Find ZVAL_DELREF replace to Z_DELREF_P (You can Find in 3 place) And Save file

Then

phpize
./configure
make
make install

You can get your json.so don't forget add to php.ini

  1. Login to SSH
  2. Make tmp and var/tmp exec

    mount -v -o remount,exec /tmp
    mount -v -o remount,exec /var/tmp

  3. No go ahead and install JSON

    pecl install json

  4. And finally, make tmp and var/tmp noexec again

    mount -v -o remount,noexec /tmp
    mount -v -o remount,noexec /var/tmp

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top