プロジェクト

全般

プロフィール

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とセットで導入しておくと良いかもしれません。大変面倒ですが。
     

 

戻る