第 6 章 FAQ - 頻出する質問

ユーザ向け FAQ

PEAR って何ですか?

こちら を参照してください。

PEAR について疑問があります。どこで質問すればいいですか?

これらメーリングリストの購読についての情報は、 こちら を参照してください。

上記のすべてのメーリング・リストは、言語として英語が使われております。 また、質問は、丁寧にお願いします。;-)

PEAR のサイトにログインすると変なエラーメッセージがでるのですが?

pear.php.net CAcert により認証された SSL キーを使っているため、警告が表示されることがあります。 というのも、そのルート証明書が一般的なブラウザには インストールされていないためです。

Mozilla のブラウザを使っているなら、 こちらのサイト "Root Certificate (PEM Format)" のリンクをクリックすると 証明書をインストールできます。 新しい認証局を信頼するかどうか聞かれたら、 "この認証局を web サイトの同定に使用する。" のボックスをチェックし、OK をクリックします。

Internet Explorer を使っている人は、 こちら を参照してください。

Mac OS X のユーザは、上記の PEM ファイルをダウンロードし、 "キーチェーンアクセス" ユーティリティーを使って "ファイル" メニューから "読み込み" として証明書をインストールします。

Windows で、カスタマイズしたフォルダにインストールできない

そのフォルダの表示方法がカスタマイズされている (訳注: フォルダの右クリック->「プロパティ」->「カスタマイズ」タブで変更されている) かどうか調べるために、 Windows はフォルダの "読み取り専用" 属性を使用します。 この属性は、書き込み権限を管理する際には使用されません。 "読み取り専用" のフォルダにもファイルを作成することができます。詳細は http://support.microsoft.com/default.aspx?scid=kb;ja-jp;326549 を参照ください。

PEAR インストーラは、この読み取り専用属性を検出するとインストールを中止します。 悲しいことに、カスタマイズしたフォルダと本当に読み取り専用のフォルダを Windows では区別できないのです。

対策としては、PEAR パッケージをインストールするフォルダを カスタマイズしないようにしてください。

古い版の PEAR はインストールされているが、 新しい版をインストールする権限がない時はどうすれば良いですか?

$ which pear とすると /usr/local/bin/pear など出て pear コマンドは使えるのだけれど、 $ pear -V とするとバージョンが古い場合とか、その他の理由で、 違うバージョンの PEAR を使いたい場合は、ホームディレクトリにインストールすると 良いでしょう。

http://go-pear.org を訪れ、 gopear.php という名で保存し、 $ php gopear.php とするか、 $ lynx -source http://pear.php.net/go-pear | php -q とするかします。

PEAR のインストールにあたっては、 /home/user/pear を prefix に指定してください(ここで user は、あなたのユーザ名)。

インストールが完了したら、PATH 環境変数に、新しい PEAR のディレクトリを 既存の PATH の に追加してください。

たとえば、 ~/.bashrc ~/.profile の最後のほうに、 export PATH=/home/user/pear/bin:$PATH を追加します。 $ echo $PATH として、 /home/user/pear/bin:[...] のように表示されるでしょうか。

$ which pear とすると /home/user/pear/bin/pear と表示され、 $ pear -V で "PEAR Version: 1.4.8" (執筆時。これ以降であればよい)と出力されると問題ありません。 最新の安定版については、 http://pear.php.net/package/PEAR の Current Release のところをチェックしてください。

最後に、 include_path を正しくセットします。 たとえば、次のようにします。
<?php  $path = ini_get('include_path');  ini_set('include_path', '/home/user/pear'.PATH_SEPARATOR.$path);  ?>