开篇三问

对于一些新手小白可能会发问:VLD 是什么?

答:vld 是 PECL extensions 扩展之一 ,也就是我们在 php.ini 中 extension=php_mysql.dll 这种,它的主要功能是方便我们查看 php 底层编译的 opcode。

紧接着又有第二问:opcode 是什么?

答:当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode)。Opcode cache 的目地是避免重复编译,减少 CPU 和内存开销。如果动态内容的性能瓶颈不在于 CPU 和内存,而在于 I/O 操作,比如数据库查询带来的磁盘 I/O 开销,那么 opcode cache 的性能提升是非常有限的。但是既然 opcode cache 能带来 CPU 和内存开销的降低,这总归是好事。  

直击灵魂的第三问:为什么要使用 Opcode?  

这得从 PHP 代码的生命周期说起,请求 PHP 脚本时,会经过五个步骤,如下图所示:

Zend 引擎必须从文件系统读取文件、扫描其词典和表达式、解析文件、创建要执行的计算机代码(称为 Opcode),最后执行 Opcode。每一次请求 PHP 脚本都会执行一遍以上步骤,如果 PHP 源代码没有变化,那么 Opcode 也不会变化,显然没有必要每次都重行生成 Opcode,结合在 Web 中无所不在的缓存机制,我们可以把 Opcode 缓存下来,以后直接访问缓存的 Opcode 岂不是更快,启用 Opcode 缓存之后的流程图如下所示:

Linux 安装过程

安装查看 opcode 利器 vld,记录一下开发机安装 php-vld 过程。

一、准备工作

Linux 开发机一台;

Nginx、PHP 已安装。

二、安装 php vld 扩展

2.1、下载文件

下载:http://pecl.php.net/package/vld

或者 wget 方式:wget http://pecl.php.net/package/get/vld-0.14.0.tgz

2.2、解压文件

tar zxvf vld-0.14.0.tgz

如果这一步骤出错,需安装 gcc(yum -y install gcc),然后再试。

cd vld-0.14.0

2.3、phpize

依次执行 phpize,用于构建 pecl 扩展

这一步骤如出错,需安装 php-devel

yum install php-devel

2.4、configure

查找 php-config 所在位置:

find / -name php-config

设置 php-config 的路径与上面保持一致:

./configure --with-php-config=/usr/bin/php-config --enable-vld

2.5、编译和安装

make && make install

至此安装完成。

三、添加新扩展配置

3.1、编辑 php.ini,添加 vld.so 新扩展

vim /usr/local/matrix/lib/php.iniextension=vld.so

3.2、重启 php-fpm 生效

service php-fpm reload

查看 phpinfo() 信息,vld 扩展添加成功。

四、试用

编写个简单的例子试一下

<?php   echo "Hello World";   $a = 1 + 1;   echo $a;

复制代码

试用

php -dvld.active=1 -dvld.execute=0 test.php(运行test.php的时候,使用vld插件,不执行,只显示opcode)

复制代码

动手实践,Linux 安装 php-vld 全过程实录相关推荐

  1. linux内核内存映射实验报告,动手实践-Linux内存映射基础(上)

    Linux内核分析与应用 西安邮电大学(陈莉君) 在庞大的Linux内核源代码学习中,如何抓住主要线索和思路,如何让所学能够切实地应用起来,本课程主讲以自己20年来对Linux内核的研究和教学为基础, ...

  2. 第 1 章 虚拟化 - 013 - 动手实践 Linux VLAN

    在实验环境中实施和配置如下 VLAN 网络. 配置 VLAN 编辑 /etc/network/interfaces,配置 ens192.10.brvlan10.ens192.20 和 brvlan20 ...

  3. linux下字体怎么安装方法,linux安装字体方法

    1.查看系统中文字体 #fc-list :lang=zh 2.如果提示commont not fount 说明为安装fontconfig 3.安装fontconfig #yum -y install ...

  4. kali linux 安装驱动安装教程,Kali Linux 安装英伟达显卡过程实录

    原标题:Kali Linux 安装英伟达显卡过程实录 Linux 系统安装 Nvidia 显卡驱动从来都是个蛋疼的事...... 这方面 Ubuntu 作得比较好,将 Nvidia 的显卡驱动纳入了官 ...

  5. linux qt编译命令,Linux 下编译并安装配置 Qt 全过程

    Linux 下编译并安装配置 Qt 全过程 1.获得源代码 src 官网下载地址:ftp://ftp.qt.nokia.com/qt/source/ 2009 年 10 月 1 日发布的 qt-x11 ...

  6. 从 Linux 安装到 Hadoop 环境搭建全过程

    Hadoop 环境搭建 从 Linux 的最小化安装到 Hadoop 环境的搭建,尽可能详尽介绍每个步骤. 文章目录 Hadoop 环境搭建 环境准备 安装 CentOS 7 配置 yum 源 安装 ...

  7. eBPF动手实践系列一:解构内核源码eBPF样例编译过程

    作者:闻茂泉 他山之石 了解和掌握纯c语言的ebpf编译和使用,有助于我们加深对于eBPF技术原理的进一步掌握,也有助于开发符合自己业务需求的高性能的ebpf程序.目前常见和主流的纯c语言的ebpf编 ...

  8. Redhat linux 安装 gcc编译器,Gcc源码包,rpm包安装方法!

    点评:分两种情况: 先看这篇转过来的文章,俺老孙懒得写了. Linux软件安装通用思路 在Linux系统中,软件安装程序比较纷繁复杂,不过最常见的有两种: 1)一种是软件的源代码,您需要自己动手编译它 ...

  9. guice google_与Google Guice的动手实践

    guice google by Sankalp Bhatia 通过Sankalp Bhatia 与Google Guice的动手实践 (A hands-on session with Google G ...

最新文章

  1. Nested Mappings
  2. python3.6 asyncio paramiko_Python开发【第六篇】:模块
  3. iOS Sprite Kit教程之场景的设置
  4. [目录]Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案
  5. 公钥和私钥怎么生成_科普 | Eth2 验证者如何生成和保护取款密钥
  6. Chrome keyboard shortcuts
  7. MATLAB的Kmeans函数实现聚类
  8. sql文件建立mysql库_使用.SQL文件创建MySQL数据库
  9. 手把手教你搭建pytorch深度学习网络
  10. 由echarts想到的js中的时间类型
  11. Java 学习之集合类(Collections)
  12. 1. WordPress 安装
  13. 【优化分类】基于matlab遗传算法优化支持向量机分类(多输入多分类)【含Matlab源码 QF003期】
  14. java多线程同步synchronized,浅析Java多线程同步synchronized,javasynchronized
  15. 300 页干货!李宏毅《一天搞懂深度学习》(附下载)
  16. 【有限元】最简单fluent流体分析实例-2D模型中带障碍物计算流体流速与压力分布
  17. 安徽大学计算机考研经验贴
  18. JAVA——对当前时间进行输出
  19. 程序员如何写好技术简历 —— 实例、模板及工具
  20. docker部署教程

热门文章

  1. Z transformation
  2. 如何在网页标题栏中加入图片!
  3. 谷歌为 Chrome 推出12款官方新皮肤
  4. 包装盒的制作流程是哪几项?
  5. 优秀惬意的文章会让你的身心愉悦!
  6. 二建人证合一一个月工资多少?
  7. Python在股票池选取中的应用
  8. 把域名和IP地址绑定后,利用域名+端口号访问自己搭建的网站
  9. Android基础篇-多线程下载(一)
  10. excel 画散点图 怎么设置图片的分辨率_干货纯享 | 你所忽略的论文图片处理技巧...