PHP-PEAR(pecl)のインストール。¶
- phpのプラグイン「php-pecl-****」というパッケージをダウンロードして
ビルドしてくれるツールです。
一部、rpmがないモジュールなどはpeclコマンドで導入することになります。
yumのPHP版と言ったところです。(ただしソースからビルドする)
依存パッケージインストール¶
- php-develのインストール
まず、php-develが必要。ここではremiで取得した5.2版を前提としているので、
下記から同様のパッケージを取得する。# wget http://rpms.famillecollet.com/enterprise/5/olds/x86_64/php-devel-5.2.17-1.el5.remi.x86_64.rpm # rpm -ivh php-devel-5.2.17-1.el5.remi.x86_64.rpm エラー: 依存性の欠如: autoconf は php-devel-5.2.17-1.el5.remi.x86_64 に必要とされています automake は php-devel-5.2.17-1.el5.remi.x86_64 に必要とされています
- 「autoconf」「automake」依存で怒られるので、先にインストールする。
その後、改めてphp-develをインストール。# yum install autoconf automake # rpm -ivh php-devel-5.2.17-1.el5.remi.x86_64.rpm
php-pear本体のインストール¶
- yumで標準リポジトリからインストール(phpがらみだがremiではない)
# yum install php-pear
- 動作確認(まだなにもないよ、とのこと)
# pecl list (no packages installed from channel pecl.php.net)
モジュールのインストール¶
- とりあえず例として、Roundcubeで断念した「Intl」を組み込むことにする。
# pecl install intl downloading intl-2.0.0.tgz ... Starting to download intl-2.0.0.tgz (145,979 bytes) ............done: 145,979 bytes package.xml version "2.1" is not supported, only 1.0 and 2.0 are supported. Download of "pecl/intl" succeeded, but it is not a valid package archive Error: cannot download "pecl/intl"
- 怒られた。どうもCentOS標準のPEARは古いらしい。更新する。
# pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.1 stable Console_Getopt 1.2 stable PEAR 1.4.9 stable ← XML_RPC 1.5.0 stable # pear upgrade --force PEAR # pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.10 stable Console_Getopt 1.3.1 stable PEAR 1.9.4 stable ← Structures_Graph 1.0.4 stable XML_RPC 1.5.0 stable XML_Util 1.2.1 stable
- 再び「Intl」のインストール。
# pecl install intl ・ ・コンパイル中 ・ ERROR: `/tmp/pear/temp/intl/configure --with-icu-dir=DEFAULT' failed
- やってることはソースからビルドなので、パッケージが足りないらしい。
# yum install icu libicu-devel # pecl install intl
- 今度は「gccに相当するコンパイラがない」って怒られた。そりゃそうだ
# yum install gcc gcc-c++ # pecl install intl Specify where ICU libraries and headers can be found [DEFAULT] :(そのままENTER) Build process completed successfully Installing '/usr/lib64/php/modules/intl.so' install ok: channel://pecl.php.net/intl-2.0.0 configuration option "php_ini" is not set to php.ini location You should add "extension=intl.so" to php.ini
- インストールは成功。注意書きとして「php.iniを編集してね!」とある。
「extension=intl.so」を追加する。# vi /etc/php.ini # ------------------------------------------------------ # 変更箇所のみ記載 ;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; (これらを追記するための項目がある) ;;;;;;;;;;;;;;;;;;;;;; extension=intl.so
- Apacheを再起動して、ライブラリをPHPに読み込み直す。
# service httpd restart
- 以上!
これらはimagemagick等の面倒なライブラリ導入でも使うので
PHPとセットで導入しておくと良いかもしれません。大変面倒ですが。
¶
¶