xrea.comサーバにPEARをインストールする方法

この記事は次のブログに引っ越しました。

CGIモードでgo-pear.phpを実行 xrea.comで、PEARのWEBインストーラーであるgo-pear.phpを使ってインストールしたかったのですが、何度試してもtempフォルダの権限が変わってしまい、エラーになってしまいます。結論から言うと、.htaccessに下記を記述するとgo-pear.phpCGIモードで動き、うまく行きました。AddHandler application/x-httpd-php5cgi .php 経緯"go-pear.php"(もしくはgo-pear.cgi)は"Web-based PEAR Frontend"と呼ばれるPEARのパッケージマネージャーです。つまり、PEARの各パッケージをWeb画面上で管理するためのものです。本来PEARはコマンドで導入(インストール)をするのが一般的なのですが、ロリポップなど、Telnetで接続できないサーバの場合、導入するのがいささか面倒であったりします。ローカル環境でサーバを建てて、PEARをダウンロードしてから、FTPでアップして・・・といった具合です。go-pear.phpは、これらのコマンドラインで導入する作業のGUIを提供してくれます。大変便利です。ロリポップサーバでは、特に問題なくgo-pear.phpを使っていたのですが、PHP5で利用する必要があったので、xrea.comでgo-pear.phpを走らせたら、上記tempフォルダのパーミッション(権限)が変わってしまう現象が発生してニッチもサッチもだったのですが、「XREAにPEARをインストールできた - うるめねっと技研 - Linux派 -」の記事がもっとも参考になりました。しかし、ここに記載されているように 2.go-pear.cgiの一番上に#!/usr/local/bin/phpという行を追記する(CGIとして動作させるため) だけでは、CGIWrap Error: Script Execution Failed CGIWrap encountered an error while attempting to execute this script: Error Message: Exec format error Error Number: 8 This message usually indicates there is a problem with the script itself.(以下略)というエラーが出てしまう。どうもxrea.comのサーバによってセーフモードの設定が若干違うらしく、拡張子cgiが問題を起こしているようでした。また、go-pear.orgのサイト自体が閉鎖されているので、http://pear.php.net/go-pearから入手する必要があります。xrea.comのヘルプに簡単にCGIとして動作させる方法があったので、拡張子をphpに戻し、.htaccessに上記設定をしたらあっさりとOKでした。でも、インストール先にパスワード保護をしていなかったので下記エラーで怒られちゃった。テヘ。 Warning: This package management website is not protected with a password, this is a MAJOR security risk. Please read the README. BASIC認証の設定をして、とりあえず無事終了。そこで、今回の手順をまとめてみました。Webbased PEAR Package Manager(go-pear)の詳しいインストール手順(xrea.com)ディレクトリ構造 /public_html/ /public_html/.htaccess PHPCGIモードに設定する.htaccessファイル /public_html/lib/ /public_html/lib/go-pear.php PEARインストーラ /public_html/lib/.htaccess →libディレクトリ内にパスワード設定をする.htaccessファイル /public_html/lib/.ht_passwd/ →パスワードファイル設置先ディレクト /public_html/lib/.ht_passwd/.htpasswd →パスワード設定ファイル /public_html/lib/PEAR/ PEARインストール先ディレクト ※ここにある保存先は例です。本当は/public_html/より上のディレクトリに.htpasswdを置くべきなんです。ロリポップとかpublic_htmlより上にアクセスできない場合の参考にしてください。 インストール先の準備 "/public_html/"にライブラリ用のディレクトリを作成する。ここでは"lib"。 BASIC認証用の準備 "/public_html/lib/"の中にセキュリティ用のパスワードファイルを格納するディレクトリを作成。ここでは".ht_passwd"。 "/public_html/lib/.ht_passwd/"の中に、パスワードファイルを作成。ここでは".htpasswd"。
※ベーシック認証を使ったパスワードファイル".htpasswd"の作り方はネットを参照のことhttp://www.chama.ne.jp/access/index.htm:title=BASIC認証の設定] .htaccessの設定 "/public_html/lib/"に.htaccessファイルを設置。 .htaccessに下記を追記して"lib"ディレクトリにベーシック認証およびCGIモードを設定。 AuthUserFile /virtual/貴方のID/public_html/lib/.ht_passwd/.htpasswd AuthGroupFile /dev/null AuthName "User and password required." AuthType Basic require valid-user AddHandler application/x-httpd-php5cgi .php go-pearの準備 go-pear.phpのソースをローカルにgo-pear.phpとして保存。 "/public_html/lib/"にgo-pear.phpをアップロード。(パーミッション:755)"/public_html/lib/"にPEARをインストールしたいディレクトリを作成。ここでは"PEAR"。(パーミッション:707) PEARのセットアップ ブラウザ経由でgo-pear.phpを実行。
例)http://貴方のID.サーバID.xrea.com/lib/go-pear.php
※パスワードを聞いてくるので、ログインする。 無事ウェルカムメッセージが出たら"NEXT >>"を押す。 "Configuration"の1番"Installation prefix"に"/PEAR"を追記してあげる。
例)/virtual/貴方のID/public_html/lib/PEAR 「install」ボタンを押下! しばらくして"Installation Completed !"と表示されればOK! ここで、メッセージのすぐ下の"Note"にパスの記述があるので、コピっとく。 Note: To use PEAR without any problems you need to add your PEAR Installation path (/virtual/貴方のID/public_html/lib/PEAR/PEAR) to your include_path. include_pathの設定 ルートの"/public_html/"に.htaccessを追加 ここに先ほどのパスを元に下記を参考にしてinclude_pathを追記して、PHPスクリプトのパスを通しておく。
※これでlib内のスクリプトPEAR内のスクリプトにパスを記述しなくても簡単にアクセスできます。Windows環境変数みたいなもんです。php_value include_path ".:/usr/local/lib/php:/virtual/貴方のID/public_html/lib:/virtual/貴方のID/public_html/lib/PEAR/PEAR" PEARインストーラーの動作 上記go-pear.phpの画面で"Start Web Frontend of the PEAR Installer >>"をクリックして"Webbased PEAR Package Manager on 貴方のID.サーバID.xrea.com"が表示されれば完了です! go-pear.phpを削除するなり、リネームしておいてね。 所感 今までロリポップを好んで使っていたんです。まぁ今でも使っていたりするんですが。ただ、ロリポップではPHP5が使えなかったり、使いやすい反面制限もあったりで、GoogleAppsやGoogleBaseAPIとかで遊んでみたい者としては、いささか物足りなかったわけであります。※さすがに現在はロリポップでもPHP5は使えるようになっています。(2009/09/03追記)そこで、Value Domeinドメインを取得すると、xrea.comで無料でウェブの領域が使えて、仕様もなかなかどうしてな内容だったので試してみることにしたんです。まぁ、とりあえず、今日はここまで。 参考文献 http://sb.xrea.com/showthread.php?t=10744