视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
CentOS 下三种 PHP 拓展安装方法
2020-11-03 18:21:14 责编:小采
文档
 CentOS 下,PHP有多种方式来安装拓展, 主要有 包管理式的 yum 安装、pecl 安装, 以及源码编译安装。

包管理式的安装卸载尤为方便,而源码编译式的安装则方便参数调优。

一般搭建本机开发环境推荐包管理式的安装,节约时间。而线上部署环境则推荐编译安装, 方便调优。

本文以 MongoDB 扩展`安装举例。

工具

PHP版本 : 7.0.17

Nginx : 1.10.2

VMware版本号 : 12.0.0

CentOS版本 : 7.0

一、yum 安装

yum 方式安装能自动安装拓展的.so动态库,并配置好 php.ini

注:

请确保自己 yum 源 里面有对应扩展

安装完成后重启服务器 Nginx 或者 Apache

浏览器访问 index.php 文件,输出 phpinfo 信息,如果有 MongoDB 信息,则安装成功

[root@localhost ~]# yum search mongodb|grep php # 搜索 yum 源里面 MongoDB 拓展
[root@localhost ~]# yum -y install php70w-pecl-mongo # 安装 PHP 对应版本的 MongoDB 扩展
[root@localhost ~]# systemctl restart nginx # 重新启动 Nginx

二、pecl 安装

官方文档:https://www.php.com/manual/zh/mongodb.installation.pecl.php

[root@localhost ~]# pecl install mongodb

-bash: pecl: 未找到命令

直接输入 pecl install mongodb 会报错,说明 pecl 我们没有安装,安装 pecl

[root@localhost ~]# yum -y install php70w-pear
[root@localhost ~]# pecl install mongodb
configure: error: Cannot find OpenSSL's <evp.h>
ERROR: `/var/tmp/mongodb/configure --with-php-config=/usr/bin/php-config' failed

到这一步又会报错,需要我们安装 openssl ,安装完成后继续执行上次未执行成功的命令

[root@localhost ~]# yum -y install openssl openssl-devel
[root@localhost ~]# pecl install mongodb
[root@localhost ~]# systemctl restart nginx # 重新启动 Nginx

安装完成后在 PHP 配置文件 php.ini 里面加载 MongoDB 扩展

安装完成后重启服务器 Nginx 或者 Apache

浏览器访问 index.php 文件,输出 phpinfo 信息,如果有 MongoDB 信息,则安装成功

三、源码编译安装

源码编译包下载列表:https://pecl.php.com/packages.php

Mongodb包下载地址:https://pecl.php.com/package/mongodb

[root@localhost ~]# wget http://pecl.php.com/get/mongodb-1.2.8.tgz #下载源码包
[root@localhost ~]# tar zxf mongodb-1.2.8.tgz #解压
[root@localhost ~]# cd mongodb-1.2.8
# 可能是 /usr/local/php/bin/phpize 找到自己的 phpize 文件,php-config 同理
[root@localhost mongodb-1.2.8]# /usr/bin/phpize 
Configuring for:
PHP Api Version: 20151012
Zend Module Api No: 20151012
Zend Extension Api No: 320151012
[root@localhost mongodb-1.2.8]# ./configure --with-php-config=/usr/bin/php-config
configure: error: Cannot find OpenSSL's <evp.h>

到了这步又是熟悉的味道又是熟悉的感觉,需要我们安装 openssl ,安装完成后继续执行上次未执行成功的命令

[root@localhost mongodb-1.2.8]# yum -y install openssl openssl-devel
[root@localhost mongodb-1.2.8]# ./configure --with-php-config=/usr/bin/php-config
# 确保自己安装了 gcc gcc++ 如果没有安装 yum -y install gcc gcc++
[root@localhost mongodb-1.2.8]# make && make install # 编译

说明:php-config 是一个简单的命令行脚本用于获取所安装的 PHP 配置的信息。

在编译扩展时,如果安装有多个 PHP 版本,可以在配置时用 --with-php-config 选项来指定使用哪一个版本编译,该选项指定了相对应的 php-config 脚本的路径。

编译成功如下图

此时在 PHP 配置文件 php.ini 里面加载 MongoDB 扩展

重启服务器 Nginx 或者 Apache

浏览器访问 index.php 文件,输出 phpinfo 信息,如果有 MongoDB 信息,则安装成功

[root@localhost mongodb-1.2.8]# systemctl restart nginx # 重新启动 Nginx

总结:

pecl 安装和源码编译安装区别就是:后者更方便参数调优。

在选择 Mongo 扩展的时候,官方提供了两种:mongo 和 mongodb

第一种: https://pecl.php.com/package/mongo

第二种: https://pecl.php.com/package/mongodb

第一种官方提示:This package has been superseded, but is still maintained for bugs and security fixes,已经废弃了,不过 bug 和 security 方面的问题还会继续修复,不支持 PHP7 。

建议:

PHP 版本为 5.x 建议使用 mongo 扩展

PHP 版本为 7.x 建议使用 mongodb 扩展

PHP5.x 可以使用 mongodb 扩展。但是 PHP7.x 不可以使用 mongo 扩展。

写在最后:

如果是自己学习的话还是推荐 yum 安装,因为在你安装过程中会出现缺少各种依赖的报错。

更多PHP相关知识,请访问PHP教程!

下载本文
显示全文
专题