いま間借りしているレンタルサーバXREA.COMでも、PEARを使いたい。
ってことで、インストールを試みた。

うるめねっと技研 – Linux派 –」というところで先人の知恵が入手できる。感謝。

実際、ほぼ書いてあるとおりにすればインストール完了。
1点、びびったのは、index.php というのがインストールディレクトリにあると上書きされる。自分の場合は本blogの index.php がモロ上書きされる場所にあったため、go-pear.cgi でインストールされる index.php は pear.php と名前をインストール画面で変えておく。

go-pear.cgiの実行の様子
go-pear_1 go-pear_2

次に、index.php(自分の場合はpear.php)を呼び出して、個々のPackageをインストールする。先人の教え通り、依存関係が解決できずちょっとウザイが、まあそんなに依存が深いのも多くなさそうなので地道にPackage検索&インストールを繰り返す。

PEAR::Package::MDB2のインストールは、こんな感じ
go-pear_6

とりあえず必要なPackageをインストールしたら、PEARのディレクトリ書き込み権限を外すのを忘れずに行う。

Packageインストール完了後に、戻るアンカーをクリックすると以下のエラーが。array_walk_recursive()が未定義ですか。
そっか、これPHP5用だった。自分のサーバは何も考えずに動かすとPHP4になるんだった。

Fatal error: Call to undefined function: array_walk_recursive() in /virtual/ookawara01/public_html/PEAR/PEAR/Frontend/Web.php on line 850

でも問題の箇所のソースを見ると「Package詳細情報出力」らしいし、メニュー押せば戻るのでとりあえず放置。

MDB2のお試しソースをアップして動かす。あれ?あっさり動いた。PEARのパスを指定していないのにどうやって動いたんだろう。
・・・もしかしてPEAR::Package::MDB2は既に入っているのか?
・・・うーん、じゃ試しに、たぶんデフォルトで入れたりはしないであろうPEAR::Package::Image_Graphのサンプルソースをアップして呼び出すと・・・やっぱり未定義エラー。

で、PHPソース先頭に、
set_include_path('/virtual/ookawara01/public_html/PEAR'.PATH_SEPARATOR.get_include_path());
してやると、動いた。(Fontがないと怒られたのでそこのソースはコメントにしたけど)

ということは・・・PEAR::Package::MDB2はやっぱりデフォルトインストールされてるの?
stableなPackageはインストール済とかいうオチか?

まあいいや。どうせ自分で入れたほうを使う予定だし、そのうち調べよう。


Posted in PHP.