专栏首页沈唁志pecl安装swoole扩展怎么开启openssl

pecl安装swoole扩展怎么开启openssl

这是一篇基础知识补习文章,大多数新手在安装 Swoole 扩展时,都只会使用 pecl 进行安装,还要增加一些编译参数,比如 openssl

使用命令进行安装:

pecl install swoole

在使用 pecl 进行安装时有几个问答选项

enable sockets supports? [no] : 
enable openssl support? [no] : 
enable http2 support? [no] : 
enable mysqlnd support? [no] : 

这些是用于开启某些特性,比如 openssl 是来启用 SSL 支持,大多数新手在这里都会选择 yes,之后就开始编译了

结果发现报错了:error "Enable openssl support, require openssl library."(具体的错误信息就不详细写了,大概是这样)意思就是说你开启 openssl,常规路径下没有找到,需要你手动指定 openssl 库的路径

或者fatal error: 'openssl/ssl.h' file not found

这个意思是你没有加 openssl 库的路径或者指定 openssl 库的路径不对,缺少头文件

那么在 pecl 安装的时候怎么开启添加这个路径呢?不是只能 yes 或者 no 吗?

答案是当然可以添加的,我们可以在 yes 后面跟上路径参数: --with-openssl-dir=/opt/openssl/,替换为你的 openssl 库路径

就是这样的:

enable sockets supports? [no] : yes
enable openssl support? [no] : yes --with-openssl-dir=/usr/include/openssl
enable http2 support? [no] : no
enable mysqlnd support? [no] : yes

下面我们就可以看到我们的编译参数:

building in /tmp/pear/temp/pear-build-rootVseYYu/swoole-4.4.8
running: /tmp/pear/temp/swoole/configure --with-php-config=/usr/local/php/bin/php-config --enable-sockets=yes --enable-openssl=yes --with-openssl-dir=/usr/include/openssl --enable-http2=no --enable-mysqlnd=yes

这样编译完成后就可以了

# php --ri swoole

swoole

Swoole => enabled
Author => Swoole Team 
Version => 4.4.8
Built => Oct 17 2019 11:18:01
coroutine => enabled
epoll => enabled
eventfd => enabled
signalfd => enabled
cpu_affinity => enabled
spinlock => enabled
rwlock => enabled
sockets => enabled
openssl => OpenSSL 1.0.2k-fips  26 Jan 2017
http2 => enabled
pcre => enabled
zlib => enabled
mutex_timedlock => enabled
pthread_barrier => enabled
futex => enabled
mysqlnd => enabled
async_redis => enabled

Directive => Local Value => Master Value
swoole.enable_coroutine => On => On
swoole.enable_library => On => On
swoole.enable_preemptive_scheduler => Off => Off
swoole.display_errors => On => On
swoole.use_shortname => On => On
swoole.unixsock_buffer_size => 8388608 => 8388608

沈唁志,一个PHPer的成长之路! 任何个人或团体,未经允许禁止转载本文:《pecl安装swoole扩展怎么开启openssl》,谢谢合作!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 图片大小可控可导致CUP爆满造成网站瘫痪

    注意这个参数:size=200,可以看到下面服务器访问速度是76ms,图片是948B说明很快,那么我们把200改成10000

    漏洞知识库
  • CTF杂谈之PHP魔法与CBC加密

    PHP语言的开发者在几乎所有内置函数以及基本结构中使用了很多松散的比较和转换,防止程序中的变量因为程序员的不规范而频繁的报错,然而这却带来了安全问题。也正是因为...

    tinyfisher
  • liunx+python+django框架实现图片生成二维码

    Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下...

    测试小兵
  • 记一次有趣的一句话拿Shell的渗透测试过程

    拿到的是一个代理网站,简单先观察了下网站,发现使用的是PHP+ 宝塔 +Tp5框架的网站。通过弱口令进入后台任意文件上传拿shell。也不知道说啥,直接记录步骤...

    漏洞知识库
  • 特别编辑--django项目关闭DEBUG开发模式无法访问静态资源解决方案

    django项目工程下的settings文件默认是将DEBUG模式开启的“DEBUG=Ture”方便调试当我们需要上线时此时我们则需关闭DEBUG模式因为项目中...

    测试小兵
  • 浏览器渗透之BeEF的高级烹饪方式

    Kali Linux内已经有BeEF的环境,只需要进入/usr/share/beef-xss目录下,./beef运行即可

    漏洞知识库
  • linux+python+django基于django服务实现生成简易的二维码

    首先我简单的介绍下django;django官网解释就是如下:Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M...

    测试小兵
  • 一次早期自动化构建的搭建过程

    这是老王07年进入腾讯接手的第一个项目---自动化构建AutoBuild(06年就已经在上线运行),当年还不知道有Hudson,以及后来更名的Jenkins。做...

    用户1593318
  • 如何抓取猫眼电影Top100的影片信息?

    对于喜好电影的同学来说,猫眼电影和豆瓣电影应该是比较熟悉的电影评分的平台。但是,如何通过Python抓取猫眼电影评分前100的信息呢?

    测试小兵
  • category在iOS开发中的使用

    上面是后端同学按照照module的方式开发的服务,在整个的项目中请求中前缀相同而每个module都有自己的前缀,结合起来整个请求URL格式就可以拆分为

    大话swift

扫码关注云+社区

领取腾讯云代金券