php v8js
本文整理自大神 Corz
1、php56
/datas/soft/php56/bin/php -v
PHP 5.6. (cli)
#https://blog.csdn.net/lzm198707/article/details/70623421?utm_source=blogxgwz3
yum install re2c
yum install v8-devel
cd /datas/src/
wget http://pecl.php.net/get/v8js-0.1.3.tgz
tar -xzf v8js-0.1..tgz
cd v8js-0.1.
vim v8js.cc
新增 #define PHP_V8_VERSION "0.1.3"
/datas/soft/php56/bin/phpize
./configure --with-php-config=/datas/soft/php56/bin/php-config --with-v8js
make
make install
ll /datas/soft/php56/lib/php/extensions/no-debug-non-zts-/
vim /datas/soft/php56/etc/php.ini
新增 extension = "v8js.so"
/datas/soft/php56/bin/php --ri v8js
2、php72
/datas/soft/php72/bin/php -v
PHP 7.2. (cli) #升python 2.7 #升git + #装gcc 4.8. #升级glibc 2.18
#https://blog.csdn.net/tty521/article/details/80939607
wget http://cbs.centos.org/kojifiles/packages/glibc/2.22.90/21.el7/x86_64/glibc-2.22.90-21.el7.x86_64.rpm
wget http://cbs.centos.org/kojifiles/packages/glibc/2.22.90/21.el7/x86_64/glibc-common-2.22.90-21.el7.x86_64.rpm
wget http://cbs.centos.org/kojifiles/packages/glibc/2.22.90/21.el7/x86_64/glibc-devel-2.22.90-21.el7.x86_64.rpm
wget http://cbs.centos.org/kojifiles/packages/glibc/2.22.90/21.el7/x86_64/glibc-headers-2.22.90-21.el7.x86_64.rpm
rpm -Uvh glibc-2.22.-.el7.x86_64.rpm \
glibc-common-2.22.-.el7.x86_64.rpm \
glibc-devel-2.22.-.el7.x86_64.rpm \
glibc-headers-2.22.-.el7.x86_64.rpm \
--force --nodeps
strings /lib64/libc.so. |grep GLIBC_ #升级GLIBCXX
wget http://ftp.de.debian.org/debian/pool/main/g/gcc-8/libstdc++6_8.2.0-14_amd64.deb
ar -x libstdc++6_8.2.0-14_amd64.deb
yum install -y xz
tar -xvf data.tar.xz
mv /usr/lib64/libstdc++.so. /usr/lib64/libstdc++.so..bak
cp usr/lib/x86_64-linux-gnu/libstdc++.so.6.0. /usr/lib64/
ln -s /usr/lib64/libstdc++.so.6.0. /usr/lib64/libstdc++.so.
strings /usr/lib64/libstdc++.so. | grep GLIBCXX #编译v8、v8js(能翻墙跑就不会出错:https://github.com/phpv8/v8js/blob/php7/README.Linux.md)
#做了两个包,可以直接解压使用(https://pan.baidu.com/s/16CAFctj94fpeYIR9IZT_cQ)
ll v8.tar.gz
tar vkzxf v8.tar.gz -C /
ll phpext_v8js.tar.gz
tar vkzxf phpext_v8js.tar.gz -C /
vim /datas/soft/php72/etc/php.ini
/datas/soft/php72/bin/php --ri v8js
3、test
<?php
$v8 = new V8Js();
$v8->myname = 'test';
$JS = <<< EOT
func = function(name) {
return 'name is ' + name;
};
func(PHP.myname);
EOT;
$res = $v8->executeString($JS);
var_dump($res);
[root@localhost ~]# /datas/soft/php56/bin/php .php
string() "name is test"
[root@localhost ~]# /datas/soft/php72/bin/php .php
string() "name is test"
4、后续修正
[root@localhost ~]# ldd /bin/ls
-bash: /usr/bin/ldd: /usr/bin/bash: bad interpreter: No such file or directory
[root@localhost ~]# ll /usr/bin/bash
ls: cannot access /usr/bin/bash: No such file or directory
[root@localhost ~]# which bash
/bin/bash
[root@localhost ~]# ln -s /bin/bash /usr/bin/bash
[root@localhost ~]# ldd /bin/ls
linux-vdso.so. (0x00007fff30325000)
libselinux.so. => /lib64/libselinux.so. (0x00007f3e8a688000)
librt.so. => /lib64/librt.so. (0x00007f3e8a480000)
libcap.so. => /lib64/libcap.so. (0x00007f3e8a27b000)
libacl.so. => /lib64/libacl.so. (0x00007f3e8a073000)
libc.so. => /lib64/libc.so. (0x00007f3e89cb7000)
libdl.so. => /lib64/libdl.so. (0x00007f3e89ab2000)
/lib64/ld-linux-x86-.so. (0x00007f3e8a8b1000)
libpthread.so. => /lib64/libpthread.so. (0x00007f3e89895000)
libattr.so. => /lib64/libattr.so. (0x00007f3e89690000)
php v8js的更多相关文章
- 我们为什么要使用NodeJS
科普文一则,说说我对NodeJS(一种服务端JavaScript实现)的一些认识,以及我为什么会向后端工程师推荐NodeJS. "Node.js 是服务器端的 JavaScript 运行环境 ...
- aop注解
注解 xml的直接配置 <aop:config proxy-target-class="false"> //切入点 <aop:pointcut expressio ...
- Chrome 和 Webkit 的渊源
互联网的浪潮从未停息,而用以网上冲浪的冲浪板也一直在变得愈加精良.自人们进入互联网时代以来,即已经发生了三次浏览器大战.第一次浏览器大战的主角是IE和Netscape,最终IE凭借着Windows的庞 ...
- 使用 PHP 来做 Vue.js 的 SSR 服务端渲染
对于客户端应用来说,服务端渲染是一个热门话题.然而不幸的是,这并不是一件容易的事,尤其是对于不用 Node.js 环境开发的人来说. 我发布了两个库让 PHP 从服务端渲染成为可能.spatie/se ...
- 了解 node.js
原文为: 我们为什么要使用NodeJS 写的好,就收藏于此,供学习之用. 科普文一则,说说我对NodeJS(一种服务端JavaScript实现)的一些认识,以及我为什么会向后端工程师推荐NodeJS. ...
- javascript开源大全
javascript开源大全 Ajax框架-jQuery 可视化HTML编辑器-CKEditor 国产jQuery-UI框架-(jUI)-DWZ 网页开发FireFox插件-Firebug 服务器端的 ...
- Android 画个电池出来(Paint和canvas)
1.Android中很多时候都要自己去画一个自定义控件出来,就需要用到Paint和Canvas这两个类. 2.效果图:
- 用trie树实现输入提示功能,输入php函数名,提示php函数
参照刘汝佳的trie树 结构体 #include "stdio.h" #include "stdlib.h" #include "string.h&q ...
- v8环境搭建采坑记录
项目组有把js接入C++服务求的需求,故开始了v8接入的工作,用了一天多时间,v8才在centos环境上成功安装,过程中踩了很多坑,下面将采坑过程记录如下: centos下编译安装v8: 查看ce ...
随机推荐
- WebSocket Client连接AspNetCore SignalR Json Hub
突然有个需求,需要使用普通的websocket客户端去连接SignalR服务器. 因为使用的是.net core 版的signalr,目前对于使用非signalr客户端连接的中文文档几乎为0,在gay ...
- java CountDownLatch 等待多线程完成
CountDownLatch允许一个或多个线程等待其他线程完成操作. package com.test; import java.util.concurrent.CountDownLatch; pub ...
- Invoke PowerShell by UiPath
UiPath能够调用PowerShell ,最近在项目中得到了实践: 需求: 某系统生成的日志文件的名字,时间戳只到分,形如bz20180214_1655.log 这样在如果在1分钟内生成多个 ...
- 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )(转载)
本文转自http://www.cnblogs.com/zery/p/3315889.html 对于文件夹,文档的操作一直处于一知半解状态,有时间闲下来了,好好练习了一把,对文档,文件的操作有了一个基本 ...
- UITableViewCellStyle 四种样式
四种样式如下:
- BZOJ3798: 特殊的质数(分段打表)
题意 题目链接 Sol 分块打表,非常好的思想. 对于这种求$[A, B]$区间内xxx的数的个数,然后$B$又不算是特别大的题,考虑分段打表 每个块的大小为$10^5$,打$3 * 10^3$个.然 ...
- Hibernate笔记2
一.持久化类 1.持久化标识OID 数据库中叫做主键,对应实体的ID属性即为OID;Hibernate通过OID区分两个对象是否为同一对象;OID的生成一般交由程序自动处理; 2.持久化类 ...
- 初学者:Git常用命令总结
git init 在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹. git clone 获取一个u ...
- 浏览器兼容圆角Border-radius的问题
圆角css代码:border-radius只有在以下版本的浏览器:Firefox4.0+.Google Chrome 10.0+.Opera 10.5+.IE9+支持border-radius标准语法 ...
- uvm_tlm——TLM1事务级建模方法(一)
TLM(事务级建模方法,Transaction-level modeling)是一种高级的数字系统模型化方法,它将模型间的通信细节与函数单元或通信架构的细节分离开来.通信机制(如总线或者FIFO)被建 ...