centos7.配置php-beast扩展

在网上看到了php-beast源码加密扩展后,尝试着想要搭建一下,结果失败了N次。

后来发现,它是需要源码安装的php才可以配置成功,因为它需要php源码里的部分头文件等各种定义,不然编译的时候会报各种c的错,什么属性未定义了、变量类型错误了等等。

所以,如果你想要用php-beast来加密你的代码,那就先从源码编译安装php开始吧。

首先在php.net上选择想要安装的php版本下载地址,本例是以php5.6.18版本测试。

wget http://cn2.php.net/distributions/php-5.6.18.tar.bz2

然后解压

tar jxvf php-5.6.18.tar.bz2


如果解压失败,提示没有找到bz2的话,安装bz2的解压程序


yum install bzip2



安装PHP前,需要安装编译环境和PHP的相关依赖。下面是相关命令:


yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers gd gd2 gd-devel gd2-devel perl-CPAN pcre-devel

然后开始编译安装PHP,检测编译环境:

./configure --prefix=/usr/local/php56 --with-config-file-path=/etc/php56 --enable-fpm --enable-pcntl --enable-mysqlnd --enable-opcache --enable-sockets --enable-sysvmsg --enable-sysvsem  --enable-sysvshm --enable-shmop --enable-zip --enable-ftp --enable-soap --enable-xml --enable-mbstring --disable-rpath --disable-debug --disable-fileinfo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pcre-regex --with-iconv --with-zlib --with-mcrypt=/usr/local/lib/libmcrypt --with-gd --with-openssl --with-mhash --with-xmlrpc --with-curl --with-imap-ssl


待得一切通过后开始编译安装:

make && make install


安装成功后则可开始下一步配置php-beast扩展操作了。


同样先下载到本地,然后解压,修改加密Key。

 wget https://github.com/liexusong/php-beast/archive/master.zip
 unzip master.zip
 cd php-beast-master

修改加密key


vi key.c
</pre><pre code_snippet_id="1584559" snippet_file_name="blog_20160222_8_9757878" name="code" class="html"><pre name="code" class="html">char __authkey[8] = {
    0x01, 0x1f, 0x01, 0x1f,
    0x01, 0x0e, 0x01, 0x0e
};
 
 

接下来进行编译安装:

 phpize
 ./configure
$ make

编译完成后编辑/etc/php.ini文件加入配置项extension=beast.so ,重启php-fpm。


 make install


查看info.php的配置如图所示结果就说明已经安装成功了。


然后你就可以使用beast_encode_file()函数进行加密了。


这里在配置的时候还有一点儿没有研究透的是在浏览器中运行该加密操作的php文件总是报500错误,有兴趣的可以继续研究一下,看看是什么原因导致的。

我是在命令行里执行的加密操作的php文件:


php -c /etc/php.ini test.php 

如有不对的地方,欢迎指正。




注:中间有些许调试php-fpm导致的出错的地方,我是这样做的,先是设置php环境变量:

#打开文件
vi /etc/profile
# 在末端添加,退出
export PATH=$PATH:/usr/local/php56/bin
#立即生效
source /etc/profile

用的是laravel框架,发现打开配置好的项目,还是报500,但是public下的info.php可以访问到,感觉有可能是因为php-fpm没有指定好的原因,所以查看了下php-fpm发现果然是,接下来关掉php-fpm后,重新修改php-fpm的配置文件。


/usr/local/php56/sbin/php-fpm -c /etc/php.ini -y /usr/local/php56/etc/php-fpm.conf.default -D


这样项目就能够正常运行了。

猜你喜欢

转载自blog.csdn.net/u011743396/article/details/50715108