如何使用 make 从 tgz 文件构建 php 扩展?

Posted

技术标签:

【中文标题】如何使用 make 从 tgz 文件构建 php 扩展?【英文标题】:How to build a php extensions from tgz file using make? 【发布时间】:2021-11-27 01:13:57 【问题描述】:

背景

我使用的 RedHat 机器没有 root 访问权限,没有 yum 数据包管理器的访问权限,也没有 Docker 支持。不幸的是,这是我工作中的政策。

我已经使用文件夹中的 tar 文件配置了 Apache 和 php。对 MongoDB 也做了同样的事情,现在我尝试根据这些说明为 MongoDB 配置 PHP 驱动程序:

https://docs.mongodb.com/drivers/php/

但是我卡在第一个项目符号上:

sudo pecl install mongodb

问题

我需要 PECL 吗?是否可以手动下载扩展并添加到 PHP 中?

我尝试从以下位置手动下载 mongodb 扩展: https://pecl.php.net/package/mongodb

如何编译mongodb.so?我尝试在具有 root 访问权限的机器上运行 pecl,然后我看到它下载了 mongodb-1.10.0.tgz 并运行 make(安装时在输出中)。

当我手动解压 tgz 文件时,我无法运行 make。如何使用makefile.frag?如何运行make?

【问题讨论】:

【参考方案1】:

这是一个关于如何构建 mongodb.so 的链接: https://www.php.net/manual/en/mongodb.installation.manual.php

git clone https://github.com/mongodb/mongo-php-driver.git
cd mongo-php-driver
git submodule update --init
phpize
./configure
make all
sudo make install

你也可以解压 mongodb-1.10.0.tgz 文件:

tar -xvf mongodb-1.10.0.tgz
phpize
make all
sudo make install

【讨论】:

你知道pecl是否添加任何额外的标志来配置?如果我手动执行,我可能会错过? 我认为它使用默认值,但这只是我的猜测。 我在这里找到了如何离线操作的文档:php.net/manual/en/install.pecl.phpize.php

以上是关于如何使用 make 从 tgz 文件构建 php 扩展?的主要内容,如果未能解决你的问题,请参考以下文章

seaslog安装

php-redis扩展

PHP安装扩展

ubuntu下如何安装软件myeclipse-8.0.0-linux-gtk-x86.tgz

使用make构建c程序

如何解压 shell 脚本中的 tgz 文件?