はじめに

ナウでヤングなレンタルサーバー、ロリポップ。格安サーバとはいえ、Perlのモジュールはかなり揃っているようです。しかしながら、phpにはあまり力を入れていないのか、PEARのライブラリはほとんどインストールされていません。しかも、インストールされているバージョンも古く、新しいライブラリを手動で組み込むとエラーを起こしてしまうこともあります。例えば、XML_Unserializerなどは「Call to undefined function: sethandlerobj()」というエラーで止まってしまいます。

これを回避するため、サーバに最初からインストールされているPEARライブラリが読み込まれないようにした上で、手動で設置したライブラリを読みに行くように設定を変更します。

include_pathの設定

まず、phpのinclude_pathを設定します。.htaccessに以下のように記述してください。

php_value include_path .:/home/sites/lolipop.jp/users/lolipop.jp-XXXXXXXXXX/web/libs/PEAR

「XXXXXXXXXX」の部分はアカウントによって異なりますので、それぞれ設定してください。また、この例では /libs/PEAR/ にライブラリを設置することを想定しています。別のディレクトリに設置する場合は、設置先に合わせて変更してください。

これで、ロリポップのPEARを完全に無視して自前でPEARライブラリを構築する準備が整いました。これだけではPEAR本体を含めて何も設置されていませんので、必要なライブラリをインストールしていきます。SSHやTelnetで接続できるようなサーバではないので、必要なファイルをFTPから手作業で転送してやる必要があります。まだ少ないですが、各ライブラリのページに動作に必要なファイルの一覧を記していますので参考にしてください。「PEARのルートディレクトリ」という表記が出てきますが、これはinclude_pathに指定したパスを指します。

アクセス制限

ロリポップでは、FTPで接続したルートディレクトリがそのままWeb上で公開されます。できればPEARのようなライブラリは非公開領域に設置したいところですが、できないものは仕方ありません。せめて.htaccessに以下の内容を記述して、ブラウザからの直接のアクセスを遮断しておきます。

deny from all

これで、設置したファイルのURLをブラウザから叩いた時に403が返るようになります。phpから読み込む場合はちゃんと読めますのでご心配なく。

▲ページの先頭に戻る