美文网首页
MAC安装v8js

MAC安装v8js

作者: LZM轮回 | 来源:发表于2020-07-11 10:45 被阅读0次

    前言

    mac版v8js的安装真的是各种问题,相信大家尝试过的都深有感触,我在网上找了各种教程,大多都是千篇一律,而且大多数都是老版本 即使最新的也有很多问题,最终在
    GitHub issues 找到了解决方案,因此在此记录一下

    版本

    • Mac os:10.15.1
    • PHP:7.2.30
    • PECL:1.10.11

    lizaimin$ sw_vers  
    ProductName:    Mac OS X
    ProductVersion: 10.15.1  
    BuildVersion:   19B88
    lizaimin$ php -v 
    PHP 7.2.23 (cli) (built: Oct  3 2019 19:50:33) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.23, Copyright (c) 1999-2018, by Zend Technologies
    lizaimin$ pecl version 
    PEAR Version: 1.10.9
    PHP Version: 7.2.23
    Zend Engine Version: 3.2.0  
    Running on: Darwin lizaiminMacBook.local 19.0.0 Darwin Kernel Version 19.0.0: Thu Oct 17 16:17:15 PDT 2019; root:xnu-6153.41.3~29/RELEASE_X86_64 x86_64
    

    安装v8

    1. 确保你的系统没有安装过v8,如果有安装, 删除。
    2. brew install v8
    3. 安装成功后在 /usr/local/Cellar/v8/********/ 可以看到

    注意注意注意注意注意注意注意注意注意注意注意注意

    1. 查看 /usr/local/Cellar/v8/********/libexec 下面有没有lib目录 没有的话 执行创建
      mkdir -p /usr/local/Cellar/v8/7.4.288.25/libexec/lib

    2. 把libexec下面的的所有文件拷贝一份, 放到lib下面。
      cp /usr/local/Cellar/v8/*******/libexec/* /usr/local/Cellar/v8/******/libexec/lib
      其中*****号为你安装的目录版本号
      做这一步的目的是, 安装v8js的时候, 默认是取lib目录下面去找。不做处理的话会一直报 下面错误。不管是pecl 还是自己编译都不会通过。

       Please reinstall the v8 distribution  
      

    安装v8js扩展

    注意v8js对应目录替换为你安装的v8目录

    安装方式1

    • 将v8js克隆到本地: git clone https://github.com/phpv8/v8js

    • 从源代码构建v8js:

      git clone  https://github.com/phpv8/v8js
      cd v8js
      phpize
      ./configure CXXFLAGS="-Wno-c++11-narrowing" --with-v8js="/usr/local/Cellar/v8/7.4.288.25/libexec"
      make && make install  
      

    安装方式2

          sudo pecl install v8js
    

    在PHP中启用v8js

    • 查找php.ini文件

      ➜  ~ php --ini 
      Configuration File (php.ini) Path: /usr/local/etc/php/7.2 
      Loaded Configuration File:         /usr/local/etc/php/7.2/php.ini
      Scan for additional .ini files in: /usr/local/etc/php/7.2/conf.d
      Additional .ini files parsed:      /usr/local/etc/php/7.2/conf.d/ext-opcache.ini,
      
    • 打开php.ini文件

      vim /usr/local/etc/php/7.2/php.ini
      
    • 将此行添加到开头并保存ini文件: extension =”对应目录/v8js.so”

    • 重启php

    测试

        <?php
        $v8 = new V8Js();
        /* basic.js */
        $JS = <<< EOT
        len = print('Hello' + ' ' + 'World!' + "\\n");
        len;
        EOT;
        try {
          var_dump($v8->executeString($JS, 'basic.js'));
        } catch (V8JsException $e) {
          var_dump($e);
        }
     ?>
    

    相关文章

      网友评论

          本文标题:MAC安装v8js

          本文链接:https://www.haomeiwen.com/subject/azbbcktx.html