ロリポでPEAR
2011/06/01
ロリポサーバーでPEARのインストールから、パスを通す、XML_RPCのインストールまで。
何のパッケージが入っているかを確認する用の「PEAR_Info」のインストールは挫折中。
何のパッケージが入っているかを確認する用の「PEAR_Info」のインストールは挫折中。
PEARのインストール
- 「http://pear.php.net/go-pear」を「go-pear.php」でDL。
-
ルート直下に「lib」フォルダを作成し、DLしたファイルをup
※「lib」じゃなくてもok。今回は「lib」でやってみる。 - upしたファイルをブラウザで開く
-
気にせずインストール。
「Warning」がでるかもしれないけど「Installation Completed !」が出たらとりあえずOKだと思う。気になれば…下記。
ロリポップ!ユーザー専用ページ「Web ツール」→「php.ini の設定」→「safe_mode」を「off」に変更。 -
下の方にある「Start Web Frontend of the PEAR Installer >>」っていうリンクをクリックするとエラーがでてくる。
Fatal error: No PEAR.php in supplied PEAR directory: @pear_dir@ in /home/users/1/xxx/web/lib/index.php on line 24
-
上記ファイルの8行目をフルパスに変更
$pear_dir = '@pear_dir@'; // default of install
「PEAR.php」ができた場所をフルパス指定してあげる必要があるっぽい。
まずは、サーバーのフルパス「/home/users/1/xxx/web」。
次に「PEAR.php」ができた場所。「./PEAR」私の場合は「go-pear.php」ってヤツを「lib」フォルダの中にいれて作業していたので、
「PEAR.php」のあるフォルダへのフルパスは「/home/users/1/xxx/web/lib/PEAR」となる※「1/xxx」はロリポップで使っているID。最初の「1」は複数のドメインを使っていたりすると違うかもしれない。
-
リロード。
赤枠で何かでている。Warning: This package management website is not protected with a password, this is a MAJOR security risk. Please read the README.参考にしていたサイトで気にしなくて良いって書いてるから気にしない。
-
このままだとセキュリティ上、望ましくないとのことなので「/home/users/1/xxx/web/lib/」の中に「.htaccess」を作成。
内容は下記deny from all
インクルードパスを通す
参考「ロリポップ!でPHP(PEAR)」
-
「/home/users/1/xxx/web/lib/」の下に「path.inc」ファイルを作成。
内容は下記。<?php
ini_set('include_path', '.:/home/users/1/xxx/web/lib/PEAR');
?>※「1/xxx」はロリポップで使っているID。最初の「1」は複数のドメインを使っていたりすると違うかもしれない。
-
ロリポップ!ユーザー専用ページ「Web ツール」→「php.ini の設定」→「auto_prepend_file」に先ほどのフルパスを入力。
(Ex. /home/users/1/xxx/web/lib/path.inc)※「variables_order」は「EGPCS」でOK。
XML_RPCのインストール
-
「.htaccess」でアクセス制限しているのでとりあえず、制限解除。
ファイルを削除するなり、ファイル名を変更するなり。
いっそのことベーシック認証にしておけば良いと思う。 - 「http://xxxx/lib/index.php」にアクセス。
- ヘッダの右上のテキストボックスに「XML_RPC」をいれて、「Go」ボタン
PEAR_Infoのインストール(現在、挫折中)
何のパッケージが入っているかを確認する用の「PEAR_Info」
- 「.htaccess」でアクセス制限しているのでとりあえず、制限解除。
- 「http://xxxx/lib/index.php」にアクセス。
- ヘッダの右上のテキストボックスに「PEAR_Info」をいれて、「Go」ボタン
- 検索結果から「+」をクリック
- 「.htaccess」を復活させて、アクセス不可にしておく。
-
下記内容を記載したファイルをアップ、アクセス
<?php
require_once('PEAR/Info.php');
$info = new PEAR_Info();
$info->show();
?> -
エラーがでてくる。「Call to undefined method PEAR::raiseErro() in /usr/share/pear/PEAR/REST.php on line 165」
調べたけど分からないからとりあえず諦める。