PHP Screw はオープンソースソフトウェアで、ロイヤリティフリー(無償)で使えます。
% wget "http://prdownloads.sourceforge.net/php-screw/php_screw-1.5.tgz?download" % tar -xvf php_screw-1.5.tgz % cd php_screw-1.5 % phpize
% vi my_screw.h 変更前) short pm9screw_mycryptkey[] = { 11152, 368, 192, 1281, 62 }; 変更後)あくまで例です short pm9screw_mycryptkey[] = { 123, 456, 789, 987, 654, 321 };
% ./configure % make
% sudo cp modules/php_screw.so /usr/lib/php5/modules/
% cd tools % make % sudo cp -p screw /usr/bin
extension=php_screw.so
最後に apacheを再起動して、インストール完了。
% vi test.php <?php echo date("Y-m-d H:i:s")."\n"; ?> 暗号化 % screw test.php ↓ Success Crypting(screw.php) と出れば成功。 暗号化されたか確認 % less test.php ⇒ バイナリファイルになっていればOK。
バックアップとして、同ディレクトリに test.php.screw が作成されるので必ず削除します。
ただし、オリジナルは削除したらダメ。念のため…
% for f in `find /path/to/script/dir -type f -name "*.php"`; do screw $f rm -f $f.screw done
xargs コマンドとの組み合わせは、うまくいかなかった。。
なお、screw で暗号化したサーバーと暗号化したスクリプトを実行するサーバーは同一でないと駄目っぽい。
サーバAで暗号化したスクリプトを screw がインストールされたサーバーBでは実行できないという事。
ただし、暗号化SEEDキー(pm9screw_mycryptkey)を同じにして双方のサーバーにインストールした場合はこの限りではないかも。(未確認)