无root权限不使用PECL时如何通过make从tgz包编译安装PHP扩展
解答
不需要必须使用PECL,完全可以手动下载扩展包编译安装,具体操作步骤如下:
- 首先确认你自行安装的PHP的
bin目录已加入当前用户的环境变量,确保可以正常调用对应版本的phpize和php-config命令,可执行which phpize和which php-config校验路径是否为你本地PHP安装目录下的文件,避免调用系统自带的不匹配版本。 - 解压你已经下载好的mongodb扩展tgz包:
tar zxf mongodb-<替换为你的版本号>.tgz # 例:tar zxf mongodb-1.10.0.tgz - 进入解压后的扩展目录,执行
phpize生成编译配置文件,执行后会自动生成configure、Makefile等文件,无需手动操作Makefile.frag。 - 执行configure配置编译参数,重点指定你本地PHP的php-config路径:
如果编译过程提示缺少依赖(如openssl、libcurl等),你可以用同样的tar包方式将依赖安装到本地用户目录,再在configure时追加依赖路径参数即可,比如./configure --with-php-config=<替换为你本地php-config的绝对路径> # 例:如果你的PHP安装在~/local/php目录下,参数为--with-php-config=~/local/php/bin/php-config--with-openssl=~/local/openssl。 - 配置完成后直接执行
make命令,编译完成后生成的mongodb.so文件会保存在当前目录下的modules文件夹中。 - 执行
php -i | grep extension_dir查询你本地PHP的扩展存放目录,将mongodb.so移动到该目录下。 - 编辑你本地PHP的
php.ini配置文件,追加一行内容:extension=mongodb.so - 保存后执行
php -m,如果列表中出现mongodb,说明扩展加载成功,重启Apache后即可正常使用。
内容的提问来源于stack exchange,提问作者starking
相关产品推荐
相关产品推荐

