読者です 読者をやめる 読者になる 読者になる

PHP Screwをインストール

オープンソース コンピュータ 自宅サーバー 趣味

そもそもPHP Screwってなんだ!?って話なんだけど(笑)

PHPを暗号化してくれるオープンソースのツールなんだな。まぁ、オープンソースなんで完璧って訳じゃないけど、作成したPHPをユーザ管理のサーバーに入れる時にソースがね、あまりきれいじゃないからさ。。。(^^;)

ただ、有償ソフトを使ってがっちりガードしないといけないかっていうとそこまででもないからオープンソースPHP Screwを使ってみるのです。

 

早速インストールしてみる。

ソースしかないのでコンパイルする必要があるからgccとか必要な開発ツールは適当にインストールしといてね。

 

Sourceforgeからphp-screwのtar,gzをダウンロードする。

今回は2013年4月15日に更新されたバージョン1.5を使う。

そうそう、インストール環境はScientific Linux 6.4 64bitとかそんな感じ

ダウンロード先:http://sourceforge.net/projects/php-screw/files/latest/download

 

cd /usr/local/src/

wget http://downloads.sourceforge.net/project/php-screw/php-screw/1.5/php_screw-1.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fphp-screw%2F&ts=1375776572&use_mirror=jaist

 

tar zxvf php_screw-1.5.tar.gz

cd php_screw-1.5

phpize

そんなコマンドねーよと怒られる。なのでphp-develを入れる

yum -y install php-devel

 

さて、もう一度

phpize

今度はエラーが出なかったので次へ

./configure

おぉ!ここもエラー無し良いねぇ

make

 

/usr/local/src/php_screw-1.5/php_screw.c: In function ‘zm_startup_php_screw’:

/usr/local/src/php_screw-1.5/php_screw.c:124: error: ‘struct _zend_compiler_globals’ has no member named ‘e                                    xtended_info’

/usr/local/src/php_screw-1.5/php_screw.c: In function ‘zm_shutdown_php_screw’:

/usr/local/src/php_screw-1.5/php_screw.c:133: error: ‘struct _zend_compiler_globals’ has no member named ‘e                                    xtended_info’

make: *** [php_screw.lo] エラー 1

 

はい、エラーが出ました。

Cなんてわからんから諦めようかなぁ~と思ったけどGoogle先生に聞いてみた。

 

ここのブログに書いてあった

 

というか、ここ見たら全部書いてあるやん(--;)

いやいや、気をとりなおして・・・

vi php_screw.c

124行目と133行目を修正する

 CG(extended_info) = 1;

  ↓

 CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;

 

make

おっ!無事に通った。

 

このままでも使えるのだが、暗号化コードがデフォルトのままってのもどうなん?

って事でmy_screw.hを修正

shortコマンドを使ってるから32767を上限にってどっかに書いてあった

あっ、ここだわ

 

そんな訳で、適当な数字を,で繋いでいく。長くても複合化の速度は変わらないそうなので、複合化されるまでの時間を稼ぎたいなら長くしておくと良いさ(ぉ

 

そんな訳で、再度コンパイル

make clean

./configure

make

 

暗号化用のコマンドもコンパイルしちゃう

cd tools/

make

cp -p screw /usr/local/bin/

 

php_screw.soをphpのextentionsディレクトリに移動させる

cd ../modules/

cp -p php_screw.so /usr/lib64/php/modules/

  ※yumでphpをインストールしている場合ね

 

php.iniを修正してphp_screwを使えるようにする

vi /etc/php.ini

一番最後の行でも良いので追加する

extension=php_screw.so

 

WEBサーバーを再起動(今回はyumでインストールしたapache2系)

service httpd restart

 

こんな感じね

テストでphpinfo.phpを作成してみる

<?php

  phpinfo();

?>

 

screw phpinfo.php

そもそものファイルはphpinfo.php.screwで保存される

 

さーWEBからアクセスしてみよう。

ちゃんと表示されたかな?