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桌面中心(四) 数据显示
Mar 11 PHP
分页详解 从此分页无忧(PHP+mysql)
Nov 23 PHP
删除数组元素实用的PHP数组函数
Aug 18 PHP
php将fileterms函数返回的结果变成可读的形式
Apr 21 PHP
模板引擎正则表达式调试小技巧
Jul 20 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
May 27 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
php的hash算法介绍
Feb 13 PHP
MongoDB在PHP中的常用操作小结
Feb 20 PHP
PHP版本如何选择?应该使用哪个版本?
May 13 PHP
php 批量查询搜狗sogou代码分享
May 17 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 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
什么是调频(FM)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
PHP+DBM的同学录程序(3)
2006/10/09 PHP
两个开源的Php输出Excel文件类
2010/02/08 PHP
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
JQuery的$命名冲突详细解析
2013/12/28 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
Vue封装Axios请求和拦截器的步骤
2020/09/16 Javascript
[00:36]DOTA2勇士令状莱恩声望物品——冥晶之厄展示
2018/05/25 DOTA
Python httplib,smtplib使用方法
2008/09/06 Python
python回调函数用法实例分析
2015/05/09 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
html5中监听canvas内部元素点击事件的三种方法
2019/04/28 HTML / CSS
html5清空画布方法(三种)
2017/10/16 HTML / CSS
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
德国家具在线:Fashion For Home
2017/03/11 全球购物
美国折扣宠物药房:Total Pet Supply
2018/05/27 全球购物
Boden英国官网:英国知名原创时装品牌
2018/11/06 全球购物
自动化专业毕业生自荐信
2013/11/01 职场文书
高职教师岗位职责
2013/12/24 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
酒店节能降耗方案
2014/05/08 职场文书
初中英语教学反思范文
2016/02/15 职场文书
python OpenCV学习笔记
2021/03/31 Python