CentOS 5.x php 5.1.6 で json を使う

php

CentOS 5.x, PHP 5.1.6, JSON

最近 Twitter Facebook Google+ などのAPIをウェブサイトでつかう事が多くなったと思います。私個人的には、JqueryのAjaxでJSONデータを扱うのがメインですが、時としてPHPにてJSONデータを扱いたいことがあります。その中で、RHEL5.x, CentOS 5.x では php のバージョンが5.2未満のため json関数がつかえない。( この執筆時点で、 CentOS 5.8 php 5.1.6 ) そこで pecl コマンドで jsonをインストールする方法を紹介します。

PECL(ピックル)とは

PECLは 「The PHP Extension Code Library」 の略で、PEARがPHPスクリプトで記述された拡張ライブラリで、PECLはC言語などで記述された拡張ライブラリで、C言語やC++言語ではコンパイル・ピルドします。 コンパイル・ビルドした拡張ライブラリはPHPの標準で含まれる拡張モジュールと同様の形式になっています。 PECLライブラリはPEARと同様にパッケージとよばれる単位で配布されています。

php json 関数

json_decode — JSON 文字列をデコードする
json_encode — 値を JSON 形式にして返す
json_last_error — 直近に発生したエラーを返す

※ このCentOS5.x環境下で json_decode json_encode 引数によって動作しないのを確認しています。

PECL Json インストール

PECLのビルド環境ができていない場合、必要パッケージをyumでインストール

必要パッケージを確認する
# yum list php-devel php-pear libtool gcc-c++

インストールされていないパッケージをインストール
# yum install libtool
# yum install gcc-c++

jsonのインストール(コンパイル・ビルド)
# pecl install json

phpモジュールの確認
find /usr/lib/php/ -name json.so 2> /dev/null

apache起動時にphpモジュールでjso.soをロードする設定
# vi /etc/php.d/json.ini
--> 以下を追記
extension=json.so

apache(httpd)の再起動
# /etc/init.d/httpd configtest
# /etc/init.d/httpd restart

phpinfo関数などでjson.soモジュールがロードされているか確認してみてください。

関連したページ

nexia access map
x