石家庄住房和城乡建设部网站,做网站被骗去哪投诉,久产久人力有限公司,wordpress 调用tag标签云一、大体流程图 二、PHP 项目文件加密 下表列出了Zend产品中的PHP版本及其内部API版本和Zend产品版本。 如何加密请往后看 三、如何使用 第一步#xff1a;确认当前环境 Amai Phalcon 前#xff0c;请确认您具备以下两个条件#xff0c;如果您的环境不满足此条件#xff0c… 一、大体流程图 二、PHP 项目文件加密 下表列出了Zend产品中的PHP版本及其内部API版本和Zend产品版本。 如何加密请往后看 三、如何使用 第一步确认当前环境 Amai Phalcon 前请确认您具备以下两个条件如果您的环境不满足此条件建议您对系统环境进行重新配置。 条件1PHP版本在5.5.X以上必须为NTS 条件2必须安装ZendGuardLoader 第二步生成机器码机器码是授权文件的重要组成部分每一台服务器都有一个独立的机器码您只需运行由 我们所提供的机器码生成工具来获取您的机器码即可。 注 每一台服务器的机器码都是独立的如果您 是需要将 ECstore 部署在多台服务器上 您需要生成多个机器码 在windows/linux终端运行hardware.sh获取机器码如图 1Windows 环境 2Linux 环境 第三步申请授权文件在邮件中写入您的机器码与您的公司名称以邮件形式发送至overcome.wangmial.com 进行申请授权文件。邮件标题以“申请ego license授权文件”注明 第四步获取授权文件及部署 1. 如果您提供的信息有效您将会以邮件形式获取到您的license授权文件“license.zl” 把该文件放入在ecstore安装目录下 2. 编辑php.ini文件搜索‘zend_loader.license_path’ 3. 加上zend_loader.license_path‘Phalcon Web 安装目录/license.zl’ 4. 重启web server 5. 通过浏览器打开您的网店地址,这就表示您的 license 授权文件安 装成功可继续进行安装 6. 完成后记如果您的研发人员需要在本地进行开发我们为您提供针对研发人员本地开发的 license文件“developer.zl”,开人人员无需进行申请直接部署在自己的电脑上开发即可。 本地开发license文件位置Phalcon 目录下developer.zl 第五步很遗憾PHP 的Phalcon框架暂时不支持加密一下为官方邮件该邮件为20170512官方回复 Windows 环境测试 安装要求 1、php版本 5.6 2、把加密的php文件上传到服务器上看看效果提示php文件采用了Zend Guard加密需要安装Zend Loader/ZendOptimizer 3、Zend Guard Loader 仅支持NTS 4、修改php.ini文件 5、重启服务器 详细步骤 1、下载Zend Guard Loader (Runtime for PHP 5.5 or 5.6)在这里我选择Windows版本http://www.zend.com/en/products/loader/downloads#Windows 2、phpStudy 安装将下载好后解压压缩包zend-loader-php5.6-windows-x86_update1.zip 找到目录下的 ZendLoader.dll 文件将它放到你的php目录下ext下再编辑php.ini文件添加一段代码如 在这里编辑E:\phpStudy\php\php-5.6.27-nts\php.ini [Zend.loader]
zend_loader.enable1
zend_loader.disable_licensing1
zend_loader.obfuscation_level_support3
zend_loader.license_path
zend_extensionE:\phpStudy\php\php-5.6.27-nts\ext\ZendLoader.dll 选择一个php5.6 的非安全线程去启动 运行phpinfo()会看到如下信息 3、下载ZendGuard-7.0.0-win32.win32.x86.msihttp://www.zend.com/en/products/guard/direct关于如何加密文件和项目【PHP】用Zend加密PHP源码/保护你的源代码图文教程 4、测试代码就以ThinkPhp5.0 的官方代码为案例进行测试 加密前的代码文件thinkphp_5_full 加密后的代码文件thinkphp_5_full_encode 使用Visual Studio Code 分别打开加密前和加密后的代码项目thinkphp_5_full 通过浏览器访问页面效果 thinkphp_5_full_encode 可以看出已被加密成二进制文件了不能打开通过浏览器访问则是正常的 注意把加密后的代码放在项目目录中如使用了ZendGuard加密的PHP代码的网站而没有安装Zend Guard Loader就会出现下图错误Zend Guard Run-time support missing! 安装遇到的坑 分析原因由于我安装的php 版本为TS 意思就是安全线程Windows版的PHP从版本5.2.1开始有Thread Safe和NoneThread Safe之分。 【1】Thread Safe是线程安全执行时会进行线程Thread安全检查以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。 【2】Non Thread Safe是非线程安全在执行时不进行线程Thread安全检查。 Thread Safety : enable 是不能安装 ZendLoader.dll 的Installing Zend Guard Loader for any PHP-NTS distribution不安线程成才可以的 许可认证为空 修改配置参数禁用修改为不禁用重启服务器即可 zend_loader.disable_licensing1 修改为zend_loader.disable_licensing0 完整配置 [Zend.loader]
zend_loader.enable1
zend_loader.disable_licensing0
zend_loader.obfuscation_level_support3
zend_loader.license_pathE:\phpStudy\php\php-5.6.27-nts\WWW/tp52.zl
zend_extensionE:\phpStudy\php\php-5.6.27-nts\ext\ZendLoader.dll 参考文献 1、如何对PHP文件进行加密——ZendGuard加密与ZendLoader解密 2、ecstore 授权文件的安装 3、官方文档http://www.zend.com/en/products/zend-guard 4、官方安装 Zend Guard Loader 5、注册Zend Guard 6、Zend Guard功能 7、图解PHP使用Zend Guard 6.0加密方法教程 启用许可认证license 需要先生成一个 license.zl然后把该文件配置到php.ini 文件中 选择正确的PHP 版本很重要的哦 选择安全配置license注意第四步的 名称和编码的要一样哦ThinkPHP-Encode-License 最后生成的加密文件二进制文件 复制该文件到项目目录下去 浏览器访问 说明以上提示表示没有配置 license路径于是提示php警告这时候我们查看配置文件php.ini [Zend.loader]
zend_loader.enable1
zend_loader.disable_licensing0
zend_loader.obfuscation_level_support3
zend_loader.license_pathE:\phpStudy\WWW/Product_TP5.zl
zend_extensionE:\phpStudy\php\php-5.6.27-nts\ext\ZendLoader.dll 也就是以上红色部分文件加载的文件不是方才生成的文件修改为以下配置刚才生成的文件重启服务器 zend_loader.license_pathE:\phpStudy\WWW/ThinkPHP-Encode-License.zl 刷新刚才访问的网页文件就可以正常访问了 在这里用的是试用版有一下问题 1、加密的代码不会优化; 2、加密的文件14天后过期; 3、如果使用license授权license 3天后过期。 Linux 安装测试 1、如何安装PHP查看我的另外一篇博客http://www.cnblogs.com/tinywan/p/6647587.html / 2、一定要是NTS 3、下面使用连个项目对比测试加密效果 【1】项目名称thinkphp_5_full Nginx配置端口号8080 nginx.conf配置文件 # thinkphp_5_fullserver {listen 8080;server_name 127.0.0.1;set $root_path /home/www/thinkphp_5_full/public;root $root_path;index index.php index.html;location / {if (!-e $request_filename) {rewrite ^(.*)$ /index.php?s/$1 last;break;}}location ~ \.php$ {try_files $uri 404;fastcgi_pass unix:/var/run/php5-fpm.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}} 通过浏览器访问8080端口访问正常 【2】项目名称ThinkPHP-Encode-License 端口号8088 配置文件nginx.conf # ThinkPHP-Encode-Licenseserver {listen 8088;server_name 127.0.0.1;set $root_path /home/www/ThinkPHP-Encode-License/public;root $root_path;index index.php index.html;location / {if (!-e $request_filename) {rewrite ^(.*)$ /index.php?s/$1 last;break;}}location ~ \.php$ {try_files $uri 404;fastcgi_pass unix:/var/run/php5-fpm.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}} 浏览器访问8088端口访问已被加密不可以访问 编辑配置文件vim /etc/php5/fpm/php.ini [Zend.loader]
zend_loader.enable1
zend_loader.disable_licensing0
zend_loader.obfuscation_level_support3
zend_loader.license_path/home/www/ThinkPHP-Encode-License.zl
zend_extension/home/www/zend-loader-php5.5-linux-x86_64/ZendGuardLoader.so phpinfo() 查看是否安装成功 安装成功后还是不能够访问 Nginx 错误日式 2017/05/23 10:34:59 [error] 5503#0: *9 FastCGI sent in stderr: PHP message: PHP Fatal error: Incompatible file format: The encoded file has format major ID 7, whereas the Loader expects 6 in /home/www/ThinkPHP-Encode-License/public/index.php on line 0 while reading response header from upstream, 为什么这样子来PHP加密时候的版本问题吗啊昨天是5.6 呀今天在Linux 的是5.5 呀。怎么可以使用昨天的来调试这个来,,,,无语.............. 新建个工程ThinkPHP-Encode-License-5.5 这时候先切换到windows 同时改变php 版本为5.5我们写个test.php 文件进行测试 访问项目还是一个吊样啊不行啊大哥 你是加载错误的许可认证吗一看配置文件空的呀原始切换文件就是什么都没有了 扩展都没安装怎么可鞥 去官方在下载个5.5 版本的倒腾下 [Zend.loader]
zend_loader.enable1
zend_loader.disable_licensing0
zend_loader.obfuscation_level_support3
zend_loader.license_pathE:\phpStudy\WWW/ThinkPHP-Encode-License-5.5.zl
zend_extensionE:\phpStudy\php\php-5.5.38\ext\ZendLoader.dll google 一番 看到这个表 https://support.zend.com/hc/en-us/articles/217058968 日志报错 astCGI sent in stderr: PHP message: PHP Fatal error: Incompatible file format: The encoded file has format major ID 7, whereas the Loader expects 看来是这个加密工具版本的为题了Zend Guard 7 (64-bit) 仔细琢磨原来我一直加密使用的PHP版本是php5.6 版本这个前面已经说过了的如图所示 在这里我们在重新加密一次。记得这次一定要选php5.5 版本linux 安装的php 版本为5.5.9 最后生成的文件上传到Nginx服务器目录,修改配置文件 1vim /usr/local/nginx/conf/nginx.conf set $root_path /home/www/ThinkPHP-Encode-License-5.5/public;
root $root_path; (2)vim /etc/php5/fpm/php.ini [Zend.loader]
zend_extension/home/www/ZendGuardLoader.so
zend_extension/home/www/opcache.so
zend_loader.enable1
zend_loader.disable_licensing0
zend_loader.obfuscation_level_support3
zend_loader.license_path/home/www/ThinkPHP-Encode-License-5.5.zl 重启php5-fpm 和Nginx打开页面查看已经OK 在这里为了测试给一个错误的许可认证文件 ThinkPHP-Encode-License-5.5-error.zl zend_loader.license_path/home/www/ThinkPHP-Encode-License-5.5-error.zl 可以看出Nginx直接报错 错误日志 [error] 7091#0: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 58.101.3.167, server: 127.0.0.1, request: GET / HTTP/1.1, upstream: fastcgi://unix:/var/run/php5-fpm.sock:, 重新配置回原来正确的许可认证则可以正常访问啦 注 每一台服务器的机器码都是独立的如果您 是需要将 ECstore 部署在多台服务器上 您需要生成多个机器码 在windows/linux终端运行hardware.sh获取机器码如图 脚本文件hardware.sh #!/usr/bin/env php
?phpfunction command_hardware(){if(function_exists(zend_loader_enabled) zend_loader_enabled()){foreach (zend_get_id() as $hardware) {echo $hardware, \n;}} else {echo zend guard loader not installed or not enabled!;exit;}}
command_hardware(); Linux 下面 在这里为cli 模式所以别忘记给cli 模式的配置文件也安装ZendLoader 扩展库否则报错zend guard loader not installed or not enabled! windows 下面 PHP CLI 命令行 运行加密文件可能出现的问题 加密主机号 ***************针对Linux 环境 Phalcon框架扩展和Zend Guard Loader 扩展冲突的问题******* 以上测试PHP配置文件是没有安装Phalcon扩展一点安装Phalcon扩展启动Nginx则会直接报错 配置 vim /etc/php5/fpm/php.ini 添加一下内容 [Zend.loader]
zend_extension/usr/lib/php5/ZendGuardLoader.so
zend_extension/usr/lib/php5/20121212/opcache.so
zend_loader.enable1
zend_loader.disable_licensing1
zend_loader.obfuscation_level_support3 重启 php-fmp 出现一下错误页面信息 Nginx错误日志GET /info.php HTTP/1.1, upstream: fastcgi://unix:/var/run/php5-fpm.sock: 注释掉上面/etc/php5/fpm/php.ini 的内容重启php-fmp 继续测试可以正常显示 总结如果安装Phalcon 扩展则在 /etc/php5/fpm/php.ini 添加 zend_extension 扩展则会出现问题 以上都是自己踩的坑啊 -----------------------正式开始》》》》》》》》》》》》》》》》 我们看看Phalcon扩展文件添加在那里了原来在这个文件夹下面 rootiZ238xopqw6Z:/home/www# find / -name phalcon.so
/usr/lib/php5/20121212/phalcon.so 我们复制 ZendGuardLoader.so 到/usr/lib/php5/20121212 文件夹下面 rootiZ238xopqw6Z:/home/www# cp /usr/lib/php5/ZendGuardLoader.so /usr/lib/php5/20121212/ZendGuardLoader.so
rootiZ238xopqw6Z:/home/www# cd /usr/lib/php5/20121212/
rootiZ238xopqw6Z:/usr/lib/php5/20121212# ls
curl.so gd.so json.so ldap.so mysqli.so mysql.so opcache.so pdo_mysql.so pdo.so phalcon.so readline.so redis.so ZendGuardLoader.so 当然了这是php5.5.9 和php7不一样了老规矩新建文件vim /etc/php5/mods-available/zend-loader.ini 添加以下内容 cd /etc/php5/mods-available vim zend-loader.ini [zend.loader]
zend_extensionZendGuardLoader.so
zend_loader.enable1
zend_loader.disable_licensing0
zend_loader.obfuscation_level_support2
zend_loader.license_path/home/www/thinkphp_5-encode-5.5.zl 切换到目录/etc/php5/fpm/conf.d 做一个软连接文件sudo ln -s 源文件 目标文件 ln -s ../../mods-available/zend-loader.ini 02-zend-loader.ini 重启php-fmp 继续测试nginx没有报错 配置文件加载的信息 如何安装ioncube扩展对PHP代码加密