• []
  • []
  •  
  • del.icio.us 
  •  
  • Yahoo!֥åޡϿ 

PECL - The PHP Extension Community Library

PHP 求人 募集 Symfony CakePHP Smarty Ruby on Rails

PECL 概要

PHPには標準でたくさんの関数を持っているが、
それでも足りない機能がたくさんある。
その不足をPHPソースコードでカバーしようと言う試みがPEARなら、
もっと低レベルでカバーしようと言う試みがPECLです。

PECLとは平たく言うと
PHPに新たな関数を自前で創ってしまおうプロジェクト」
PEARよりはインストール難易度は高いですが、
インストールしてしまえばかなり強力かつ高速なライブラリとして利用できます。

代表的なのが
PECL::imagick
http://pecl.php.net/package/imagick
ImageMagickGraphicsMagickを取り扱う強力な関数。
execよりも安定して動くし、
動作も段違いなので、
使っているのならこちらを導入を検討すると良い。

PECL インストール

基本的にPEARライブラリのインストーラと共有しているので、
PEARを先にインストールしている必要がある。 インストールが完了していると、

pecl

というコマンドが出来ているので
それを使ってインストールを行う。

imagickを組み込む場合
pecl install -f imagick

さくらインターネットなどのレンタルサーバにインストールしたい場合はこちら→レンタルサーバ

コンパイラのついていないWindowsでは、
コンパイル済みのモジュールをダウンロードして使う。
下記のサイトへ行き必要なモジュールをダウンロードして、
extディレクトリに加えよう。
http://pecl4win.php.net/

PECL ハマリポイント

PHPのバージョンアップ

PHPをバージョンアップした時に、
cliがこんなエラーを出したことはないだろうか?

  $ php -v
  PHP Warning:  PHP Startup: PDO: Unable to initialize module
  Module compiled with module API=20050922, debug=0, thread-safety=0
  PHP    compiled with module API=20060613, debug=0, thread-safety=0
  These options need to match
   in Unknown on line 0
  PHP Warning:  PHP Startup: pdo_mysql: Unable to initialize module
  Module compiled with module API=20050922, debug=0, thread-safety=0
  PHP    compiled with module API=20060613, debug=0, thread-safety=0
  These options need to match
   in Unknown on line 0
  PHP Warning:  PHP Startup: pdo_sqlite: Unable to initialize module
  Module compiled with module API=20050922, debug=0, thread-safety=0
  PHP    compiled with module API=20060613, debug=0, thread-safety=0
  These options need to match
   in Unknown on line 0
  PHP 5.2.3 (cli) (built: Jun  1 2007 19:48:44) 
  Copyright (c) 1997-2007 The PHP Group
  Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

これはextensionディレクトリの指定に問題がある。
例えばphp.iniの設定を以下のようにしていたとする。

extension_dir=/usr/local/lib/php/extensions/no-debug-non-zts-20050922

PHPをコンパイルした時に、
新たにextensionディレクトリが作成されている事がある。
これは特別Changing.logとかには載らないようで、
コンパイル後、確認するしかない。
ディレクトリ末尾の

no-debug-non-zts-20050922

がバージョンによって異なってくるわけだ。

versiondirectory
5.1.6no-debug-non-zts-20050922
5.2.3no-debug-non-zts-20060613

extension_dirを最新の物に指定し直し、 PECLモジュールをインストールし直そう。

extension_dir=/usr/local/lib/php/extensions/no-debug-non-zts-20060613

pecl.txt · 最終更新: 2007/09/24 00:58 by dozo