写点什么

动手实践,Linux 安装 php-vld 全过程实录

发布于: 2021 年 06 月 11 日
动手实践,Linux安装php-vld全过程实录

开篇三问

对于一些新手小白可能会发问: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)
复制代码




作者:架构精进之路,十年研发风雨路,大厂架构师,CSDN 博客专家,专注架构技术沉淀学习及分享,职业与认知升级,坚持分享接地气儿的干货文章,期待与你一起成长

关注并私信我回复“01”,送你一份程序员成长进阶大礼包,欢迎勾搭。



Thanks for reading!


发布于: 2021 年 06 月 11 日阅读数: 15
用户头像

坚持分享接地气儿的架构技术文章! 2018.02.26 加入

同名微信公众号「架构精进之路」,专注软件架构研究,技术学习与职业成长!坚持原创总结、沉淀和分享,希望能带给大家一些引导和启发,感谢各位的支持(关注、点赞、分享)!

评论

发布
暂无评论
动手实践,Linux安装php-vld全过程实录