如何使用 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 扩展?的主要内容,如果未能解决你的问题,请参考以下文章