Centos7 下 PHP 添加缺少的组件 sockets 和 openssl
环境是 centos7 + nginx 1.14 + php 7.2.18,由于新增邮件发送功能,使用的是 socket 通讯的方式,需要开启 php 的 sockes 和 openssl 扩展
安装 sockets 组件
进入源码目录中待操作的组件子目录,并执行 phpize 工具
不删解压后的源码是个好事!使用 cd 命令进入源码目录/ext/sockets 目录,在该目录下运行命令
$ /usr/local/php/bin/phpize
注:/usr/local/php/bin 是php的安装目录,在该目录下应该有 phpize 可执行文件存在
错误应对
如果出现 "Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment vari",则执行以下命令补齐缺失的功能
$ yum install m4
$ yum install autoconf
如果出现 "Cannot find config.m4." ,则将该目录下的 config0.m4 复制并改名到同目录内
$ cp config0.m4 config.m4
再重新运行 phpize
使用 ./configure 进行具体配置
使用命令对要安装的插件进行具体配置,以 sockets 安装为例,运行以下命令
$ ./configure --prefix=/usr/local/php --with-php-config=/usr/local/php/bin/php-config --enable-sockets
注:/usr/local/php是 PHP 安装后的默认目录,/usr/local/php/bin/php-config 也是默认
运行 make && make install
如无错误,继续运行
$ make && make install
如无错误,以下是部分输出结果
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/
Installing header files: /usr/local/php/include/php/
说明 sockets 扩展源码经过编译编程扩展后,安装在了第一行的目录内
修改 PHP.ini 配置,启用扩展
修改 php.ini,默认可以不更改 extension_dir='./' 的值,而只是去掉 extension=sockets 前面的分号注释,使其生效。保存后,重新启动 php-fpm (假设php-fpm在安装后的默认路径下)
$ /etc/init.d/php-fpm reload
查看结果
运行 phpinfo() 函数,在输出页面查看是否有 sockets 的独立显示,并且 Sockets Support 的值为 enabled。
安装 Openssl 组件
与安装 sockets 步骤相同,区别是在使用 ./configure 时的语句,不完全一样,使用
$ ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
其它步骤相同
Centos7 下 PHP 添加缺少的组件 sockets 和 openssl的更多相关文章
- centos7下nginx添加到自定义系统服务中提示Access denied
安装好nginx后,添加到系统服务中 在/usr/lib/systemd/system下创建nginx.service文件内容如下: [Unit] Description=nginx - high p ...
- centos7下kubernetes(4.kubernetes组件)
Kubenetes cluster 由master和node组成 Master是kubenetes的大脑.运行着以下进程:kube-apiserver.kube-scheduler.kube-cont ...
- centos7下添加win7引导
这次在centos7下添加为win7引导的过程可谓是一波三折,首先是在网上找教程,这个过程还是很顺利的,通不断的 搜索,找到了两个办法.第一个办法就是在root下执行这样的一个命令: grub2-mk ...
- 为Ext添加下拉框和日期组件
Ext.onReady(function(){ var config = { fields:['module'], data:[['新建'],['删除'],['增加']}; var store = n ...
- Centos7下搭建LAMP平台环境
1.启用Apache2 Centos7默认已经安装httpd服务,只是没有启动.如果你需要全新安装,可以yum install -y httpd 启动服务:systemctl start httpd. ...
- Centos7下搭建LAMP平台环境 (转载)
1.启用Apache(httpd) Centos7默认已经安装httpd服务,只是没有启动.如果你需要全新安装,可以yum install -y httpd 启动服务:systemctl start ...
- CentOS7下用jdk1.7编译hadoop-2.7.1全过程详解
说实话,本人编译hadoop的过程比较曲折,但收获也很多,下面系统介绍一下CentOS7下编译hadoop-2.7.1的全过程吧. 先说明,32位Linux操作系统可以直接下载编译好的hadoop使用 ...
- [Kubernetes]CentOS7下Etcd集群搭建
Etcd简要介绍 Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息 Etcd构建自身高可用集群主要有三种形式: ①静态发现: 预先已知 Etcd 集 ...
- 第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误,
第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误, 注意:版本,不然会报错 Docker >=1.11Compose >1.6.0 通过d ...
随机推荐
- java8-Stream流API
一回顾与说明 经过前面发布的三章java8的博客,你就懂得了我们为什么要用Lamda表达式,Lamda表达式的原理与函数式接口的关系,从Lamda表达式到方法引用和构造引用. 想要学Stream流你必 ...
- LeetCode刷题总结-双指针、位运算和分治法篇
本文总结LeetCode上有关双指针.位运算和分治法的算法题,推荐刷题总数14道.具体考点分析如下图: 一.双指针 1.字符串和数组问题 题号:424. 替换后的最长重复字符,难度中等 题号:828. ...
- Android获取ROOT权限的通用方法
背景 自从Android问世以后,给手机获取ROOT权限变成了玩机爱好者老生常谈的话题.拥有手机,却不能拥有操作手机的最高权限,这对于手机爱好者而言,这怎么可以忍?所以无论Android升到什么什么版 ...
- Python面向对象-获取对象信息type()、isinstance()、dir()
type() type()函数用于判断对象类型: >>> type(11) <class 'int'> >>> type('abc') <clas ...
- 松软科技Web课堂:JavaScript 异常
JavaScript 错误 - Throw 和 Try to Catch try 语句使您能够测试代码块中的错误. catch 语句允许您处理错误. throw 语句允许您创建自定义错误. final ...
- Android 插件化开发(二):加载外部Dex文件
在学习Java反射的技术后,我们可以开始更深一步的探究插件化开发了.首先先讲一下Android App的打包流程,然后我们通过一个简单的例子 —— 实现插件化加载外部Dex来完成初级的插件化开发的探索 ...
- .NET Core 轻量级模板引擎 Mustachio
一. 前言 Mustachio 是一款轻量级且强大的模板引擎,可以用在网页渲染.代码生成器等需要模板引擎的场景.我用它是用在配置文件模板化的场景,在配置文件里面编写一些模板语法,然后从 Cloud 拉 ...
- C#扩展方法学习笔记
C#扩展方法,简单的理解是不修改原来类的源代码的情况下,为某个类添加某个方法.扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的.它们的第一个参数指定该方法作用于哪个类型,并且该参数以 th ...
- android上如何写配置文件
android上如何写配置文件:使用SharedPreferences SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态 ...
- c#实现SharedMatting抠图算法
内容简介 将Alpha Matting抠图算法由c++ 版本移植至c#环境. 主要采用OpenCV的C#版本Emgu取代c++支撑的OpenCV. 参考资料 http://www.inf.ufrgs. ...