« ドメインキングのレンタルサーバー契約、サブドメインの引越しで悩む話 | トップページ | Googleツールバーのカスタムボタンが非表示になって困ってます »

2011年4月25日 (月曜日)

ドメインキングでPEARを使う

 年間100円につられて契約したドメインキング。自分にとってサイト構築にはPEARが不可欠。まずはそれを解決せねばなるまい。まず、その結果だけどちょっと手間は必要だけど、問題なく動作はできた。以下、その手順。



 以前、XREAでやったのがこれ。
 XREAでPEARを使う: point of view pointはてなブックマーク - XREAでPEARを使う: point of view point
 この方法でCORESERVERも問題なくやってきた。では、ドメインキングではどうか?

 ドメインキングでは、外部からアクセスできるところ以外にはファイルが設置できないようだ(FTPでアップロードできない)。プログラムからアクセスできるphpコードは、外からもアクセスできる場所におかなくてはならない模様。でもって、複数のサブドメインをドメインキングで運用しようとした場合、1つのスクリプトを複数のサブドメインでは共用できないっていう感じ。

 サーバー上のパスは、登録したドメインとサブドメインがexample.com、sub1だとすると、

 /var/www/vhosts/example.com/subdomains/sub1/httpdocs/

 となる。PHPでPEARのパスを指定する場合には、上記ディレクトリ以下に設置した上で行う。FTPクライアントから見えるパスは

 /subdomains/sub1/httpdocs

 といった具合になる。sub1の部分がサブドメインのホストに当たる部分(この表現、自信なし)。sub1.example.comっていう感じで外部からアクセスすることになる。

 PEARのファイルは、ローカルPC上のXAMPPからコピーする。更新などもローカルPCで行い、更新結果をドメインキングのサーバーにアップロードする。このほうが考えることが少なくて済む。たぶん。PEARのライブラリは、FTPクライアントで以下のディレクトリを作って、そこにコピー。

 /subdomains/sub1/httpdocs/pear/

 今回は必要なもののみ。CORESERVERとかだと1度コピーしてしまえば、複数のサブドメインから共用できるのだけど、ドメインキングではそれが不可能っぽい(別のサブドメイン用のディレクトリを指定するとファイルがないって言われる)ので、サブドメインごとにコピーすることになる。複数の場所に同じファイルが配置されることになることを考えると、PEAR以下全部をコピーするには容量がもったいない(今回は5GBの契約なのだ)のと、メンテナンス的にも不安があったので。把握しやすいようにという配慮から。PagerとかCacheとか、ディレクトリごとコピー。これなら最小限。たぶん。

 で、コピーしたPEARライブラリを、自分のプログラムから参照する場合にはいくつかの方法がある。CORESERVERでやっていたのはこんな感じ。

 ini_set('include_path', 'PEARを配置した絶対ディレクトリ' . PATH_SEPARATOR . ini_get('include_path'));

 なんかあった場合にまたCORESERVERに戻すことも考えて、CORESERVER用の記述とドメインキング用の記述両方を書いておこうと思ったのだ。これだとドメインキングで運用時、CORESERVER用に記述されたパスも見に行くことになるけど、そのロスはさほどでもなく、そして、動作に問題はない。

 とはいえ、存在しないパスをサーチしてしまうのもなんか気分的にいやだし、保守する際のことを考えてもちょっと気分的に問題あり。スクリプトごとにこれを記述するのか? とかいう点から。

 ということで、.htaccessに書く方法をとることに。

 php_value include_path ".:/var/www/vhosts/example.com/subdomains/sub1/httpdocs/pear"

 ドキュメントルートに配置した.htaccessにこれを追加する。これだけでOK。元からあるスクリプトはそのままでいける。ナイス。参考にしたのはこれ。【 ほでなすPHP 】 PHPのインストール -> 「.htaccess」ファイルでの設定はてなブックマーク - 【 ほでなすPHP 】 PHPのインストール -> 「.htaccess」ファイルでの設定

 でもって、もう1つ問題が出た。警告が表示されてしまうのだ。「Notice Undefined index」とかいうやつ。これはApacheの設定がドメインキングとCORESERVERで異なるため。宣言してない変数を使おうとしてるからで、これをいちいち直していくのが最善とはわかりつつ、それをやるには時間がかかる。それが済むまで短時間といえども稼動しているサービスに警告が出てるのはなんとも問題がある。ということで、これも.htaccessで対処。

 php_value error_reporting 6133

 これを追加する。参考にしたのはこれ。.htaccess で error_reporting を設定するときの注意点 | Sun Limited Mt.はてなブックマーク - .htaccess で error_reporting を設定するときの注意点 | Sun Limited Mt.

 とりあえず、ここまでやれば、従来通りの方法でコンテンツの作成・更新ができるはず。

 残った問題といえば、PHPのバージョンが5.1系という、WordPressから見放されたバージョンのままであるということだ。さて。WordPressはこのサーバーで使わないからいいか、とか思ってたんだけど、やっぱり使いたくなってしまったんだよなあ。うーむ。ドメインキングのレンタルサーバー契約、サブドメインの引越しで悩む話はてなブックマーク - ドメインキングのレンタルサーバー契約、サブドメインの引越しで悩む話: point of view pointの続きでした。


|

« ドメインキングのレンタルサーバー契約、サブドメインの引越しで悩む話 | トップページ | Googleツールバーのカスタムボタンが非表示になって困ってます »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/35726/51491316

この記事へのトラックバック一覧です: ドメインキングでPEARを使う:

« ドメインキングのレンタルサーバー契約、サブドメインの引越しで悩む話 | トップページ | Googleツールバーのカスタムボタンが非表示になって困ってます »