8/10/2010

CPIサーバにPEARをインストール





その前にまずPHPを使えるように設定
設定完了したら早速PHPの詳細を確認

<?php phpinfo(); ?>


上記のように1行記述したテキストファイルにinfo.phpと名前をつけて
PHPが動作するディレクトリにアップしてブラウザから見てみると
〔Configure Command〕の欄に「'--without-pear'」とある

要するにPEARがナイので使いたい場合には
ライブラリを個別にダウンロードして利用するか
go-pear.phpでがっつりライブラリ群をインストールするか


ここは1つインストールしてみるるる~

インストール前に確認しておくのは以下

【A】
PEARのライブラリ群を入れておくディレクトリのパス
→セキュリティの面からWEB領域でナイディレクトリが望ましいので
自分の場合はhtmlと同じ階層にライブラリ用のディレクトリを設けて
その中に入れるようにした(共用サーバのプランの場合
httpドキュメントルートは usr/home/xxxxx/html となってるが
PEARのライブラリ群は usr/home/xxxxx/php/lib に入れた)


【B】
PEARの管理画面のトップページを開くディレクトリのパス
→こちらはブラウザで開くのでWEB領域にディレクトリを作成したが
セキュリティ上Basic認証をかけておくので
既に.htaccessファイルがおかれてナイ状況が望ましいかもだ
(CPIサーバでは.htaccessを自動生成してくれるのはありがたいが
勝手に上書きもしてしまうのだった・・・)
またこのディレクトリのパーミッションは777にしておく


go-pear.phpをブラウザで表示



Next>>



ここのチェックはしてもしなくても差し障りはナイが
PEAR_Frontend_Gtk2とMDB2がもれなくインストールされるのがお得だと思えたらチェックw

画面を下方にスクロールするとサーバのパスを入力する画面が出てくる



1.が【A】で10. が【B】で他は書き直さナイ方が無難だ
ちなみに[$prefix]の部分には1.で指定されたパスが反映されるので10.は「【B】/index.php」となる

画面を最下部にスクロールするとインストールの[Install]ボタンが出てくる



そのまま[Install]すると次のページへ

ここでエラーが出るようなら
パスが間違ってる(指定のディレクトリが存在しナイ)か
【B】のパーミッションが777になってナイか
いずれ英文だが内容も赤字で表示されてエラーが出るので
ここはひとつ、エラーが出なくなるまで頑張るしかナイ



インストールが上手い具合に完了すれば「Installation Completed ! 」が表示され
そのすぐ下にはinclude_pathが何になるかも表示される

include_pathとゆーのはPHPプログラムからPEARのライブラリを参照する際
どこを基点にそのライブラリの所在を突き止めて呼び出すのか
基点となるディレクトリを示すパスだ
これはプログラムに毎度長たらしい絶対パスを書かずとも済むように
通常はphp.iniファイルなどで指定しておくのだ
インストールが完了してもこの設定がなされてなければ
毎度長たらしいパスを書かねばならずメンドウ(設定は後述)

また管理画面(のトップページ)のディレクトリには
先述のようにBasic認証をかけておき(サーバのコンパネから設定)
ブラウザから接続する前にパーミッションを777から755に戻しておき
(CPIサーバでは777のディレクトリにアクセスすると500エラーを返されるので要注意!!)

Start Web Frontend of the PEAR Installer >>

Basic認証のダイアログが出て
管理画面のトップページが表示されればしめたモノ!
2011/03/23追記:管理画面のトップページが表示されなかった場合



とりあえずインストールまでは完了

この画面の右上の検索窓から「PEAR_Info」を検索



[緑のクロス]ボタンからインストール



インストールが完了したらこれを以下のファイルでテスト

<?php
require_once("PEAR/Info.php");
$info = new PEAR_Info();
$info->show();
?>


ファイル名をinfo_pear.phpとかつけてPHPが動作する場所へアップ
これをブラウザから表示すると次のようなエラーになる(はず)

Warning: require_once(PEAR/Info.php) [function.require-once]: failed to open stream: No such file or directory in /usr/home/xxxxx/html/php/info_pear.php on line 2

Fatal error: require_once() [function.require]: Failed opening required 'PEAR/Info.php' (include_path='.:') in /usr/home/xxxxx/html/php/info_pear.php on line 2


2行目で「PEARのライブラリからPEAR/Info.phpを参照して」って
いや、パスの設定してナイですから~無理っつw
サーバにはPEARのライブラリがどこかわかってナイのだ

通常は.htaccessで次のように指定すればOK

php_value include_path ".:/usr/home/xxxxx/php/lib/PEAR"


だがしかしCPIサーバは.htaccessに「php_value」があると500エラーになってしまうので
.htaccessでの指定はCPIでは不可

そこでちと厄介なのだが
CPIの次のオンラインヘルプを参考にしてphp.iniを設定するしかナイ
.htaccessを利用して下位ディレクトリ全体にPHPの独自設定を反映させる

まずは元となるphp.iniファイルを手順通りに作成して
エディターで開いて「include_path」の設定箇所を以下のように修正

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
include_path = ".:/usr/home/xxxxx/php/lib/PEAR"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"


これを/usr/home/xxxxx/phpにアップしておいて
.htaccessでこのディレクトリとWEBディレクトリのトップで
つまりそれ以下のディレクトリ総てでこの設定が反映して
このphp.iniを参照するように次のように指定

suPHP_ConfigPath /usr/home/xxxxx/php/
<Files ~ "\.ini$">
deny from all
</Files>


これで冒頭のPHPの詳細を確認するinfo.phpをブラウザから開くと
〔include_path〕の欄にPEARのパスが表示されてたら成功

先ほどエラーになったinfo_pear.phpをブラウザから開くと
以下のような画面が表示されるだろうか?



されてたらPEARのパスが通ってるってコトで
これで管理画面から好きなだけPEARライブラリをインストールして
それらの利用が可能になったワケだ♪

・・・☆★追記

■参考ディレクトリ構成例



※1 以下のディレクトリでのPHPのVer.と動作ファイル拡張子の設定php.iniファイルのパス
※2 PHPのサーバ内情報一覧表示画面
※3 PEARのサーバ内情報一覧表示画面
※4 PEARインストールプログラムファイル(インストール後は削除)
※5 PEAR管理画面(通常はファイル名を変更しておいて、使用時にindex.phpに戻す)
※6 Basic認証ファイルセット(コンパネから作成)
※7 以下のディレクトリでのPHPのVer.と動作ファイル拡張子の設定php.iniファイルのパス
※8 php.ini

注1 赤字はインストール時に生成されたファイル・フォルダ
注2 htmlディレクトリ以下はWEB領域、同じ階層に作成したphpディレクトリ以下はWEB表示不可領域

0 件のコメント: