比别人多一点志气,你就会多一份出息 [登录·注册]

吕滔博客

首页 开发 运维 工具 摄影

windows7_64位系统下编译php7.1的redis扩展dll笔记

工具 memory 发布于December 12, 2016 标签: Windows, PHP

先将windows7升级到win7sp1,否则会有好多软件不能用的.

系统必备的组件

Visual Studio 2015(社区版就可以,我安装在d:\vs2015)
vc2015
vcruntime140.dll (不知道,反正我在后面编译的时候提示缺这货,装了vc2015也不管用)
修复电脑上的directx 否则会有好多奇怪的错误提示 比如(应用程序无法正常启动0xc000007b)

PHP组件

下载php7.1源码 http://windows.php.net/downloads/releases/
php-7.1.0-src.zip
下载编译的sdk文件及工具包 http://windows.php.net/downloads/php-sdk/
php-sdk-binary-tools-20110915.zip
deps-7.1-vc14-x64.7z
下载最新的redis扩展包 https://github.com/phpredis/phpredis

配置环境

打开cmd窗口,进入d:\vs2015\VC\bin\
执行vcvars32.bat

环境目录在c盘php-sdk目录
将php-sdk-binary-tools-20110915.zip解压到c:\php-sdk

编辑c:\php-sdk\php-sdk-binary-tools\bin\phpsdk_buildtree.bat文件
在GOTO EXIT前加入

MD %_%\vc14\x86\deps\bin
MD %_%\vc14\x86\deps\lib
MD %_%\vc14\x86\deps\include
MD %_%\vc14\x64\deps\bin
MD %_%\vc14\x64\deps\lib
MD %_%\vc14\x64\deps\include

2.png

打开开始菜单--VS2015--x64本机工具命令提示符

cd c:\php-sdk
php-sdk-binary-tools\bin\phpsdk_setvars.bat
php-sdk-binary-tools\bin\phpsdk_buildtree.bat phpdev

然后脚本将会在c:\php-sdk目录下创建一个目录phpdev
将PHP源码包以及SDK的deps包,分别解压后放到c:\php-sdk\phpdev\vc14\x64下。

其他版本同理。放置后目录结构应该类似
"c:\php-sdk\phpdev\vc14\x64\deps\bin"和"c:\php-sdk\phpdev\vc14\x64\php_src\buildconf"
将redis的扩展包源代码解压后放到"c:\php-sdk\phpdev\vc14\x64\php_src\ext"目录下。可以看到该目录有其他一些自带的扩展包源码。并修改文件夹名为redis

编译。在命令行中输入命令:

set path=%path%;c:\php-sdk\php-sdk-binary-tools\bin

不设置这个path就会出现下面的这种情况
2.0.png

cd c:\php-sdk\phpdev\vc14\x64\php_src
buildconf
configure --disable-all --enable-cli --enable-hash --enable-session --enable-redis=shared --enable-redis-session --enable-redis-igbinary
nmake php-redis.dll

2.1.png

编译完成后在c:\php-sdk\phpdev\vc14\x64\php_src\ReleaseXX下找到你的php_redis.dll,放入你的php的ext目录下,修改php.ini加载即可...

extension=php_redis.dll

3.png
最后经过折腾,成功了,可是加载的运行的时候找不到redis,查看启动日志,提示这不是有效的32位程序,算了,不折腾了

相关推荐

添加新评论

全部评论:已有 7 条评论

  1. Kngstr

    这个很简单,你用的PHP不是64位的,64位的dll只能在64位的EXE中使用,同理32的也一样

    1. memory

      php64位? 这个我还真没有注意。。。回头再试试

  2. kavid

    楼主能把dll分享出来吗??正好我用的php 7.1

    php官方的7.0是似乎不能运行的

    1. kavid

      楼主发到我的邮箱呗 kavid@sina.com

      1. memory

        实在是抱歉,我昨天找了一下我WIN电脑上的编译,发现当时编译完测试不成功之后 ,我就删除了环境,然后用了一个一键安装包。。。。

    2. memory

      在单位WINPC上,周一吧,我努力记着想死这事儿,到时候打包了发上来!

  3. codes

    把 .dll 发出来让我试试啊

网站状态

  • 栏目分类:49个
  • 发布文章:1313篇
  • 用户评论:690条
  • 开博至今:3979天

正则速查

[abc] 匹配中括号中的单个字符,如a或b或c
[^abc] 匹配除了a、b、c等字符的其他单个字符
[a-z] 匹配一个字符范围,如a到z
[a-zA-Z] 匹配一个字符范围,如a-z 或 A-Z
^ 匹配行的开始
$ 匹配行的结束
\A 匹配一个字符串的开始
\z 匹配一个字符串的结束
. 匹配任意单个字符
\s 匹配空白字符,如空格,TAB
\S 匹配非空白字符
\d 匹配一个数字
\D 匹配非数字
\w 匹配一个字母
\W 匹配非字母
\b 匹配字符边界
(...) 引用所有括号中的内容
(a|b) a或者b
a? 零个或1个a
a* 零个或多个a
a+ 1个或多个a
a{3} 3次重复的a
a{3,} 3次或3次以上重复的a
a{3,6} 3到6次重复的a

修正符

/g 查找所有可能的匹配
/i 不区分大小写
/m 多行匹配
/s 单行匹配
/x 忽略空白模式
/e 可执行模式,PHP专有
/A 强制从目标字符串开头匹配
/D 使用$限制结尾字符,则不允许结尾有换行
/U 只匹配最近的一个字符串;不重复匹配

最新回复

  • pengcheng: 已解决
  • pengcheng: Oops! It seems that sphinx was b...
  • 券都有: 感谢分享
  • memory: 这是我3年前玩过一次,当时因为安装完后,发现日常办公还好,但是好...
  • sdf: 想问一下,激活工具激活后,后面会出现提示要再次重新激活吗?
  • memory: 你要用碗装我吗?还是要我把扔的扔进你碗里???!!! &^_^&
  • 薛才杰: 同感,快扔到我的碗里来。。。
  • memory: 要说明一下,在大陆及香港的云主机或VPS,都是不支持的。原因都懂...
  • 历史趣谈LishiQtan: 很好的文章,值得收藏
  • memory: 现在回头看,,,这么烂的代码,也是醉了.
  • memory: 有空试试apache的
  • 脚踏实地: rInfo数组是怎么来的
  • 朋友们: 我都是这么建站的
  • memory: 明眼人.
  • 上官元恒: $lunarInfo数组是怎么来的,这是重点
  • memory: 你知道的太多了...
  • yjl: 这个肯定解决的不是空间的问题,可能是复用的问题,有可能是“站群”的问题