CentOS 5.x php 5.1.6 で json を使う
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モジュールがロードされているか確認してみてください。