PHP代码混淆和加速

背景

因为项目的php代码需要保密处理,stackoverflow上找到两个选择

推荐使用opcache方式

php7默认是安装opcache的,我的配置为什么没有启用是因为没有加

zend_extension=opcache.so

创建opcode缓存目录:

mkdir -m 777 /php_opcache/opcache_file_cache

php.ini 配置文件和其他地方有点不同

zend_extension=opcache.so

opcache.memory_consumption=128

opcache.interned_strings_buffer=8

opcache.max_accelerated_files=4000

;opcache不保存注释,减少opcode大小

opcache.save_comments=0

;关闭PHP文件时间戳验证

opcache.validate_timestamps=Off

;每60秒验证php文件时间戳是否更新

;opcache.revalidate_freq=60

opcache.fast_shutdown=1

;注意,PHP7下命令行执行的脚本也会被 opcache.file_cache 缓存.

opcache.enable_cli=1

;设置不缓存的黑名单

;opcache.blacklist_filename=/png/php/opcache_blacklist

opcache.file_cache=/php_opcache/opcache_file_cache

opcache.file_cache_only=0

opcache.enable=On

WARNING:设置opcache缓存目录opcache.file_cache=/php_opcache/opcache_file_cache

重启 php-fpm restart

2.遍历项目的全部文件,生成opcache 二进制文件

遍历项目脚本

generate_project_opcache.php

//你的php项目目录$yourProjectPath = '/data/php/project_dir';

opcache_compile_files($yourProjectPath);

function opcache_compile_files($dir) {

foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir)) as $v) {

if(!$v->isDir() && preg_match('%\.php$%', $v->getRealPath())) {

//生成opcache编译文件opcache_compile_file($v->getRealPath());

echo $v->getRealPath()."\n";

}

}

}

在命令行中执行 php generate_project_opcache.php遍历项目全部代码文件,生成opcache缓存

全部php文件都生成PHP文件一一对应的opcode(后缀为.php.bin)

把缓存目录所有者设为php-fpm运行用户,我这里是png:

sudo chown -R png:png /php_opcache/opcache_file_cache

3.最后一步

** 清空 php源代码里面内容 ** 只保留文件名和目录结构

启动php-fpm:

sudo php-fpm start

访问的你的项目

最后

其中xxx是一个32位的md5编码的字符串.

部署到目标服务器的时候,需要保留项目中内容被清空的PHP脚本.

而且路径一定要对应导出opcode时的路径,文中的就是:

/png/www/example.com/public_html/app/pma

另外,PHP还可以使用函数php_strip_whitespace()删除PHP源码中的注释和空格.

opcache.file_cache用来保护代码逻辑应该还是可以的,

但不能确保里面定义的量的安全,比如加密密钥.存也可以,但防君子不防小人,门槛高点而已.

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,

谢谢大家对mojotv.cn的支持.喜欢这个网站麻烦帮忙添加到收藏夹,添加我的微信好友:

felixarebest 微博账号: MojoTech 向我提问.

php 代码交付 混淆,PHP代码混淆和加速相关推荐

  1. 服务器项目混淆,压缩和混淆node.js服务端代码

    压缩和混淆node.js服务端代码 在前端我们有webpack,gulp等构建工具提供了从项目结构搭建到部署打包,基本所有工作流程所需要的都被覆盖到了. 在后台node.js写的服务端却是透明,很多时 ...

  2. python多分类混淆矩阵代码_深度学习自学记录(3)——两种多分类混淆矩阵的Python实现(含代码)...

    深度学习自学记录(3)--两种多分类混淆矩阵的Python实现(含代码),矩阵,样本,模型,类别,真实 深度学习自学记录(3)--两种多分类混淆矩阵的Python实现(含代码) 深度学习自学记录(3) ...

  3. java proguard 使用_使用proguard混淆java9代码

    序 本文主要研究一下如何使用proguard混淆java9代码 maven com.github.wvengen proguard-maven-plugin package proguard 6.0. ...

  4. [转载]用UglifyJS2合并压缩混淆JS代码——javascript系列

    从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎.chrome浏 ...

  5. 安卓逆向_18 --- APK保护策略【Java代码混淆、资源混淆、签名校验】

    Java 代码混淆介绍:https://www.bilibili.com/video/BV1UE411A7rW?p=60 Android 反编译利器 jadx:GitHub上直接下载:https:// ...

  6. Android逆向笔记-Proguard混淆Android代码以及去打印日志信息

    本笔记只记录其现象和功能,不记录具体怎么去用他. 这个Proguard全称应该是project guard,用来混淆Android代码的.如下未使用Proguard的类: 使用Proguard后: 这 ...

  7. oc代码混淆_OC代码混淆工具

    之前用python写了一个OC代码混淆脚本(python脚本),每次运行不方便,且其他人使用起来困难,就尝试写了一个mac工具. 工具地址:点我下载   密码:2405 现阶段工具还处于初级阶段,功能 ...

  8. Android Studio禁止混淆JNI代码

    1.在AS项目工程下: app/proguard-android.txt 或:app/proguard-rules.pro 禁止混淆JNI代码: # 设置所有 native 方法不被混淆 -keepc ...

  9. Android APK代码混淆与资源混淆详解,你确定不看?

    APK的混淆分为资源混淆与代码混淆.一般大部分都使用两者结合.尤其是目前主流的应用. 其中的优点: 防止被恶意破解逆向分析 减少apk体积,也是瘦身的方法 代码可阅读性降低 其中的缺点: 调试不方便( ...

  10. Android高级混淆和代码保护技术

    本文讲的是 Android高级混淆和代码保护技术, 这是一篇关于 Android 代码保护的文章,旨在介绍代码混淆.防止逆向工程的各种高级技巧.大家都很忙,我也赶着回去继续开发我的新应用,因此话不多说 ...

最新文章

  1. R语言使用fs包的file_info函数查看文件元信息(属性信息)、使用file_chmod函数修改文件的权限、使用file_chown函数修改文件的所有者
  2. Solaris IPMP 配置
  3. [转载]Yacc基础
  4. 【数据结构与算法】之深入解析“最优运动员比拼回合”的求解思路与算法示例
  5. 轻松弄懂var、let、const之间的区别(一看就懂)
  6. 软件工程(Rational统一过程)
  7. hpunix查看oracle监听,hp-ux 网络查看
  8. TCP/IP协议详解内容总结(怒喷一口老血)
  9. 完全公平调度 c语言,使用完全公平调度程序(CFS)进行多任务处理
  10. python win32api win32gui win32con PyUserInput实现自动化脚本
  11. python能写dnf脚本么_python dnf
  12. 机器人操作系统ROS—深度相机+激光雷达实现vSLAM建图与导航
  13. GhostScript 沙箱绕过命令执行漏洞
  14. 打造史上最容易使用的Tab指示符——Indicator
  15. for(atuo x : s)
  16. errpt and errclear are unnormal
  17. R语言 REmap安装以及城市信息获取失败问题
  18. 鸿蒙3.0 APP混合开发闪退问题笔记
  19. 2022-2028全球与中国国内和国际物流服务市场现状及未来发展趋势
  20. java 内存很高_Java服务器内存和CPU占用过高的原因

热门文章

  1. 计算机应用研究催稿被拒了,【求助】两次催稿均无回复是否意味着文章已被拒?...
  2. 写出在桌面上显示计算机的操作步骤,怎样让便签在Windows电脑桌面屏幕上一直显示?具体操作步骤是什么...
  3. Kali Linux 如何使用腾讯视频Linux版
  4. vuex五个属性及其使用传参
  5. 关于微信获取不到相册图片问题
  6. while函数用法 matlab,Matlab(七)while循环的使用
  7. 一般纳税人的认定标准
  8. Linux 基本命令 -------- tail 的使用
  9. tail在linux中的含义,如何在Linux中使用Tail命令
  10. 亚马逊云科技 | Summit - 中国峰会