没有哪种教育能及得上逆境 [登录·注册]

吕滔博客

首页 开发 运维 工具 摄影

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个
  • 发布文章:1541篇
  • 用户评论:787条
  • 开博至今:4191天

正则速查

[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 只匹配最近的一个字符串;不重复匹配

最新回复

  • memory: 这是测试,不建议正式环境这样使。
  • 广州网站建设: 构建redis集群时候,不要使用生产环境
  • memory: 照着大差不着的改一下就成了rewrite ^/sort/([0-...
  • mage: 按照上面设置的伪静态url是类似这种形式的 /listinfo-...
  • mage: 比如这种URL:帝国7.5伪静态如何可以做到这种形式(拼音或者英...
  • memory: 额,难住我了,哈哈。我项目中没有用过这么复杂的。
  • 马哥: 请问如何设置目录名是拼音,然后文章页在目录下面的伪静态
  • memory: conf文件中location段加上规则就可以了呀。然后relo...
  • mage: 后台系统设置,设置好了。规则应该怎么处理,nginx的服务器
  • 葛一速: 这个函数很实用,谢谢分享
  • memory: 这个是layui1.x中的,我项目中就是这样用的。如果你没理解,...
  • 李帅: 你会不会的 发这个糊弄人
  • memory: 升级完之后,测试无误后再删旧的~~~
  • 广州网站建设: 升级之前用不用先删了内核
  • memory: 没测试过...
  • 欧文斯: 对于多个 IP 段呢?比如超过 1000 个 IP 段,匹配速度...
  • 广州网站建设: 了解了,博客的通配符HTTPS证书