PHP 版本

本文档仅适用于基于 glibc2.12 及以上 的 Linux 或 MacOS

对于 Linux 系统,我们要求使用 g++ 5 或者更高版本进行编译。为了保证最大兼容性,我们建议你使用和生产环境相同的环境进行编译。

下面,我们以 CentOS 6 为例,讲解如何编译 OpenRASP PHP 扩展。值得注意的是,CentOS 7 的安装方法、要执行的命令完全一样。

准备环境

使用如下命令,安装 g++ 5.3.1 以及 xxd 命令

  1. yum install -y centos-release-scl vim-common
  2. yum install -y devtoolset-4-gcc-c++

如果你使用的是发行版自带的 PHP 软件,你还需要安装对应的头文件

  1. yum install -y php-devel

安装完成后,执行如下命令进入编译环境

  1. scl enable devtoolset-4 bash

安装高版本 cmake

  1. # 下载并解压到 /tmp,避免与已有 cmake 冲突
  2. curl -L https://github.com/Kitware/CMake/releases/download/v3.15.3/cmake-3.15.3-Linux-x86_64.tar.gz | tar zx -C /tmp
  3. # 增加临时 PATH
  4. export PATH=/tmp/cmake-3.15.3-Linux-x86_64/bin:$PATH

编译 openrasp-v8 基础库

在OpenRASP仓库根目录执行以下命令

  1. # 更新 git submodule
  2. git submodule update --init
  3. # 编译 openrasp-v8
  4. mkdir -p openrasp-v8/build && cd openrasp-v8/build
  5. cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_LANGUAGES=php ..
  6. make

编译 OpenRASP PHP 扩展

进入源代码目录,执行下面的命令即可;如果你的 PHP 是自己编译的,请使用对应路径的 phpize 命令。

  1. # 如果之前编译过,清理下临时文件
  2. phpize --clean
  3. # 生成 configure 文件
  4. phpize
  5. # 生成 makefile
  6. ./configure --with-openrasp-v8=../../openrasp-v8/ --with-gettext --enable-openrasp-remote-manager
  7. # 编译
  8. make

如果 make 命令没有出错,可以继续执行 make install 安装。也可以将生成的扩展 modules/openrasp.so 复制到其它机器安装。对于扩展的具体安装方法,请参考 PHP 服务器安装