码云推荐 | 使用 zephir 给 PHP7 写动态链接库

栏目: PHP · 发布时间: 6年前

内容简介:码云推荐 | 使用 zephir 给 PHP7 写动态链接库

zephir-framework

使用Zephir给 PHP 写扩展

项目结构

.
├── zephirlib                   -- 扩展库目录
│   ├── Auth
│   │   └── License.zep         -- 权限认证
│   ├── Base
│   │   ├── AbstractModule.zep  -- 模块抽象类
│   │   ├── Base.zep
│   │   └── Service.zep
│   ├── Db
│   │   └── Mysql.zep
│   └── Module                  -- 业务模块目录
│       ├── Category.zep
│       └── Edit.zep            
├── config.json                 -- 编译扩展配置文件
└── ext                         -- 编译生成的.so文件
  • (重要)检查当前服务器的 re2c 版本,必须: re2c >= 0.13.6

  • 安装PHP7

  • 安装zephir

    sudo apt-get install php7.1-dev gcc make re2c autoconf
    git clone https://github.com/phalcon/zephir.git
    cd zephir
    sudo ./install -c
  • 安装php-zephir-parser

    git clone git://github.com/phalcon/php-zephir-parser.git
    cd php-zephir-parser
    // 最好指定配置文件位置,当然也可以直接做一个软连接
    sudo ./install --phpize /usr/local/php-7.1.9/bin/phpize --php-config /usr/local/php-7.1.9/bin/php-config
  • 修改PHP.ini配置文件

    $ sudo find / -name zephir_parser.so
    /usr/local/php-7.1.9/lib/php/extensions/no-debug-non-zts-20160303/zephir_parser.so
    
    vim /usr/local/php-7.1.9/etc/php.ini 
    //添加以下内容
    [Zephir Parser]
    extension=zephir_parser.so
    
    //重启服务器
    sudo service php-fpm restart
  • 配置检查

  • 码云推荐 | 使用 zephir 给 PHP7 写动态链接库

安装框架

  • 1、下载:

    git clone https://github.com/Tinywan/zephir-framework.git
  • 2、编译:

    cd zephir-framework/zephirlib
    zephir build
    Compiling...
    Installing...
    Extension installed!
    Add extension=zephirlib.so to your php.ini
    Don't forget to restart your web server
    
  • 3、添加扩展到 php.ini :

    • PHP 7

      • 配置文件

        vim /usr/local/php-7.1.9/etc/php.ini
        # 添加内容
        extension=/usr/lib/php/20160303/zephirlib.so
      • 重启服务器: sudo service php7-fpm restart

    • PHP 5

      • 配置文件

        Installing shared extensions:     /usr/lib/php5/20121212/
        Cleaning..
        
        cd /usr/lib/php5/20121212/
        
        sudo vim /etc/php5/mods-available/zephirlib.ini 
        # 添加内容
        extension=zephirlib.so
      • 切换到目录 /etc/php5/fpm/conf.d 做一个软连接

        ln -s ../../mods-available/zephirlib.ini 20-zephirlib.ini
      • 重启服务器: sudo service php5-fpm restart

      • PHP 文件加密 Zend Guard Loader

  • 4、重启 php-fpm 服务,查看扩展是否安装成功

    • 码云推荐 | 使用 zephir 给 PHP7 写动态链接库

    • /etc/php5/fpm/conf.d/20-zephirlib.ini

常见问题

  • 编译错误

    root@iZ235mi4a64Z:~/zephir-framework/zephirlib# zephir build
    ────────────────────────────────────────────────────────────
      The Zephir Parser extension is not loaded.
      Note: Zephir no longer distributed with internal parser.
      
      To install latest stable Zephir Parser please refer to:
      https://github.com/phalcon/php-zephir-parser
    ────────────────────────────────────────────────────────────
  • 如何解决,查看命令行 (cli) 的配置文件,添加 zephir_parser 扩展

    $ php --ini
    Configuration File (php.ini) Path: /etc/php/7.1/cli
    Loaded Configuration File:         /etc/php/7.1/cli/php.ini
    Scan for additional .ini files in: /etc/php/7.1/cli/conf.d
    ...
    
    vim /etc/php/7.1/cli/php.ini  
    //添加以下内容
    [Zephir Parser]
    extension=/usr/local/php-7.1.9/lib/php/extensions/no-debug-non-zts-20160303/zephir_parser.so
    
    $ php -m | grep Zephir
    Zephir Parser
  • re2c 版本过低,导致 php-zephir-parser 安装失败

    • 安装 re2c 执行: sudo apt-get install re2c

      Ubuntu 14.04 LTS 系统默认安装

    • 安装 php-zephir-parser 错误

      sudo ./install
      error: minimal required version of re2c is 0.13.6
    • 查看当前版本

      www@:~$ re2c --version
      re2c 0.13.5

      注: Zephirphp-zephir-parser 要求: re2c >= 0.13.6

    • 下载安装最新版本

      wget https://github.com/skvadrik/re2c/releases/download/0.16/re2c-0.16.tar.gz
      
      tar zxvf re2c-0.16.tar.gz
      
      cd re2c-0.16
      
      ./configure
      
      make
      make install
      
      www@:~/tinywan/re2c-0.16$ re2c --version
      re2c 0.16

      注意:服务器系统内存不能小于: 512M ,否则没发编译。

创建和检查授权脚本


以上所述就是小编给大家介绍的《码云推荐 | 使用 zephir 给 PHP7 写动态链接库》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

运营制胜

运营制胜

张恒 / 电子工业出版社 / 2016-10-1 / 65

《运营制胜——从零系统学运营构建用户增长引擎》主要从内容运营、用户运营、推广运营三个方向来介绍产品运营方面的知识。 其中内容运营主要介绍了内容生成的机制、内容方向设定、内容输出、内容生产引擎、内容推荐机制、数据如何驱动内容运营、内容运营的KPI 设定、建立内容库、内容的赢利模式。用户运营主要介绍了产品的冷启动、获得种子用户及早期用户、建立用户增长引擎、利用心理学引爆产品用户增长、增加用户活跃......一起来看看 《运营制胜》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具