v8js - php解析js代码
假设 可自定义
- php 安装目录: /root/php/bin/php74
- php 超链接目录路径 : /usr/bin
- 源码目录 : /root/php/packages
- php.ini 路径 : /root/php/bin/php74/lib/php.ini >> PHP源码编译
进入源码目录
cd /root/php/packages
安装依赖 google-v8-8.4.371.23 glibc2.18 python3 gcc4.8.5 ninja
fetch v8 && cd v8 && git checkout 8.0.426.30 && gclient sync
tools/dev/v8gen.py -vv x64.release -- is_component_build=true use_custom_libcxx=false
ninja -C out.gn/x64.release/
安装 php-v8js 扩展 GLIBCXX > 3.4.21
strings /lib64/libstdc++.so.6 | grep GLIBC
wget https://pecl.php.net/get/v8js-2.1.2.tgz
tar xzf v8js-2.1.2.tgz && cd v8js-2.1.2
phpize && ./configure --with-v8js=/opt/v8 LDFLAGS="-lstdc++" CPPFLAGS="-DV8_COMPRESS_POINTERS“
make && make install
修改 php.ini
echo -e "[v8js]\nextension = v8js.so" >> /root/php/bin/php74/lib/php.ini
安装测试
php -i | grep v8js
pkill php-fpm | php-fpm -R
- 打开浏览器访问 : http://192.168.174.128 >> 查看 v8js 是否加载好
v8js 相关函数
- V8的基本使用 V8Js::executeString、V8Js::registerExtension()、 V8Js::registerExtension()
BASH汇总
cd /root/php/packages
fetch v8 && cd v8 && git checkout 8.0.426.30 && gclient sync
tools/dev/v8gen.py -vv x64.release -- is_component_build=true use_custom_libcxx=false
ninja -C out.gn/x64.release/
ln -s /usr/local/lib64/libstdc++.so.6 /lib64/libstdc++.so.6
strings /lib64/libstdc++.so.6 | grep GLIBC
cd /root/php/packages
wget https://pecl.php.net/get/v8js-2.1.2.tgz
tar xzf v8js-2.1.2.tgz && cd v8js-2.1.2
phpize && ./configure --with-v8js=/opt/v8 LDFLAGS="-lstdc++" CPPFLAGS="-DV8_COMPRESS_POINTERS"
make && make install
echo -e "[v8js]\nextension = v8js.so" >> /root/php/bin/php74/lib/php.ini
php -i | grep v8js
pkill php-fpm | php-fpm -R
PHP 测试代码下载 H
- V8与php变量与类的交互
- V8执行js脚本文件 : 测试在php/js中对 md5 和 sha1 加密
此测试代码具有特殊性,结果仅作参考
需个人测试的请联系博主,索要基础性能测试代码
PHP测试源码
PHP扩展安装与使用系列课程php测试源码.zip
视频学习地址
PHP扩展安装与使用 — 赋予PHP更强大的魅力
上一节:apcu - 用户数据缓存插件
下一节:gmp,bcmath,trader - 数学运算函数