xrea.comで、PEARのWEBインストーラーであるgo-pear.phpを使ってインストールしたかったのですが、何度試してもtempフォルダの権限が変わってしまい、エラーになってしまいます。
結論から言うと、.htaccessに下記を記述するとgo-pear.phpがCGIモードで動き、うまく行きました。
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認証の設定をして、とりあえず無事終了。
そこで、今回の手順をまとめてみました。
ディレクトリ構造
/public_html/ /public_html/.htaccess →PHPをCGIモードに設定する.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より上にアクセスできない場合の参考にしてください。
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
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.
php_value include_path ".:/usr/local/lib/php:/virtual/貴方のID/public_html/lib:/virtual/貴方のID/public_html/lib/PEAR/PEAR"
今までロリポップを好んで使っていたんです。まぁ今でも使っていたりするんですが。
ただ、ロリポップではPHP5が使えなかったり、使いやすい反面制限もあったりで、GoogleAppsやGoogleBaseAPIとかで遊んでみたい者としては、いささか物足りなかったわけであります。
※さすがに現在はロリポップでもPHP5は使えるようになっています。(2009/09/03追記)
そこで、Value Domeinでドメインを取得すると、xrea.comで無料でウェブの領域が使えて、仕様もなかなかどうしてな内容だったので試してみることにしたんです。
まぁ、とりあえず、今日はここまで。