FTP を使って PEAR のローカルコピーをインストールする方法は、昔ながらの難しい方法と、
新しく簡単な方法の 2 つがあります。新しい方法を行うには、
PEAR をバージョン 1.4.3 以降にアップグレードする必要があります。
PEAR 1.4.3 以降と PEAR_RemoteInstaller を使う改良インストール法
PEAR 1.4.3 以降では、FTP を使ったローカルコピーのインストールも簡単に行えます。
シェルアクセスができないリモ-トホストに PEAR をインストールしたいというユーザもいるでしょう。
FTP を使うのが唯一の選択肢だということも良くあることですが、手動でインストールすると
置換などのインストーラの機能を活用している複雑なパッケージで問題が起こります。
〔FTP を使ってリモ-トホストに〕適切にインストールするには
次の手順で行います。
-
ローカルのコンピュータに PHP 5.0 以降をインストールする
-
ftps を使用する場合は、 php.ini で openssl 拡張モジュールを有効にする
-
sftp を使用する場合は、 php.ini で ssh2 拡張モジュールを有効にする
-
PEAR の CLI バージョン ("pear" コマンドのこと。ウェブインターフェイスではない)
をローカルのコンピュータにインストールし、正常動作を確認する
-
リモートホストにアクセスでき、書き込みができるようにする
(セキュリティ上、ftp でなく sftp か ftps の使用を 強く 推奨します)
-
ホームディレクトリのフルパスを確認する
-
ローカルとリモートの双方について、それぞれの環境に対応した設定ファイルを作成する
-
リモートの設定ファイルをリモートホストにアップロードする
-
リモートホストの設定ファイルの場所を
ローカルの設定ファイルの remote_config に指定する
-
remote-install, remote-uninstall, remote-upgrade および remote-upgrade-all
コマンドを使ってパッケージを管理する
1. PEAR の CLI バージョン ("pear" コマンド。ウェブインターフェイスではありません)
をローカルのコンピュータにインストールする
こちらで インストール手順 を参照してください。
2. PEAR_RemoteInstaller パッケージがローカルにインストールされていなければ、
インストールする
3. リモートホストに対して ftp でアクセスでき、ftp で書き込めるようにする
書かれている通りです。DOS プロンプトや Unix シェルで FTP コマンドを実行できれば、
FTP 接続が可能です。
ログインに必要なユーザ名とパスワードを入力します。
書き込みができるか調べるのは簡単です。ファイルをアップロードすることができれば、
書き込み権限があります。
4. ホームディレクトリのフルパスを確認する
これも書かれている通りです。次のスクリプトを WEB ドキュメントのルートティレクトリに
アップロードし出力を確認すると良いでしょう。
<?php
echo dirname(__FILE__);
?>
/home/username/htdocs
や /home/username/public_html
のようになるでしょう。FTP でアクセスする際には、
/home/username へ接続するとよいでしょう。
5. ローカルとリモートの双方について、それぞれの環境に対応した設定ファイルを作成する
これも簡単です。windows と unix でそれぞれ次のようにします。
まず、Windows です。
リモートコードのローカルコピーを保存する場所を選びます。たとえば、
C:\remote\pear とします。コマンドプロンプトから
(スタートメニュー => プログラム から「コマンドプロンプト」を探します)、
次のように打ち込みます。
C:\> mkdir remote
C:\> cd remote
C:\remote\> mkdir pear
C:\remote\> cd pear
C:\remote\pear> pear config-create -w C:\remote\pear remote.ini
C:\remote\pear> pear config-create /home/username/pear .pearrc
Unix でも、似たような手順をとります。
$ cd
$ mkdir remote
$ cd remote
$ mkdir pear
$ cd pear
$ pear config-create /home/mylocaluser remote.conf
$ pear config-create /home/username/pear .pearrc
6. リモートの設定ファイルをリモートホストにアップロードする
これも簡単です。どちらの OS でも FTP を使って
.pearrc を /home/username/pear/.pearrc
へアップロードします。
7. リモートホストの設定ファイルの場所を
ローカルの設定ファイルの remote_config に指定する
暗号化を行わないなら(注:ただし、安全ではない)、
ストリームとして ftp:// を使います。
ftps を使用するなら、ストリームとして ftps:// を、
sftp を使用するなら、ssh2.sftp を使います。
remote_config に設定するパスは、
次の例のようにフルパスにする必要があります。
ssh2.sftp://user:pass@myremotehost.com/home/username/.pearrc
これが失敗した場合は、相対パスを試してください。
ftps://user:pass@myremotehost.com/.pearrc
remote_config の値をセットするには、次の構文を使用します。
windows の場合、
C:\remote\pear\> pear -c remote.ini config-set remote_config \
ftp://user:pass@myremotehost.com/.pearrc
Unix の場合、
$ pear -c remote.conf config-set remote_config \
ftp://user:pass@myremotehost.com/.pearrc
8. remote-install, remote-uninstall, remote-upgrade および remote-upgrade-all
コマンドを使ってパッケージを管理する
以上で、ローカルとリモートのリポジトリを同期させることができます。
動作の詳細
インストーラは、まずパッケージをローカルにインストールし、次いで、
ftp ストリームを使ってローカルにインストールされたファイルをリモートの適切な場所に
アップロードします。
"remote_config" 設定項目に指定された
リモートの設定ファイルの値を用いて、
パッケージをインストールするべき場所へのフルパスを取得します。
インストールに関連するコマンド (install, uninstall, upgrade, and upgrade-all)
にそれぞれ対応した remote- コマンド >(remote-install, remote-uninstall,
remote-upgrade, remote-upgrade-all) が存在します。
リモートの設定ファイルは、置換などの特殊処理の際にも参照されます。
たとえば、data_dir 設定項目の値を参照してデータファイルのパスを取得するような
ファイルがある場合、リモートホストのパス (/home/username/pear/data)
が、ローカルのパス (C:\remote\pear\data)
に代わって、使用されます。ただし、このようにしてローカルマシンにインストールされた
パッケージはローカルのマシンで適切に動作しません。バックアップとして扱ってください。
非常時には、リモートホストへ ftp や scp でアップロードすることができます。
windows と unix とでインストールのされ方が異なるパッケージがあります。
そのようなパッケージをインストールする場合は、ローカルのシステムをリモートのシステムと
同じものにしてください。さらに、拡張モジュールに依存するパッケージもあります。
リモートのマシンで必要な拡張モジュールが利用可能かどうか調べるには、
phpinfo() の出力を参照してください。
ftp を通じた PEAR のローカルコピーのインストール - 昔ながらの方法
ftp を使用して PEAR のローカルコピーをインストールするには、
アップロード時にファイルのパーミッションを設定できる ftp クライアントが必要です。
まず、サーバの、ウェブに公開されていない場所にディレクトリをひとつ作成し、
好きな名前をつけます。そして、全ユーザから読み書き可能 (0777) とします。
http://pear.php.net/go-pear をダウンロードし、go-pear.php
という名前で保存します。go-pear.php を、
ウェブからアクセス可能なディレクトリにアップロードします。
(セキュリティのため) .htaccess を使って go-pear.php
を含むディレクトリにパスワード制限をかけるのが良いでしょう。
次に、go-pear.php ファイルをブラウズします。
ウェブアドレスが http://www.example.com/ で、go-pear.php を
public_html/install/go-pear.php に置いた場合、
http://www.example.com//install/go-pear.php にアクセスしてください。
表示されたインストールの画面に従います。
どこに PEAR をインストールするか訊かれたら、さきほど作成した
全ユーザから読み書き可能にしたディレクトリを指定します。
また、CLI バージョンの PHP のありかも知らせる必要があります。
PHP のありかは、次のスクリプトの出力を参照してください。
<?php
echo `which php`;
// これが動作しなかった場合は、echo PHP_BIN; を試してください
?>
PEAR がインストールされたら、他の 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());
?>