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字符串截取中文截取2,单字节截取模式
Dec 10 PHP
php开启安全模式后禁用的函数集合
Jun 26 PHP
php实现图片添加描边字和马赛克的方法
Dec 10 PHP
php准确获取文件MIME类型的方法
Jun 17 PHP
如何解决PHP无法实现多线程的问题
Sep 25 PHP
Yii编程开发常见调用技巧集锦
Jul 15 PHP
laravel框架模型、视图与控制器简单操作示例
Oct 10 PHP
TP5框架简单登录功能实现方法示例
Oct 31 PHP
PHP实现基本留言板功能原理与步骤详解
Mar 26 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
Apr 06 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 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
php构造函数实例讲解
2013/11/13 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
浅谈PHP中类和对象的相关函数
2017/04/26 PHP
yii2实现Ueditor百度编辑器的示例代码
2018/11/02 PHP
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
2015/06/06 Javascript
jquery实现图片预加载
2015/12/25 Javascript
jquery实现图片列表鼠标移入微动
2016/12/01 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
es6中比较有用的7个技巧小结
2019/07/12 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
2020/01/11 jQuery
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
python 画3维轨迹图并进行比较的实例
2019/12/06 Python
python实现将range()函数生成的数字存储在一个列表中
2020/04/02 Python
解决json中ensure_ascii=False的问题
2020/04/03 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
Photobook澳大利亚:制作相片书,婚礼卡,旅行相簿
2017/01/12 全球购物
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
团委竞选演讲稿
2014/04/24 职场文书
产品包装策划方案
2014/05/18 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
结婚主持人致辞
2015/07/28 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书
小学英语教学反思范文
2016/02/15 职场文书
python中使用redis用法详解
2022/12/24 Redis