Hoje me deparei com um problema, em um servidor está instalado a extensão json para o php e em outro servidor não está, Um dos servidores é Fedora e o outro é CentOS.
Solução: pecl (PHP Extension Community Library) e pear (PHP Extension and Application Repository).
Observação: A versão 5.2 do PHP já vem por padrão com a extensão json.
Passo 1: Dependências do sistema
Precisamos verificar se alguns pacotes utilizados para compilar a extensão json para o php estão instalados, um deles é o gcc e o outro o make, como mostro abaixo:
# rpm -qa |grep gcc
gcc-4.1.2-42.el5
libgcc-4.1.2-42.el5
libgcc-4.1.2-42.el5
# rpm -qa |grep --color make
imake-1.0.2-3
make-3.81-3.el5
automake-1.9.6-2.1
Passo 2: Dependências do PHP
Precisamos verificar se alguns pacotes do php estão instalados, um deles é o php-devel, como mostro abaixo:
# rpm -qa |grep php-devel
php-devel-5.1.6-27.el5_5.3
Passo 3: Download da extensão
Agora que já resolvemos os problemas com as dependências, precisamos baixar a extensão para o php, procedendo da seguinte forma:
# pecl download json-1.2.1.tgz
Passo 4: Instalação da extensão
Agora estamos quase lá, precisamos realizar a instalação da extensão baixada, devemos utilizar o comando abaixo com o parâmetro install seguido da extensão.
# pear install json-1.2.1.tgz
Passo 5: Configurando o PHP
Agora que já instalamos a extensão em nosso sistema, precisamos criar a configuração para carregar a a extensão json com o php, devemos criar um arquivo chamado json.ini, caso ele não exista na pasta /etc/php.d/, como é mostrado abaixo:
# vim /etc/php.d/json.ini
Com o arquivo aberto para edição precisamos colocar uma linha neste arquivo, como a mostrada logo abaixo:
extension=json.so
Passo 6: Reiniciar o Apache
Neste momento o apache ainda esta com as configurações antigas do php.ini e não é isso o que queremos, precisamos reiniciar o servidor Apache para que ele carregue as novas configurações.
Veremos três métodos de reiniciar o apache, a primeira pelo comando service, a segunda pelo script /etc/init.d/httpd e o terceiro pelo apachectl.
Método 1:
# service httpd restart
Método 2:
# /etc/init.d/httpd restart
Método 3:
# apachectl -k restart
Passo 7: phpinfo()
Agora que o apache já foi reiniciado, podemos verificar se o php já está com a extensão carregada.
Vamos criar um arquivo com o nome arquivo.php e dentro deste arquivo utilizaremos a função phpinfo do php. Nosso arquivo deve ficar como mostrado abaixo:
<?php
phpinfo();
?>
Passo 8: Verificar se a extensão está carregada
No passo 7 criamos o arquivo para nos ajudar a verificar se a extensão foi carregada e habilitada, agora vamos verificar se essa extensão foi instalada e configurada corretamente.
Temos duas formas para executar este teste, um é pela linha de comando e o outro é pelo browser, vejamos a primeira forma, via linha de comando:
# php /var/www/html/phpinfo.php | grep json
/etc/php.d/json.ini,
json
json support => enabled
json version => 1.2.1
A outra maneira é acessar a máquina pelo browser, informando o endereço do "arquivo.php", http://localhost/arquivo.php, na saída teremos que pesquisar a string json e deveremos ver a saída como apresentada abaixo:
Pronto! Temos nosso php com a extensão json instalada, carregada e habilitada para utilização de nossos programas em php.
Fico por aqui e até a próxima.