XREAでPEARをインストールするのにハマッタときのメモ
携帯サイトを作るにあたり、PEARのNet_UserAgent_Mobileが使いたいなと思い、XREAにPEARをインストールしようとしたところでおおいにハマッタ。
めちゃくちゃ時間がかかったが結論としては、
「XREAではすごく簡単にPEARをインストールして使うことができる」
ということがわかった。
ただ、そんなことはただの一言も、どこにも説明されてなかったのでそこにたどり着くまでが・・、時間かかったなあ。。
前提
使いたいものがすでに入ってないか確認しよう♪
まず、XREAにはある程度の標準的なPEARライブラリはすでにインストール済みのようだ。
classcheck.php
<?php require_once 'Mail.php'; var_dump(class_exists('Mail')); ?>
たとえば上のようなファイルをXREAの任意のフォルダにアップして確認すると、たぶん
bool(true)
となるはず。
これはXREAにPEARのMailライブラリがすでにインストール済みであるということ
(ていうかもし入ってなければ最初のrequire_onceの時点でエラーが発生する)。
自分が使いたいPEARのライブラリがすでにインストール済みでないか、まずはこんな要領で確認してみるといいでしょう。
XREAのphpはセーフモード(safe mode)で動いている、ということを知っておこう。
わりと有名な話っぽいですが、XREAのphpはセーフモードで動いているため、いろいろと動作に制限がかかっています。
この制限にひっかかって動くはずなのに動かない!!となってハマル場合がよくありそうです(ていうかボクです)。
セーフモードでどんな制限がされるのか、ということについてはマニュアル参照↓
とくに特別な理由がなければphp5のサーバーを使おう。
php4はサポート終了するよ宣言もされたことだし、
php5で使うほうがPEARは安定してそうだし、
よほどphp4じゃなきゃダメなんだ!
という場合以外はphp5のサーバーを利用したほうがいいでしょう(無駄にハマルのはさけよう)。
PEARのインストール
今回やるのはこれです↓まずはマニュアルを眺めましょう。
PEAR :: Manual :: 共有ホストでの PEAR のローカルコピーのインストール
すでにインストール済みの共有PEARはそのままに、自分のユーザディレクトリ内にローカルコピーを作成して、さらに自分が欲しいライブラリを追加するやり方です。
具体的手順としては、
「XREAのサーバーにsshでログインしてちゃちゃっとコマンド打ち込んで、さっとインストールを終わらせる」
という感じになります。
注意点
ここで注意したいことがあります、
「PEARをインストールするディレクトリをpublic_htmlより外側の階層にしてしまうと、phpのセーフモードの制限にひっかかってうまくincludeできない!!」
たとえば「/virtual/自分のユーザ名/pear」みたいなとこにインストールしちゃうと面倒なことになります。
まあ、これをやってしまったとしても、
PHPをCGIとして動かす方法について - XREA&CORE SUPPORT BOARD
と紹介されているようにphpをcgiとして実行すればセーフモードの制限にひっかからずに動かすことができます。
でもセーフモードじゃなくしちゃうのもなんですよね、動きも重くなるらしいし。
なのでpublic_html直下にPEARをインストールしましょう!
public_html直下にPEARのディレクトリがあるのもそれはそれでどうかと思う、という感じもするけど、まあ前述の問題をふまえてどちらのやり方を選ぶか、という感じですね。
ボクはpublic_html直下にインストールするほうを選びました。
sshでxreaにログイン
ここからはxreaのサーバーにsshでログインして操作します。
まず、自分のXREAサーバーの管理画面で「ホスト情報登録」をする。
↓
puttyなどのsshクライアントでログインする。
という感じで自分のXREAサーバーにsshでログインしてください。
ちなみにボクは
を使っています。
コマンドを打ち込む。
ここからsshでコマンドを打ち込んでいきます。
(sshでの操作は自己責任で!)
すべてユーザディレクトリ直下での作業です(つまりログインしたまんまの位置)。
↓のページを参考にしました。
pear config-create /virtual/自分のユーザ名/public_html .pearrc
まずこうやって打ち込むことでpearの自分用の設定ファイル(.pearrc)が生成されます(ユーザディレクトリ直下にできる)。上のように打ち込むことでpublic_htmlの下にpearディレクトリを作成する設定になります。
で上の参考ページではいくつか手順書いてありますが、今のXREAなら次に
pear install -o PEAR
とやるとひととおりPEARのディレクトリ・ファイル群がpublic_htmlの下にインストールされます。
あとは自分のインストールしたいPEARパッケージを、
pear install XML_RPC
といった要領でどんどんインストールできます(依存関係は自動で解決してくれます)。
パスを通す。
自分でインストールしたPEARのライブラリを使うために、
/virtual/自分のユーザ名/public_html/pear/php
にパスを通します(phpディレクトリ下に実際のライブラリがある)。
.htaccessを使う方法が一番楽でしょう。
php_value include_path ".:/usr/local/lib/php:/virtual/自分のユーザ名/public_html/pear/php"
ちなみに
.:/usr/local/lib/php
の部分は元から設定されていたinclude_pathを書いておきます(これはボクの場合こうだったということ)。
phpinfoなどで念のため確認することをオススメします。
これをPEARライブラリを使うディレクトリにおいておけば、その中のファイルなら
<?php require_once 'Mail.php'; ?>
という形でPEARライブラリを呼び出せます。
(20080724追記)
coreserverではphp.iniを設置できるようになっており、これらの値はphp.iniに書いておかないと反映されないみたいです。
php.ini記述例
include_path = ".:/usr/local/lib/php:/virtual/自分のユーザ名/public_html/pear/php"
最後にちゃんとPEARライブラリを呼び出せるか、最初のほうで紹介したclasscheck.phpで確認してみるといいでしょう。
ふう、手順は簡単だけど、ここまでたどり着くのにはかなり時間かかりました。
そしてここまでたどりつけたのは同様の問題に取り組んだ先人のみなさまの記録のおかげです、どうもありがとうございました。
今回は以下のページも参考にしました。
参考ページ
XREAにPEARをインストールできた - うるめねっと技研 - Linux派 -
point of view point: XREAでPEARを使う
minor tranquilizer » XREAでPEARを使う
Image_GraphとIPAフォントの動作確認 | Sarabande
Hawk's Laboratory » PEAR チャネルサーバを立ててみた
プログラムのプ ブログ » Blog Archive » xreaにpearをインストール
PHP5.0/6.PEARのインストール - Ground-SunLight
XREA で WordPress ファイルアップロード機能を利用する - Numb.