Windows 下编译 PHP Redis 扩展并支持 Igbinary 序列器

MaxSky 等级 531 0 0

这是 PHP 下扩展的下载地址:https://windows.php.net/downloads/pecl/releases/

当然,通过这个地址我们能够轻松的获取到 Redis 和 Igbinary 扩展并启用,但是,我们可以在页面上打开 phpinfo() 瞧瞧

Windows 下编译 PHP Redis 扩展并支持 Igbinary 序列器 上方截图为重编译的 Redis 扩展,默认情况下通过上方网站下载的 Redis 扩展在 Available serializers 中只有 php 一项。

目前仅编译了 7.2/7.3/7.4 NTS x64 的版本,需要的小伙伴自取:https://pan.baidu.com/s/1Jqx3riuEihLCwzQvPH37HA【提取码:2qq2】


编译指南

下载

  1. Visual Studio,PHP 7.2-7.4 需要使用 2017 版,master 则需更高,参考 PHP: internals:windows:stepbystepbuild_sdk_2
  2. php-binary-sdk-tool,没啥好说的,直接下载:https://github.com/Microsoft/php-sdk-binary-tools
  3. PHP 源码一份,在这儿下:https://windows.php.net/downloads/releases(历史版本在 archives 里)
  4. 扩展源码,在这儿搜索下载最新版即可:https://pecl.php.net

启动命令行

php-binary-sdk-tool 工具解压到任意路径,根据 PHP 源码版本、位执行相应的 bat 文件,例如 PHP 7.2 64 位则需要双击执行 phpsdk-vc15-x64.bat 文件

文件准备

以下用 PHP 7.2.21 版本示例

命令行启动后先搁一边,首先解压 PHP 源码,扔桌面就行,同时在桌面建立文件夹 pecl。随后将扩展参考如下路径放入 pecl 文件夹内:

桌面\php-7.2.21-src\源码内容
桌面\pecl\igbinary-3.1.2
桌面\pecl\redis-5.2.2

以上只是第一步,接着进入 PHP 源码文件夹并创建该路径 桌面\php-7.2.21-src\no\include,将 igbinary 扩展源码复制一份到此,即:

桌面\php-7.2.21-src\no\include\src
桌面\php-7.2.21-src\no\include\igbinary.h
桌面\php-7.2.21-src\no\include\php_igbinary.h

最后进入 桌面\php-7.2.21-src\ext,创建 igbinary 文件夹,将 src\php7 内的源码复制至此即可。

编译

回到命令行上,通过 cd 命令切换当前路径到桌面并进入 PHP 源码文件夹:

buildconf
configure --disable-all --enable-cli --enable-cgi --enable-session --enable-hash --enable-igbinary=shared --enable-redis=shared --enable-redis-igbinary --disable-zts
nmake

注意在执行 configure 时上方出现如下提示即为正确,可顺利编译。

Enabling extension ..\pecl\igbinary-3.1.6\src\php7 [shared]
Checking for igbinary.h ...  <in deps path> \include
Enabling extension ..\pecl\redis-5.3.2 [shared]
--disable-zts 为禁用线程安全, 如无需要可去掉该参数

编译完成后,64 位非线程安全扩展位于 桌面\php-7.2.21-src\x64\Release\php_redis.dll,扔进 PHP 安装文件夹的 ext 内使用呗。

收藏
评论区

相关推荐

我是Redis,MySQL大哥被我害惨了!
本文转自 轩辕之风 ,链接如下 https://mp.weixin.qq.com/s?__bizMzIyNjMxOTY0NA&mid2247486528&idx1&sn3f7b09eb21969fdb16f5b0805ff69fed&scene21wechat_redirect 我是Redis 你好,我是Redis,一个叫Antirez的
php指的是什么?
PHP(全称:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入H
.NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐
.NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐 .NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐 作者:依乐祝 原本链接:http
开发机连接Docker中的redis容器小案例
在笔者日常开发中,都是把redis装在windows系统中。虽然可以通过RedisDesktopManager等客户端工具连接操作redis,但是还是
Go-连接Redis-学习go-redis包
Redis介绍 Redis是一个开源的内存数据结构存储,常用作数据库、缓存和消息代理。目前它支持的数据结构有诸如string、hash、list、set、zset、bitmap、hyperloglog、geospatial index和stream。Redis内置了复制、Lua脚本、LRU清除、事务和不同级别的磁盘持久性,并通过Redis Sentinel
nginx安全配置
安全是一个重要的问题,必须引起注意。 1. nginx介绍 nginx本身不能处理PHP(http://www.ttlsa.com/php/ "php"),它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。nginx一般是把请求发fastcgi管理进程处理,fastcgi管理进程选择cgi子
使用 VS Code 来开发和调试 Python 程序
(简称 VSCode)是微软出品的一款支持多种语言的免费 IDE(集成开发环境)。VSCode 轻量而强大,支持 Windows、macOS 和 Linux。内置支持 JavaScript、TypeScript 和 Node.js,并且拥有一个丰富的插件生态系统来支持其它语言(C/C、C、Java、Python、PHP、Go 等)和运行时(.Net 和
php操作redis哨兵模式,主从切换后自动获取master
本文将介绍如何使用PHP来连接redis哨兵模式。哨兵模式:大概的原理就是监听redis主库心跳包,如果心跳断开,则枚举一个从库推举成为新的主库,防止redis宕机不能使用。为了增强redis的性能,防止其挂掉,引用redis哨兵监控redis集群是个不错的选择。下面三步简单记录php连接redis哨兵。 第一步、获取哨兵模式连接redis句柄对象/
Windows 下编译 PHP Redis 扩展并支持 Igbinary 序列器
这是 PHP 下扩展的下载地址:当然,通过这个地址我们能够轻松的获取到 Redis 和 Igbinary 扩展并启用,但是,我们可以在页面上打开 phpinfo() 瞧瞧上方截图为重编译的 Redis 扩展,默认情况下通过上方网站下载的 Redis 扩展在 Available serializers 中只有 php 一项。目前仅编译了
windows中 redis server 双击闪退
错误重现bash 进入redis安装目录执行以下命令redisserver.exe redis.windows.conf报错: [19572] 01 May 21:13:17.815 Creating Server TCP listening socket :6379: listen: Unknown error 解决方法:修改 redis.windows
springBoot集成redis
Redis作为一个Java后端面试中的一个常问考点,并且在项目中越来越常用,所以自己动手搭建了一个基于springboot集成redis做为数据缓存的demo(springboot集成mybatis、redis,并具有增删改查询接口)。关注微信公众号【菜鸟阿都】并回复:redis,可获得源码。后面也会继续深入研究redis相关知识,期待与大家一起学习交流。r
我终于弄清楚了redis数据结构之string应用场景
英国弗兰明曾说过一句话:“不要等待运气降临,应该去努力掌握知识。” 1 前言大家好,我是阿沐!对于redis大家是最熟悉不过了,作为缓存界的使用率一直遥遥领先。基本上整个互联网无论大小公司使用redis占绝大部分,那么很多人使用它,那就是只是使用它,对于它的使用场景并没有去理会太多(能用就行),这篇文章来讲讲redis的基础数据结构string。Redis有
给dubbo贡献源码,做梦都在修bug
本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star。 一在之前的文章《redis在微服务领域的贡献》中,从一次面试经历中了解了redis可以在微服务中玩的这么溜,同时也从源码角度分析了dubbo的redis注册中心。最后得出了dubbo的redis注册中心不能用于生产的结论,其中原因有如下两点: 使用了ke
dubbo网关演进之路
本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star。 背景随着公司业务的飞速发展,基于php的模块化架构难以支持未来业务的发展: php模块化架远远落后于行业主流架构(微服务–云原生),而php生态的服务治理开源组件匮乏,研发投入过大 杭州php人才匮乏,导致新鲜血液招聘困难 基于php的多进程架构难以支撑
运维大佬嘲笑我,这个你都不知道?
大家好,我是阿沐,一个喜欢分享技术而且爱好写散文的程序员。今天来给大家介绍一下info命令查看redis具体的详细信息讲解!起因是:前几年我在老家郑州实习面试(那个时候还没有毕业)的时候遇到面试官提问;面试官来于百度总部的工程师6年java开发经验+3年多的PHP开发经验,我在他的面前基本就是弟弟中的弟弟,虽然勉强通过入职了,但是却被运维无情地嘲笑,就因为组