091029-cake-pear

先日、CakePHPを使用して開発をしていた時にPEARを使うことにしました。PEARはPHP用のライブラリで数多くの便利な拡張ライブラリが提供されています。人によっては使うべきではないようなことを言う人もいますが、それでもあれだけの数のライブラリが無償で提供されているのは非常に魅力的です。

通常、PEARをLinux環境で使用する場合は

pear install (パッケージ名)

でそのサーバ内にインストールを行うのですが、レンタルサーバ(ホスティングサービス)などの場合、初めから全てのPEARライブラリがインストールされていることはあまりありません。だからと言ってユーザが自らインストールをすることも不可能。

そこでPEARをWeb上からダウンロードして任意のディレクトリにコピーしてもPHPで書かれたスクリプトプログラムなので使用できます。但し、この場合、階層構造が異なるためWarningなどのエラーで動かない場合があります。ライブらいないのincludeされているパスを一つずつ直すことも可能かもしれませんが、ライブラリを改変することはあまり好ましくありません(バージョンアップを行った時は再度改変が必要)

そこで、PEARのソースを改変することもなく任意のディレクトリでも使用できる方法を下記に明記しておきます。知っている人にとっては当たり前かもしれませんが、その様な方はスルーしてください。

任意のディレクトリでPEARのライブラリを使用する方法はApacheの.htaccessファイルで対応する方法です。レンタルサーバで.htaccessが使用できない場合はこの方法は使用できないのですが、.htaccessが使える方は非常に簡単です。方法は.htaccessファイル内に

<IfModule mod_php5.c>
php_value include_path “.:/(rootからPEARまでのパス名)”
</IfModule>

と書くだけです。例えば下記のようなCakePHPのvendorsディレクトリにPEARのディレクトリがあるとします。

/home/(ユーザー名)/CakePHP/app/vendors/

そうした場合は/home/(ユーザー名)/CakePHP/app/.htaccessファイルに

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
<IfModule mod_php5.c>
php_value include_path “.:/home/(ユーザー名)/CakePHP/app/vendors/PEAR/”
</IfModule>

と赤字で書かれた部分を追加するだけです。これでPEARのライブラリ内にあるパスを変更しなくても使用できます。自分の備忘録も兼ねて書いておきます。

via : PEARをレンタルサーバーにインストールする方法 – WEB2.0的ラボ

PEAR―PHPライブラリ

著者/訳者:佐久嶋 ひろみ

出版社:九天社( 2007-12 )

定価:

Amazon価格:¥ 9,227

単行本 ( 399 ページ )

ISBN-10 : 4861672104

ISBN-13 : 9784861672101