2008年01月22日23:57

さくさくマッシュアップについて学んでいきたいところなのですが、PEARとかいうヤツが出てきて非常に気になっています。
スルーすればいいみたいなのですが、気になって眠れません。
これって、恋?
誰か偉い方、気になるアイツの事を教えてください。
おなじみのZAPA先生のマッシュアップ講座に颯爽と登場してきた「PEAR」。
サーバーにXML_RSSがインストールされていない場合は、以下のコマンドを入力してサーバーにインストールして下さい
サーバーにPEARライブラリをインストールできない場合は、PEAR公式サイトからダウンロードしてRSS.phpをXMLディレクトリ内に配置して下さい。
こういう感じで実に さらりと 書いてありますが、ここで死ぬほどハマりました。
・大体PEARって挨拶もなしにいきなり出てきて、ちょっと一体何者?
・サーバーにインストールされているのかいないのか、どうやったらわかるの?
・「以下のコマンド」は、どこでどうやって入力するの。
・PEARライブラリをインストールできない場合は、せっかく出てきたのに、PEARは無視しちゃっていいの?
もう、こういうことが気になって気になって前へ進めないわけなのです。
PEAR − ウィキペディア
PEAR(PHP Extension and Application Repository)はPHPで利用する事ができるライブラリ(パッケージ)を提供しているサービス。 PEARはPHPで書かれたライブラリを提供しているが、C言語で書かれた拡張ライブラリ(extension)を提供するPECLというサービスも存在する。
ウィキペディアで見てみても、理解不能でかなり頭がパンクしそうです。
わかりにくいので、私なりに、たとえ話にして、図にしてみました。
私の脳内PEAR

レンタルサーバー → 家。
PHP → ゲーム機。
PEAR → ゲームダウンロードツール。仮に「ダウンロード拡張キット」
ライブラリ → ゲームソフト各種
と変換すると、話が見えてきそう。
1.家にゲーム機が無いと、ゲームソフトは使えません。
ゲーム機がある家も多いですが、無い家もあります。
ゲームソフトを使うにはまず、家にゲーム機があるかを確認します。
→レンタルサーバーにPHPはあるのかという問題。
私が使っているチカッパ!レンタルサーバーや、さくらインターネットには、PHP4.4.xがあります。
2.ゲーム機のバージョンが4とか5だったら、最初からダウンロード拡張キットがついているものもあります。家の方針でダウンロード拡張キットをつけていないところもあります。そういう時は自分で家のゲーム機に、ダウンロード拡張キットをつけることもできるようです。
→レンタルサーバーにPEARがあるのかどうか。
通常PHP4、PHP5に最初から同梱されているらしいのですが、調べてみたものの私が使っている「さくらインターネット」、「チカッパ!」では、どこにあるのかわかりませんでした。
3.ぶっちゃけダウンロード拡張キットが無くても、その辺のお店でゲームソフトをゲットしてきてゲーム機に直接つなげてゲームソフトを使うことは出来ます。
ですがゲームの数が増えてくると、ゲームを追加したり、最新版にしたりするのは、ダウンロード拡張キットが無いと結構不便です。
→PEARがわからなかったら、最終的にはPEARは無視していいらしい。
それは拡張キットをつけていなくてもゲームができるのと同じ。
ライブラリだけとって来てもいいらしい。私のような初心者はこれで十分みたい。
4.あれ?ダウンロード拡張キットはついているのはわかりましたが、肝心の使い方がわかりません。
何やらコマンドを入力しなければいけないようですが、何をどう起動してコマンドを入力してよいのやら、初心者にはわかりません。
→訳わからないので、インストールする事にしてみました。
Webbased Pear Package Managerというのをインストールするところまでは行って、PEARライブラリをインストールすることも出来たのですが、なぜかライブラリが動かない。
パスの指定の仕方がまずいのか、PHP5じゃないからダメなのか不明。
ウィキペディアでのインストールの説明
PEAR http://ja.wikipedia.org/wiki/PEAR − ウィキペディア
PEARのインストール
PEARは通常PHP4,PHP5に最初から同梱されているが、ビルドオプションの指定などでインストールしなかった場合でも後からインストールする事ができる。
インストールが完了すると、pearという同名のコマンドが利用できるようになっている。Debianのapt-getやRed Hat Linuxなどで利用されているyumに似たインターフェイスでこのコマンドを利用する事でPEARのライブラリ群を自動的にインストール、アンインストール、アップグレード、作成できるようになっている。
レンタルサーバなど、PEARがインストールされていない場合、php.netにあるgo-pear.phphttp://pear.php.net/go-pearのソースをgo-pear.phpというファイル名で保存して実行するとインストールできる。
チカッパ!でやってみたPEARインストール手順
まず、libというフォルダを作成。
このフォルダのパーミッションは777にする。
(インストールプログラムがフォルダに書き込めるようにするため。)
FFFTPでは、属性変更で全ての項目をチェックすると、777になる。
PEARをインストールすると、とりあえず、このフォルダにindex.phpというファイルができる。
これが出来た状態で、libフォルダにアクセスすると、Webbased Pear Package Managerというのが使えるようになる。
逆に言うと、このフォルダにアクセスすれば誰でもPEARのライブラリを追加したり消したりやりたい放題の状態。
そのため、このフォルダにはパスワードをかけて保護しないといけない。
「.htaccess」というファイル名のファイルをフォルダに置く事で、アクセス制限をかける事ができるらしいのでやってみる。
下記の内容をテキストエディタにコピーして貼り付ける。
AuthUserFile /home/sites/chicappa.jp/users/○○○/web/lib/.htpasswd
AuthGroupFile /dev/null
AuthName "適当で可"
AuthType Basic
require valid-user

↑実際のhtaccess。Terapadで書いたところ。
/home/sites/chicappa.jp/users/○○○/web/lib/ の部分は、フルパスという。
フルパスはチカッパ!の場合、【コントロールパネル】>【お客様情報】>【アカウント情報】の『 FTP情報 』でを見ればわかる。
ファイルの最後の行に改行が必要。改行が入ってないとエラーになる。
ファイル名は何でもいいのだけども、変更が簡単なように、 htaccess.txt という名前で保存。
もう一つ、パスワードを書いておくファイルが必要。
ただし、パスワードを暗号化しないといけない。
パスワードの暗号化の手順は下記の通り。
チカッパ!のhttp://chicappa.jp/?mode=support&state=manualにJavascriptをオンにして、アクセス。
.htaccess利用法(パスワード制限)をクリック。
開いたウインドウの中間辺りにある【 パスワードの暗号化 】をクリックすると、ダイアログが出てくるのでここにIDとパスワードを入力。
パスワードが暗号化される。
暗号化されて出てきたIDとパスワードをテキストエディタに貼り付ける。
afiliate:2○○○○○○○s

↑実際のhtpasswd。Terapadで書いたところ。
ファイルの最後の行に改行が必要。改行が入ってないとエラーになる。
ファイル名は何でもいいのだけども、変更が簡単なように、 htpasswd.txt という名前で保存。
libフォルダにFTPソフトでアップロード。
FTPソフトでアップロードした二つのファイルの名前を下記に変更。
htaccess.txt → .htaccess
htpasswd.txt → .htpasswd
属性変更でパーミッションを「604」に変更。
実際に http://自分のアドレス/lib/ へアクセスして、パスワード制限がかかっているか確認。
パスワード制限が出来ていたら、続いて、PEARのインストール。
http://pear.php.net/go-pear
上記へアクセス。
(「go-pear.org」というアドレスがあるが、現在サイトが死んでいる。
個人が経営していたサイトだったものがお金が払えなくなったのか詳細は不明だが、混乱するのでアクセスしないこと。)
書いてある文字列を全て選択し、コピーし、テキストエディタに貼り付け、文字コードUTF-8で保存。
ファイル名は「 go-pear.php 」
libフォルダにアップロード。
下記アドレスへアクセス。
(アクセス制限を自分で作っているので、先ほど設定したIDやパスワードを入力。)
http://自分のアドレス/lib/go-pear.php

「 Welcome to go-pear 1.0.2! 」と書いてあるが、よくわからんので、「 Next >> 」をクリック。
下記のようなメッセージが出てくる。
Below is a suggested file layout for your new PEAR installation.
Note: Make sure that PHP has the permission to access the specified
directories.
よくわからないので、気にせず、「 Install 」ボタンを押す。
すると、Starting installation ... と出てインストールが行われる。
warningと出る事もあるが気にしない。
「 Start Web Frontend of the PEAR Installer >> 」と出るので、これをクリック。
インストールが終わったらしい。
FFFTPで確認すると、うじゃうじゃフォルダが出来ている。
インストールされたフォルダは下記のような構成。

Webbased Pear Package Managerのページの右上にある検索窓で適当に「RSS」とか入力すると、XML_RSSが出てくる。

緑色の「+」ボタンを押すと、勝手にインストールしてくれた。

コレは便利。
しかし、プログラムを作って、require_once で呼び出しても、なんか動かない。
パスの指定がまずいのか。
しかし、フルパスや絶対パスも試したものの、動かない。
Webbased Pear Package Managerのページの左下にあるregurationでベータを使ってみることに。
それでも動かない。
go-pear.phpを見てみると、「Requires PHP 4.3.0 or newer」と書いてあるから、PHP5じゃないとダメって言うわけでも無いと思うんだけど・・・。
色々とわからない事ばかりで、泣きそうです。
教えて、偉い人!
1.レンタルサーバーへのインストールはこの手順でいいの?
2.PHP5じゃなきゃダメなの?(go-pearのバーションは,v 1.108です)
3.PEARコマンドってどこで実行するの?(チカッパはSSHは使えないみたいです。)
4.作ったプログラムはどのフォルダに置けばいいの?
5.何故か動かないんですけど、PEARとは縁が無かったと思ってあきらめて新たな恋を探すべきでしょうか。
<追記>
ごめん、自己解決。
RSS.phpへのパスは通っても、RSS.phpがParser.phpを呼び出すパスが通ってなかったみたい。
自分のレンタルサーバーのアドレス全体にPEARのパスを通すために、.htaccessをもう一つ設置する必要があったみたいです。
下記の内容をテキストエディタにコピペして、パスの部分を自分のものに書き換え、「htaccess.txt」とでも名前をつけて保存。
(もちろん最後に改行が必要です。)
下記の図の場所にアップロードした後、「.htaccess」に名前を変更。
念のため属性変更でパーミッションを「604」に変更しとこう。
<.htaccessの内容>
php_value include_path ".:/home/sites/chicappa.jp/users/○○○/web/lib/PEAR/"

そういうわけで、自分で自分に回答。
1.インストール手順はこれでいいみたい。
2.PHP5でなくてもいいみたい。
3.PEARコマンドはSSHとかシェルで使うみたいだけど、コマンド無くてもPEARは使えるみたい。
4.パスを通す.htaccessをディレクトリのトップに置けば、どこでも使えるみたい。
5.動きました。縁があったと思ってこれからもお付き合いよろしくお願いします。PEARさま。
<さらに追記>
PEAR_Infoというライブラリがあります。
これはphpinfoというコマンドと似ているもので、PEARの内容を表示してくれるライブラリです。
このライブラリをインストールしてみました。
<?
require_once("PEAR/Info.php");
$info = new PEAR_Info();
$info->show();
?>
ライブラリを実行するための上記のコードをテキストエディタにコピペし、適当な名前「pear_info.php」とか名前をつけてアップロードし、ブラウザでアクセス。
すると、これが何故かエラー。
PEAR configuration files "/root/.pearrc", "/usr/local/etc/pear.conf" does not exist
なんでかなあ。
パスが通っているものといないものがあるのかなあ。
やっぱ教えて、偉い人(^^;
<さらにさらに追記>
メールで偉い人、キタ━━━━(゚∀゚)━━━━!!
このインストール方法だと、「pear_info.php」の内容で、一部のパスを「lib」フォルダに指定しないといけないらしい。
<?
require_once("PEAR/Info.php");
$info = new PEAR_Info("/home/sites/chicappa.jp/users/○○○/web/lib/");
$info->show();
?>
「pear_info.php」の内容を変更したら、さくっと実行されました。

偉い人、ありがとうございました!m(_ _)m
さすが、偉い人!!
この記事にコメントする
注:livedoorBlogの仕様により、コメントは400字以内となっております。
コメントが長くなりそうな場合は、
メモ帳にコピペなどされておかれることをお勧めいたします。

アフィリエイトは儲かんないってば
