デジットさんの生活便利サイトトップへ デジットさんのローカルPEARの実行(PHP)

トップページ > ホームページ作成 > ローカルPEARの実行

共用サーバーなどにインストールしたPEAR追加モジュールを実行するための、インクルードパスの設定方法をお教えします。インクルードパスを設定しないと、せっかくローカルにインストールしたPEARを使うことが出来ません。

PEARのインクルードパス

共用サーバーなどを連タスしている場合は、PEARのインクルードパス(PEARを実行するためのPEARが何処にインストールされているか知らせる)が設定ファイル「php.ini」を変更することが出来ません。「php.ini」を変更せずに、インクルードパスを設定する方法は2通りあります。①PEAR パッケージを使うコードでそのつど include_pathを設定する。②「.htaccess」 ファイルで設定する。
「go-pear.php」でPEARインストーラーをインストールしたい人は、PEARインストールのページをご覧下さい。

PEAR パッケージを使うコードでそのつど include_pathを設定する

この方法は、PEAR マニュアルに次のように書いてあります。

ホームディレクトリ下の pear という名称のサブディレクトリが作られ、 そこにあなたがインストールしたパッケージが保存されます。 システム共有版とは別に、PEAR のローカル版がインストールされます。 このローカルにインストールされたファイルを使用するには、PEAR パッケージを使うコードで PHP の include_path を次のようにセットしてください。
<?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());
?>

しかし、このままではインクルードパスは共通サーバーにインストールされている元々のPEARのパスになってしまいます。つぎの様に「~/pear/lib」の部分をフルパス(ロリポップの例)に変更すれば、動作します。この方法は「php.ini」のインクルードパスを実行中のスクリプトだけ有効にします。私は、「PHP 4.3.0 以降で、特に共有ホストなどで有用」な方のコードで動作確認しました。

<?php
set_include_path('/home/sites/lolipop.jp/users/lolipop.jp-dp********/web/local_pear/PEAR' . PATH_SEPARATOR . get_include_path());
...
// ローカルPEARのスクリプトの実行文
...
?>

「.htaccess」 ファイルで設定する

「.htaccess」 ファイルにインクルードパスを設定すれば、PEARを実行するスクリプトにそのつどインクルードパスを設定する必要はありません。この方法は、「.htaccess」 ファイルが置かれているディレクトリーより下のスクリプトでローカルPEARへのパスを変更してくれます。次のように、フルパス(ロリポップの例)で記載します。「".:」は、必要ですので必ず記載ください。「.htaccess」ファイルは、最後の行に改行が必要です。
この設定で、ローカルなインストールを意識せずにPEARが利用できます。


# PEARのインクルードパス php_value include_path ".:/home/sites/lolipop.jp/users/lolipop.jp-dp********/web/local_pear/PEAR"

ホームページを公開するレンタルサーバーは、 ロリポップ! がお薦め、 PHP5を使うならPHP5から選ぼう。

Amazon.co.jpアソシエイト:PHP&プログラミング

売れている順 新刊順

:%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%20php :php2_  :3

関連ページ

ホームページ作成

PHP5を使う

アフィリエイトをする

PHPの使い方

デジットさんのホームページ入門に移行中

スポンサード リンク

とことん!ホームページホームページ入門役立つサイトデジットさんのリストラ日記仮福真琴の精神科医はうそだらけ

2005-2010 Copyright © Digit-01 All Rights Reserved.