PHPのソースコードを読めなくする、PHP Screw。

 SourceForge.net: PHP Screw

 個人的にはソースコードを暗号化して隠蔽するとか興味はありますけど必要ではないのです。が、そこはほら、いろいろありますから試してみました。PHPのmoduleとして組み込むのでレンタルホストとかでは無理です、無理だと思います、多分。管理者ぽい人達へ。
 上記よりダウンロードしてREADMEを読めば全てが事たりるのですけど、Mac OS X 10.5で、かつ64bitなCPUを搭載しているMacですと、Apacheさんも64bitなのでモジュールを動かすのに少し手間取りました。うちのMacはレガシーだが64bit環境なんだ、G5だけどなー、あはははは。

 これは別にPHP Screwに限った事ではないのですけど、

phpize ./configure

 で済むところを、

MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure

 とかも盛大に書いてあげないとコンパイルされたモジュールを認識してくれません。盛大に書かずにコンパイルしてもCLI版の方は32bitなので認識してくれたりもして難儀です。凄く悩みました。ググると結構でてくるので、先人達に非常に感謝しました。ありがとうありがとう。

 暗号化を行うコマンドもコンパイルして、それを用いてファイルを暗号化します。その暗号化されたファイルにはヘッダーが書かれてあって、Webサーバ経由でアクセスされた場合にそのヘッダーを認識すると複合化してPHPエンジンへ渡すみたいな仕組みの様です。
 なのでモジュールを有効にしておけば、暗号化したファイルを配置するだけ、暗号化したファイルとそうではないファイルを混合させても大丈夫。暗号化したファイルから暗号化したファイルをrequireしても、又はその逆でも、暗号化したファイルから暗号化されていないファイルをrequireしても、又はその逆でも須く全然OK。
 素敵お手軽で良いです、仕事以外では絶対に使わないと思うけど。