CentOS系统中PHP安装扩展的方式汇总


Posted in PHP onApril 09, 2017

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

CentOS系统中PHP安装扩展的方式汇总

CentOS系统中PHP安装扩展的方式汇总

二、pecl 安装

官方文档: http://php.net/manual/zh/mong...

[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 ,安装完成后继续执行上次 未执行成功 的命令

CentOS系统中PHP安装扩展的方式汇总

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

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

CentOS系统中PHP安装扩展的方式汇总

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

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

CentOS系统中PHP安装扩展的方式汇总

三、源码编译安装

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

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

[root@localhost ~]# wget http://pecl.php.net/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 ,安装完成后继续执行上次 未执行成功 的命令

CentOS系统中PHP安装扩展的方式汇总

[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 脚本的路径。

编译成功 如下图

CentOS系统中PHP安装扩展的方式汇总

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

CentOS系统中PHP安装扩展的方式汇总

重启服务器 Nginx 或者 Apache

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

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

CentOS系统中PHP安装扩展的方式汇总

总结:

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

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

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

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

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

建议:

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

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

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

写在最后:

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

PHP 相关文章推荐
PHP文本数据库的搜索方法
Oct 09 PHP
在PHP中检查PHP文件是否有语法错误的方法
Dec 23 PHP
php适配器模式介绍
Aug 14 PHP
在yii中新增一个用户验证的方法详解
Jun 20 PHP
zf框架db类的分页示例分享
Mar 14 PHP
PHP使用xmllint命令处理xml与html的方法
Dec 15 PHP
简单介绍PHP的责任链编程模式
Aug 11 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
Dec 30 PHP
php文件类型MIME对照表(比较全)
Oct 07 PHP
php使用curl实现ftp文件下载功能
May 16 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
Aug 01 PHP
php实现每日签到功能
Nov 29 PHP
PHP将身份证正反面两张照片合成一张图片的代码
Apr 08 #PHP
ThinkPHP中调用PHPExcel的实现代码
Apr 08 #PHP
yii框架无限极分类的实现方法
Apr 08 #PHP
PHP下载远程图片的几种方法总结
Apr 07 #PHP
POST一个JSON格式的数据给Restful服务实例详解
Apr 07 #PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
Apr 07 #PHP
php 根据自增id创建唯一编号类
Apr 06 #PHP
You might like
域名和cookie问题(域名后缀)
2012/10/10 PHP
浅谈php冒泡排序
2014/12/30 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
javascript 图片裁剪技巧解读
2012/11/15 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
js四舍五入数学函数round使用实例
2014/05/09 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
2014/11/28 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
2016/12/13 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
在python中对变量判断是否为None的三种方法总结
2019/01/23 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
python中对_init_的理解及实例解析
2019/10/11 Python
Python识别html主要文本框过程解析
2020/02/18 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
构建高效的python requests长连接池详解
2020/05/02 Python
python 字符串格式化的示例
2020/09/21 Python
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
adidas泰国官网:adidas TH
2020/07/11 全球购物
优秀老师事迹材料
2014/02/05 职场文书
销售人员职业生涯规划范文
2014/03/01 职场文书
挂靠协议书范本
2014/04/22 职场文书
党员承诺践诺书
2014/05/20 职场文书
预备党员个人总结
2015/02/14 职场文书
技术员个人工作总结
2015/03/03 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书