2011-09-06 21 views
7

¿Podría alguien aconsejar sobre cómo habilitar la función json_encode en PHP?Habilite json_encode en PHP

Tengo una instalación limpia de Centos 5.6 y acabo de instalar Virtualmin.

¿Alguien sabe los próximos pasos a seguir?

+0

¿Qué versión de PHP se ha instalado? – ace

+3

¿Cuál es el problema cuando llamas a la función json_encode()? ¿Qué tipo de mensaje de error recibes? –

Respuesta

8

Como en http://www.php.net/manual/en/json.requirements.php

Requisitos

No se necesita ninguna instalación para usar estas funciones; son parte del núcleo de PHP.

Sólo PHP >= 5.2.0

Editar: Sierra en un comment también esta

en RHEL5/CentOS5 añadir el repositorio EPEL (http://fedoraproject.org/wiki/EPEL).

Después de eso, la instalación es tan simple como:

sudo yum install php-pecl-json 

No sabe si esto se aplica a su pregunta, no tengo un servidor Centos ...

Para Ubuntu :

sudo aptitude install php5-json 
+0

Si ejecuto ese comando, vuelve diciendo, error php53-conflictos comunes con php-common. – Rob

+0

Como dije, no sé si realmente lo necesitas, es solo una pista. Por favor, actualice su pregunta con más detalles, ¿qué versión de php tiene (salida de 'php -v') y cuál es el resultado de' php -r 'echo json_encode (true);' '? – Fabio

+0

Lo siento, mi error - error de colegial. PHP 5.1 !! Todo ordenado ahora – Rob

2

En mi caso, me encontré con esta pregunta porque yo estaba re-compilación de PHP ./configure --disable-all y luego añadir de forma individual i n las extensiones que necesitaba Para el caso de json_encode(), esto está incluido en la extensión JSON. Para habilitar esta extensión, añadir la opción --enable-json a su comando configure, es decir:

./configure --disable-all --enable-json ...

(El "..." se refiere al hecho de que es posible que tenga otras extensiones puede que desee habilitar.)

En general, cualquier extensión de PHP puede habilitarse incluyendo la opción --with-extname o --enable-extname (donde "extname" es el nombre de la extensión). Puede averiguar cuál de estas dos sintaxis usar emitiendo ./configure --help | grep extname. Por supuesto, necesita tener la biblioteca en sí y tener que configurar la ruta donde se encuentra (dependiendo de la extensión y de si está en la ruta "predeterminada").

0

En CenotOS y otros sistemas * nix, incluso si tiene PHP compilado con --disable-json no se puede perder todo. Lo primero, por supuesto, es verificar la salida de su phpinfo(); y busque ocurrencias de json. Si ve json support habilitado entonces, por supuesto, tiene habilitada la extensión json, pero si no, vea si tiene /etc/php.d/json.ini enumerados en Archivos .ini adicionales analizados.Si lo hace, entonces este archivo se verá así:

; Habilite el módulo de extensión json
; extension = json.so

Descomente la segunda línea y reinicie su Apache. Si Apache comenzó sin errores, verifique phpinfo() nuevamente y vea si esto habilitó su extensión json. Si lo hizo, está listo, si no, puede que tenga que encontrar el directorio donde se encuentran sus extensiones de php y si ve json.so allí, edite la última línea para incluir la ruta completa a ese archivo y reinicia Apache de nuevo. Si no tiene el archivo json.so con sus otros archivos de extensión php, probablemente tendrá que volver a compilar esa extensión (no necesita volver a compilar todo su PHP, pero ciertamente podría, esta vez con - enable-json), y luego intente de nuevo.

Además, si no tiene archivos .ini adicionales analizados, puede intentar agregar esta extensión en su php.ini principal, que generalmente es /etc/php.ini.

0

Para php 7 hice esto para instalar JSON (después de horas de lucha):

yum install php70u-json 
service nginx restart 
service php-fpm restart 
Cuestiones relacionadas