| Tweet |
|
5,399 PVs |
データベースを使ったWebアプリケーションをPHPで開発しているのですが、H2+のサイト上で簡単な動作確認をしてみたところ、「PEARのDBパッケージが見つからない」というエラーが出てしまいました。このサイトはWADAXの共有サーバーサービスで運用しているのですが、どうやらサーバーの共有スペースにはPEARパッケージがインストールされていない模様。ちなみに、専用サーバーサービスならデフォルトでPEARが使えるようです。ローカルの開発環境では、Windows上でXAMMPを使っているので気にも留めませんでしたが…。
そこで、PEARのドキュメントを参考にしながら、サーバー上のローカルスペースにPEARをインストールすることにしました。
サーバーへのアクセス手段はFTPしかないので、ドキュメントの最下部にある「ftpを通じたPEARのローカルコピーのインストール – 昔ながらの方法」の手順に従って作業していきます。
ftpを使用してPEARのローカルコピーをインストールするには、アップロード時に ファイルのパーミッションを設定できるftpクライアントが必要です。
FFFTPを使っているので問題なし。
まず、サーバの、ウェブに公開されていない場所にディレクトリをひとつ作成し、 好きな名前をつけます。そして、全ユーザから読み書き可能 (0777) とします。
ここではサーバー上のホームディレクトリを「/home/***」と表記して話を進めていきます。ウェブに公開されているディレクトリは「/home/***/public_html」です。FFFTPで「/home/***/pear」というディレクトリを作り、パーミッションは「0777」ではなく「0707」としました。
http://pear.php.net/go-pearをダウンロードし、go-pear.phpという名前で保存します。
これはローカルでの作業。ブラウザで「http://pear.php.net/go-pear」にアクセスしてから保存するのが面倒な人は、ここを右クリックして、「名前を付けてリンク先を保存」してください。
go-pear.phpを、 ウェブからアクセス可能なディレクトリにアップロードします。 (セキュリティのため).htaccessを使ってgo-pear.phpを含むディレクトリに パスワード制限をかけるのが良いでしょう。
先にウェブからアクセス可能なディレクトリを作り(ここでは「/home/***/public_html/pear」とします)、.htaccessによるパスワード制限はWADAXのコントロールパネルから設定します。その後で、保存したgo-pear.phpをFTPでアップロード。
次に、go-pear.phpファイルをブラウズします。
go-pear.phpへのURLは「http://h2plus.biz/pear/go-pear.php」になりますね(実際には存在しないのでアクセスしないようにw)。ブラウザでアクセスすると次のような画面が表示されます。

「Next」をクリックすると、初期設定の画面に移ります。

変更するのは「1. Installation prefix ($prefix)」の項目だけ。画面が表示された段階では、「/home/***/public_html/pear」となっているので、「サブディレクトリを作るパーミッションがない」という警告が表示されますが無視していいです。$prefixの項目を「/home/***/pear」に書き換え、残りはデフォルトのまま「Install」ボタンをクリック。インストール処理が終わるまでしばらく待ちます。

このスクリーンショットでは隠れてしまっていますが、インラインフレームを下までスクロールすると、
Warning: Can not determine the URL of the freshly installed Web Frontend (file: /home/***/pear/index.php). Please access it manually !
という注意書きがあります。「/home/***/pear/index.php」はウェブ版のPEARパッケージマネージャで、PEARのインストール先がウェブ参照できないディレクトリにあるのが原因です。
ウェブ版PEARパッケージマネージャを使用するためには、FFFTPで「/home/***/pear/index.php」を一旦ローカルにダウンロードした後、「/home/***/public_html/pear/」ディレクトリにアップロードします(※2010/11/11の追記を参照してください)。そして、ブラウザで「http://h2plus.biz/pear/index.php」にアクセスすると(繰り返しますが、実際には存在しないのであしからず)、

ブラウザからPEARパッケージの管理ができるようになります。
追記(2008/10/17)
PEARのドキュメントでは、インストールしたPEARパッケージが参照できるように
<?php
ini_set('include_path', '~/pear/lib'.PATH_SEPARATOR.ini_get('include_path'));
// PHP 4.3.0 以降ではこの方法も使用できます。
// これは、特に共有ホストなどで有用です。
set_include_path('~/pear/lib'.PATH_SEPARATOR.get_include_path());
?>
というコードを各PHPスクリプトに埋め込んで、インクルードパスを設定するよう書いてありますが、いちいちこんなコードを書くのは面倒です。
そこで、より自然にPEARパッケージを使えるようにするために、以下のIfModuleディレクティブを書いた.htaccessファイルを作ります。
<IfModule mod_php5.c> php_value include_path ".:/usr/local/lib/php:/home/***/pear/PEAR" </IfModule>
この.htaccessファイルを「/home/***/public_html」ディレクトリ直下にアップロードすれば、サイト全体でインクルードパスを意識することなくPEARパッケージを使えるようになります。
追記(2010/11/11)
annさんから「ウェブ版PEARパッケージマネージャにアクセスしても画面が真っ白になる」とコメントをいただいたので、改めて手元の環境で実験してみましたが、確かに真っ白になりますね。
調べてみたらindex.phpの修正が必要だということがわかりました。
ウェブ版PEARパッケージマネージャを使用するためには、FFFTPで「/home/***/pear/index.php」を一旦ローカルにダウンロードした後、「/home/***/public_html/pear/」ディレクトリにアップロードします。
ローカルにダウンロードした後、index.php内の$pear_dir変数の値を修正する必要があります。
// $pear_dir must point to a valid PEAR install (=contains PEAR.php) $pear_dir = '/home/***/pear/PEAR'; // default of install
このエントリを書いたのがもう2年前なので、当時からPEARのインストーラが変わったのか(ソースをトレースしたわけではないので確証はありませんが)、あるいは単に書き漏らしただけなのか、今となってはわかりません。
4 Pings to “共有サーバーにPEARをインストールする方法”
4 Responses to “共有サーバーにPEARをインストールする方法”
-
1. 上野まりこ Says:
2010/4/21 at 19:44いつもお世話になります。教えてください。追記のところがうまくいきません。
php_value include_path “.:/usr/local/lib/php:/home/***/pear/PEAR”会社のPCで試験したら次のようなメッセージが出ました。
Warning: require_once(HTTP/Client.php) [function.require-once]: failed to open stream: No such file or directory in /export/sd08/www/jp/r/e/gmoserver/6/5/sd0107165/sanhujinka.com/XML/PEAR.php on line 29Fatal error: require_once() [function.require]: Failed opening required ‘HTTP/Client.php’ (include_path=’.:’) in /export/sd08/www/jp/r/e/gmoserver/6/5/sd0107165/sanhujinka.com/XML/PEAR.php on line 29
どうしたらよいでしょうか? -
2. Hiro Says:
2010/4/22 at 12:45上野まりこさん>
Apacheの設定(httpd.conf)が.htaccessファイル内でphp_valueを上書きできるようになっていないのではないでしょうか?
.htaccessファイルが置かれているディレクトリに対して、「AllowOverride Options」を設定する必要があります。参考サイト:
Apache チュートリアル: .htaccess ファイル
Apache コア機能 – AllowOverride ディレクティブ
PHP マニュアル – 設定を変更するには -
3. ann Says:
2010/11/10 at 16:39こんにちは、参考サイトも含めて見ながらやってみたのですがインストールが完了
、Filenname of WebFrontedの欄に指定したディレクトリ、PEAR パッケージマネージャにアクセスしても空白のページしか表示されません?何度試してもNGでした。
FTPでみてみたらINDEX.phpははいってるのですがブラウザーでは表示できないというか真白になっています?
どこの設定で正しく表示されるのでしょうか? -
4. Hiro Says:
2010/11/11 at 6:05annさん>
ご指摘ありがとうございます。対処法をエントリに追記しておきましたのでご参照ください。
2009/4/21 at 14:56
[...] 共有サーバーにPEARをインストールする方法 (569 PVs)クルクル回転するタグクラウド (410 PVs)外部サイトのリンクを別タブで開く方法 (383 PVs)WP-PostViewsの日本語化 (232 PVs)サイトマップの設置 [...]
2010/6/16 at 12:14
[...] 共有サーバーにPEARをインストールする方法 [...]
2010/11/14 at 0:00
[...] と思っていたら、go-pear.php を使う方法がありました。共有サーバーにPEARをインストールする方法(H2+ Goes On)こちら参考にやっていきます。 [...]
2011/1/29 at 2:14
[...] 。私の方でもひと通り説明させて頂きます。 共有サーバーにPEARをインストールする方法 | H2+ Goes On [...]