Ngihik Centos: JSON di PHP 5.1.x

Hari ini dipasrahi ngihik server lagi. Kali ini servernya pakai Centos 5.9 dan untungnya nggak ngihik dari awal, hanya mberesi masalah PHP saja. Masalahnya adalah: PHP Fatal error:  Call to undefined function json_encode(), entah apa maksudnya itu yang saya tahu ya ada masalah dengan fungsi json_decode().

Awalnya saya pikir ada paket php-json di Centos, saya coba cari ternyata ndak nemu paket tersebut. Cari-cari info di gugel ternyata fungsi json_decode() itu ada di PHP versi 5.2, sedangkan versi PHP yang terpasang di server adalah versi 5.1.6. Waa.. jadi kudu upgrade PHP atau build ekstensi PHP json biar nggak bermasalah lagi.

Ada dua solusi dan saya pilih solusi yang kedua, yaitu pasang (build) ekstensi json tanpa upgrade PHP. Memasang ekstensi json ternyata mudah, tinggal pasang: gcc, make, php-pear dan php-devel selanjutnya beri perintah: # pecl install json. Jika build-nya berhasil, maka urusan pemasangan json sudah beres.

Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).

running: make INSTALL_ROOT="/var/tmp/pear-build-root/install-json-1.2.1" install
Installing shared extensions:     /var/tmp/pear-build-root/install-json-1.2.1/usr/lib64/php/modules/
running: find "/var/tmp/pear-build-root/install-json-1.2.1" -ls
2839398    4 drwxr-xr-x   3 root     root         4096 Sep 16 11:13 /var/tmp/pear-build-root/install-json-1.2.1
2839434    4 drwxr-xr-x   3 root     root         4096 Sep 16 11:13 /var/tmp/pear-build-root/install-json-1.2.1/usr
2839435    4 drwxr-xr-x   3 root     root         4096 Sep 16 11:13 /var/tmp/pear-build-root/install-json-1.2.1/usr/lib64
2839436    4 drwxr-xr-x   3 root     root         4096 Sep 16 11:13 /var/tmp/pear-build-root/install-json-1.2.1/usr/lib64/php
2839437    4 drwxr-xr-x   2 root     root         4096 Sep 16 11:13 /var/tmp/pear-build-root/install-json-1.2.1/usr/lib64/php/modules
2839433   96 -rwxr-xr-x   1 root     root        92886 Sep 16 11:13 /var/tmp/pear-build-root/install-json-1.2.1/usr/lib64/php/modules/json.so

Build process completed successfully
Installing '/var/tmp/pear-build-root/install-json-1.2.1//usr/lib64/php/modules/json.so'
install ok: channel://pear.php.net/json-1.2.1

Sekarang tinggal nambahin extension=json.so di /etc/php.ini. Menurut dokumentasi (komentar) di php.ini, dynamic extension di Centos akan di-load via berkas <extension>.ini yang terletak /etc/php.d/. Jadi… perlu dibuatkan berkas json.ini biar json bisa di-load:

; file: /etc/php.d/json.ini
; Enable json extension module
extension=json.so

Sebenernya tanpa perlu buat berkas json.ini di /etc/php.d/ bisa juga sih, cukup tambah extension=json.so di /etc/php.ini. Tapi biar lebih terstruktur saya ikuti yang tertulis di php.ini saja.

Woke! Setelah restart httpd sekarang json sudah enabled!


Matur tengkiyu buat yang nulis http://redacacia.me/2011/07/29/fixing-fatal-error-call-to-undefined-function-json_decode/. Sekarang tinggal laporan kalau sudah beres. Semoga ndak ada apa-apa (lagi) 😀

=-=-=-=-=
Powered by Blogilo

One thought on “Ngihik Centos: JSON di PHP 5.1.x

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s