在给客户部署php站点的时候往往存在这样的问题,即不想让别人看到自己站点的php核心代码
在此给出一种实现方案,利用php-screw对php站点进行加密
首先到http://sourceforge.net/projects/php-screw/files/php-screw/下载安装包
解压
tar -zxvf php_screw-1.5.tar.gz
进入文件夹进行自定义加密文件
其中php_screw.h中的第一行的宏定义是加密文件开头的字符串,建议修改一下,别让其他人一眼就看出你是用screw加密的
第二行定义的是上面字符串的长度,数值保证和上面修改的字符串长度一致就可以,否则运行的时候可能会无法解密出来
my_screw.h中放的是加密种子,可以自己修改,建议不要太长
接下来执行安装
phpize
./configure --with-php-config=/usr/bin/php-config
后面跟着的路径根据自己的实际情况进行设置,php-config在哪路径就设哪
make & make install
如果出现错误
/root/php_screw-1.5/php_screw.c:133: error: ‘struct _zend_compiler_globals’ has no member named ‘extended_info’
需要打开php_screw.c
将 124行,133行 的
CG(extended_info) = 1;
修改为:
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;
然后重新执行make & make install
在php.ini 文件中 添加
extension=php_screw.so
重启服务器,你的服务器就能对加密的文件自动解密执行了
接下来介绍如何加密文件
进入源码当中的tools文件,执行make
然后会生成一个screw可执行文件
将其添加到环境变量中
sudo mv screw /opt/
sudo ln -s /opt/screw /usr/bin/screw
接下来就可以使用命令 screw xxxx (xxx为filename)对文件进行加密了