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编写大型网站问题集
Mar 06 PHP
js下函数般调用正则的方法附代码
Jun 22 PHP
php入门学习知识点七 PHP函数的基本应用
Jul 14 PHP
PHP URL路由类实例
Nov 12 PHP
PHP使用正则表达式清除超链接文本
Nov 12 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
Dec 23 PHP
php字符串的替换,分割和连接方法
May 23 PHP
微信支付开发告警通知实例
Jul 12 PHP
php 实现301重定向跳转实例代码
Jul 18 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
Nov 20 PHP
Laravel统一错误处理为JSON的方法介绍
Oct 18 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调用三种数据库的方法(2)
2006/10/09 PHP
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
PHP 关于访问控制的和运算符优先级介绍
2013/07/08 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
微信小程序 动态绑定数据及动态事件处理
2017/03/14 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
js实现踩五彩块游戏
2020/02/08 Javascript
python实现连接mongodb的方法
2015/05/08 Python
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
python生成随机图形验证码详解
2017/11/08 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
2019/05/07 Python
python的debug实用工具 pdb详解
2019/07/12 Python
python tornado修改log输出方式
2019/11/18 Python
django迁移文件migrations的实现
2020/03/31 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
老海军美国官网:Old Navy
2016/09/05 全球购物
销售顾问的岗位职责
2013/11/13 职场文书
企业门卫岗位职责
2013/12/12 职场文书
中国央视网签名寄语
2014/01/18 职场文书
竞选大队长演讲稿
2014/04/29 职场文书
态度决定一切演讲稿
2014/05/20 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
农村婚礼司仪主持词
2015/06/29 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书
python神经网络 使用Keras构建RNN训练
2022/05/04 Python