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 ...
随机推荐
- Handler和Thread线程
大家都知道,在PC上的应用程序当需要进行一些复杂的数据操作,但不需要界面UI的时候,我们会为应用程序专门写一个线程去执行这些复杂的数据操作.通过线程,可以执行例如:数据处理.数据下载等比较耗时的操作, ...
- Java面向对象_Object类
Object类 是类层次结构的根类,每个类都是用Object类作为超类,所有对象(包括数组)都实现这个类的方法.所有类都是Object类的子类. 下面先说两个方法toString()和equals(O ...
- .net 记录
Stack Overflow 2016最新架构探秘 http://www.infoq.com/cn/news/2016/03/Stack-Overflow-architecture-insi#rd N ...
- 批量 多个JPG生产PDF .net C#
using iTextSharp.text; using iTextSharp.text.pdf; using System; using System.Collections.Generic; us ...
- mybatis批量插入插入数据、批量条件查询
ps:参考文章连接:https://www.cnblogs.com/admol/articles/4248159.html 关于个人的使用经验:先把数据放到bean中,多个的话就全放入list集合,如 ...
- springboot 学习笔记(七)
(七)springboot整合activemq,消息消费,以及发送对象消息 1.springboot整合activemq发送消息,上一节已经介绍了,现在要对消息队列中的内容进行处理,下面写一个cons ...
- maven 搭建springMvc+mybatis
1.在resource文件夹下创建Configure.xml <?xml version="1.0" encoding="UTF-8"?> < ...
- 零基础逆向工程24_C++_01_类_this指针_继承本质_多层继承
1 类内的成员函数和普通函数的对比 1.1 主要是从参数传递.压栈顺序.堆栈平衡来总结. 1.参数传递:成员函数多传一个this指针 2.压栈顺序:成员函数会将this指针压栈,在函数调用取出 3.堆 ...
- IUserStore------Implements Diagram
- python3基础08(exec、bytearray使用等)
#!/usr/bin/env python# -*- coding:utf-8 -*- str="test"print(ascii(str))a=bytearray("a ...