这里所说是vld-0.10.1的安装方法,总结了许多失败经验,记录一下。
http://pecl.php.net/get/vld-0.11.2.tgz
1.进入tar下,解压
tar zxvf vld-0.10.1.tgz
2.进入解压后的文件
cd vld-0.10.1
3. usr/local/php/bin/phpize
4.这时会发现解压之后的文件中没有configure这个文件,我们需要到tar包下将autoconf-2.62.tar.gz解压,./configure,make,make install
5.这时再进入vld-0.10.1文件下
./configure --with-php-config=/usr/local/php/bin/php-config --enable-vld
6.make && make install
7.安装完成,配置php.ini
cd /usr/local/php/lib
8. 在php.ini中任意地方加入 extension=vld.so
9.配置完成,重启服务
/usr/local/http2/bin/apachectl restart
至此,vld安装及配置就全部完成了。
现在来测试一下:
在根目录下新建一个文件用来测试
mkdir demo
vi at.php
<?php
@$a=$_POST['a'];
echo $a;
?>
保存后输入:
/usr/local/php/bin/php -dvld.active=1 at.php
成功后出现以下页面
Branch analysis from position 这条信息多在分析数组时使用。
Return found 是否返回,这个基本上有都有。
filename 分析的文件名
function name 函数名,针对每个函数VLD都会生成一段如上的独立的信息,这里显示当前函数的名称
number of ops 生成的操作数
compiled vars 编译期间的变量,这些变量是在PHP5后添加的,它是一个缓存优化。这样的变量在PHP源码中以IS_CV标记。
op list 生成的中间代码的变量列表
使用-dvld.active参数输出的是VLD默认设置,如果想看更加详细的内容。可以使用-dvld.verbosity参数。