appnode如何自行编译安装PHP扩展?

baiu 2023-2-14 447

ppNode 提供了100多个 PHP 扩展,应该来说是国内最全的了,这要归功于 Remi Repo 的贡献。

一般情况下,只要直接安装 PHP 扩展安装包就可以直接使用了。

但是如果一些情况下,你需要使用特定版本的 PHP 扩展,可能需要自行编译安装 PHP 扩展。

下面以 yaf v3.0.7 扩展为例介绍编译安装 PHP 7.1 扩展的步骤:

1. 下载源码包

所有的 PHP 扩展都可以在 http://pecl.php.net/ 上找到源码包。
yaf 扩展的页面为:http://pecl.php.net/package/yaf
下载源码包命令:

wget http://pecl.php.net/get/yaf-3.0.7.tgz


2. 解压源码包

tar zxf yaf-3.0.7.tgz


3. 安装 PHP 开发包

yum install appnode-php71-php-devel -y


4. 切换到 PHP 7.1 环境

AppNode 使用 SCL 规范打包多版本并存的 PHP 环境,因此要切换到 7.1 版本下进行编译。
使用以下命令切换到 PHP 7.1 环境:

scl enable appnode-php71 bash

切换后使用命令 php -v 查看下 PHP 版本,确实是 7.1

# php -vPHP 7.1.19 (cli) (built: Jul 20 2018 10:47:58) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.19, Copyright (c) 1999-2018, by Zend Technologies


5. 编译安装 yaf 扩展

使用以下命令编译安装 yaf 扩展:

phpize
./configure
make && make install

编译安装完成后,我们可以看到最后一行输出:

Installing shared extensions:     /opt/appnode/appnode-php71/root/usr/lib64/php/modules/

说明扩展模块文件已安装到 /opt/appnode/appnode-php71/root/usr/lib64/php/modules/ 目录下。
使用命令查看下:

# ls /opt/appnode/appnode-php71/root/usr/lib64/php/modules/ | grep yafyaf.so

yaf.so 就是 yaf 扩展模块。

6. 增加 yaf 扩展的配置

在 PHP 7.1 的扩展配置文件目录下,创建 yaf 的配置文件。

PHP 7.1 的扩展配置文件目录位于:
/etc/opt/appnode/scls/appnode-php71/php.d/
其它版本的配置文件目录请参考:https://help.appnode.com/command/software-env.html
在这个目录下,创建文件 99-yaf.ini,并写入 yaf 模块加载配置,如:
extension=zip.so
也可以直接使用命令写入配置文件:

echo "extension=zip.so" > /etc/opt/appnode/scls/appnode-php71/php.d/99-yaf.ini

配置文件前缀 99- 表示扩展的加载顺序(有些扩展会依赖其它扩展,需要自行确认)。

7. 测试扩展是否生效

php -m | grep yaf

如果有输出 yaf ,说明扩展已生效。

8. 退出 PHP 7.1 环境

exit


最新回复 (0)
返回
发新帖