Services_AmazonのキャッシュをXREAでも使いたい手順 May 30, 2006
Amazon ECSの自前アプリケーションをPEARのServices_Amazonを使って書き直した。 PHPのアプリケーションを作ろうとするとことごとくしんどいXREAではあるが、なんとかCGIモードにすることなくキャッシュを有効にして動かすことができた。
一般的にセーフモード環境でキャッシュを使うための方法とも言える。 要するにセーフモード環境では、自分で作成したディレクトリ以外の場所にアプリケーションから書き込むことができないので、事前に必要なディレクトリを作成しておけばよい。
そのため限界も見えていて、際限なく沢山ディレクトリを掘るアプリケーションや、ランダムにディレクトリ名を生成するアプリケーションにはお手上げとなる。
Services_Amazonの場合、setCache()関数で指定するディレクトリの中にdefaultというディレクトリができるので、この親子ディレクトリをアクセスモード707で作成しておく。 たとえば、amazon/とamazon/default/とか。
setCache()関数のディレクトリ指定は絶対パスにした方が良さそう。相対パスだとアプリケーションを置いてあるファイルではなく、呼び出し元のパスが使われてしまう場合がある感触。 絶対パスは、/virtual/ユーザ名/から始まるフルパスで。
うまく動作した場合は、ブラウザでアプリケーションにアクセスしたあと、defaultディレクトリの中にキャッシュファイルができる。CGIモードで動かしてみて違う動作だった場合は、うまく行っていない。