热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Windows下适用于PHP7.1的memcache扩展工具编译

项目里需要PHP支持memcache扩展,首先来介绍一下memcache是啥吧介绍memcache是一套分布式的高速缓存系统,由LiveJournal的BradFitzpatrick开

项目里需要PHP支持memcache扩展,首先来介绍一下memcache是啥吧

介绍

memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。

memcache经常和memcached混淆,其实memcache只是一个扩展工具,使得PHP可以连接到memcached服务器,高速缓存服务由memcached服务器来提供,在Windows下,要使用memcached高速缓存,必须同时安装PHP下的memcache扩展和memcached服务器。

php_memcache.dll编译和安装

添加Windows下PHP的memcache扩展,首先应该了解到的一点是:

Windows下PHP的扩展工具都是*.dll文件,存储在PHP安装目录下的ext文件夹中,想要开启扩展,必须在ext文件夹中有相应的dll文件,并且在php.ini文件里面加入相应的配置,格式举例如下:
extension=php_memcache.dll

由于php_memcache.dll的官方编译出来的版本支持到PHP 5.6就断了,幸运的是,虽然放出的已编译版本停了,但是源码还在更新,并且支持了7.1,所以,之前配置了PHP 7.1.4的博主我就只好操起不熟练的VS 2015命令行进行编译适合自己的php_memcache.dll了。

编译前的下载

想要编译最新的php_memcache.dll,必不可少的当然是它的源码啦,下载地址如下:
https://github.com/websupport-sk/pecl-memcache

还需要编译环境,博主之前装的VS 2015这时候就起作用了,没有装VS 2015的朋友可以去官网下一个,反正community版本不需要付费,常用功能一个也没少,下载地址如下:

ed2k://|file|cn_visual_studio_community_2015_with_update_3_x86_x64_dvd_8923246.iso|7633565696|605D19028916D09E1BFA2DABBD266FE9|/

编译环境有了,还需要有PHP的sdk,不然还是编译不了,下载地址如下:
http://windows.php.net/downloads/php-sdk/
下载图中所示的两个文件
这里写图片描述

最后一个需要下载的是你所使用的PHP的源码,下载地址如下:
http://windows.php.net/downloads/releases/
在这里找到你当前版本对应的src文件,例如我所需要的是php-7.1.4-src.zip

编译前的目录准备

1、创建一个用于编译的目录,例如 E:\PHPCompile

2、解压php-sdk-binary-tools-20110915.zip里面的文件到PHPCompile目录下;

3、编辑 E:\PHPCompile\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

注:这是因为phpsdk_buildtree.bat比较旧(毕竟2011年的古董),还不支持VC14,因此需要添加代码让其支持 VC14

4、在开始菜单找到并打开 VS2015 x64 本机工具命令提示符(注:如果要编译32位的,则需进入VS2015 x86 本机工具命令提示符),用cd 命令进入 E:\PHPCompile,执行如下两条命令:

bin\phpsdk_setvars.bat 
bin\phpsdk_buildtree.bat phpdev

5、执行后,目录下会生成phpdev文件夹;

6、 进入D:\PHPCompile\phpdev\vc14\x64\,把deps-7.1-vc14-x64.7z解压到该目录下,覆盖deps文件夹

7、 把php源代码也解压到x64目录下,将解压后的目录名改为PHP7

8、在x64目录下创建pecl文件夹,在该文件夹下再建立memcache文件夹,将下载的memcache代码解压到这个目录下,再在x64目录下创建obj文件,用来存放编译后的文件

编译

在刚才的 VS2015 x64 本机工具命令提示符执行以下命令,用于创建php编译配置:

cd phpdev\vc14\x64\php7 
buildconf
configure --help >..\configure_help.txt
configure --disable-all --enable-cli --enable-zlib --enable-hash --enable-session --without-gd --with-bz2 --enable-memcache=shared --enable-object-out-dir=..\obj

如果提示bison.exe不存在,执行如下命令,再重新执行上面的命令:

set path=%path%;E:\PHPCompile\bin

如果不出意外,此时就可以使用如下命令来进行编译工作了:

nmake

这里经常会出问题,具体问题需要大家根据错误原因自行百度解决方法,当问题都解决了之后,就可以在E:\PHPCompile\phpdev\vc14\x64\obj\Release_TS\下找到php_memcache.dll了。

安装

复制php_memcache.dll到PHP\ext下,然后在php.ini里面找到一堆extension,在后面添加如下配置:

extension=php_memcache.dll

之后可以重启Apache服务器,然后访问http://localhost/phpinfo.php,如果里面已经有memcache扩展信息的话就安装成功了,如果没有信息,那就检查一下是位置没放对或者php.ini没有编辑好还是其他原因。


memcached服务器的安装

下载
下载地址:http://pan.baidu.com/s/1gdKbp8R

安装

1、解压下载后的文件,把它放到一个目录中,如D:\memcached。

2、打开cmd,进入memcached解压后存放的目录,运行命令:

       memcached.exe -d install

如果没有意外的话已经安装成功了。

3、测试是否安装成功:输入memcached –h

如果出现如下图所示即为安装成功(版本号可能不同)
这里写图片描述

4、启动memcached:在 memcached 的目录下输入 memcached.exe -d start

测试

  1. 此时在任务管理器中应该可以看到memcached.exe这个进程在运行
  2. 在服务中,应该可以看到多了个memcached服务,并且已经启用
  3. 打开cmd,运行命令:
  telnet 127.0.0.1 11211

即可连接memcached。输入Version和Status可以查看版本号和状态

至此,php的memcache扩展工具以及memcached高速缓存服务器已经安装完成,项目可以正常运行了


推荐阅读
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 优化后的标题:PHP分布式高并发秒杀系统设计与实现
    PHPSeckill是一个基于PHP、Lua和Redis构建的高效分布式秒杀系统。该项目利用php_apcu扩展优化性能,实现了高并发环境下的秒杀功能。系统设计充分考虑了分布式架构的可扩展性和稳定性,适用于大规模用户同时访问的场景。项目代码已开源,可在Gitee平台上获取。 ... [详细]
  • 浏览器中 W3School JavaScript 的 Location 对象详解
    Location对象是浏览器Window对象的一部分,通过`window.location`属性可访问。它包含了当前页面URL的相关信息,如协议、主机名、路径和查询参数等,对于页面导航和URL操作非常有用。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 抖音AI特效风靡网络,真人瞬间变身动漫角色,吴亦凡、PDD和戚薇纷纷沉迷其中
    近期,抖音推出的一款名为“变身漫画”的AI特效在社交媒体上迅速走红,吸引了大量用户尝试。不仅普通网友积极参与,连吴亦凡、PDD和戚薇等明星也纷纷加入,体验将真人瞬间转化为动漫角色的神奇效果。这一特效凭借其高度的趣味性和创新性,迅速成为网络热议的话题。 ... [详细]
  • 深入解析 C 语言与 C++ 之间的差异及关联
    深入解析 C 语言与 C++ 之间的差异及关联 ... [详细]
  • 在Android平台上利用FFmpeg的Swscale组件实现YUV与RGB格式互转
    本文探讨了在Android平台上利用FFmpeg的Swscale组件实现YUV与RGB格式互转的技术细节。通过详细分析Swscale的工作原理和实际应用,展示了如何在Android环境中高效地进行图像格式转换。此外,还介绍了FFmpeg的全平台编译过程,包括x264和fdk-aac的集成,并在Ubuntu系统中配置Nginx和Nginx-RTMP-Module以支持直播推流服务。这些技术的结合为音视频处理提供了强大的支持。 ... [详细]
  • 在2020年8月19日的深度分析中,我们探讨了HTML标签中同时存在`a`标签的`href`和`onclick`属性时的触发顺序问题。此外,还讨论了如何在一个自适应高度的父级`div`中,使两个子`div`中的一个固定高度为300px,另一个自动填充剩余空间的方法。最后,文章详细介绍了JavaScript异步加载的多种实现方式,包括但不限于`async`、`defer`属性以及动态脚本插入技术,为开发者提供了丰富的技术参考。 ... [详细]
  • Gear 月度进展报告:2023年7月最新动态与技术升级
    Gear 月度进展报告:2023年7月最新动态与技术升级 ... [详细]
  • 在MFC开发过程中,利用Windows内置的文件对话框可以显著提高文件操作的效率。本文总结了使用文件对话框进行文件选择和处理的经验,详细介绍了相关API的调用方法和参数设置,如`CFileDialog`类的使用、结构体`OPENFILENAME`的配置以及如何获取选中的文件路径。通过这些技巧,开发者可以快速实现文件的打开、保存等功能,提升应用程序的用户体验。 ... [详细]
  • 本文首先对信息漏洞的基础知识进行了概述,重点介绍了几种常见的信息泄露途径。具体包括目录遍历、PHPINFO信息泄露以及备份文件的不当下载。其中,备份文件下载涉及网站源代码、`.bak`文件、Vim缓存文件和`DS_Store`文件等。目录遍历漏洞的详细分析为后续深入研究奠定了基础。 ... [详细]
  • 本文深入探讨了 Vue.js 中异步组件的应用与优化策略。首先,文章介绍了异步组件的基本概念及其在现代前端开发中的重要性。为了确保最佳实践,建议使用 Webpack 作为模块打包工具,因为 Browserify 默认不支持异步组件的加载。接着,详细解释了异步组件的使用方法,并提供了官方文档的相关链接以供参考。此外,文章还讨论了多种优化技巧,包括代码分割、懒加载和性能调优,以提升应用的整体性能和用户体验。 ... [详细]
  • 在生产环境中进行高效部署与优化 ... [详细]
  • 宏基因组学经典文献重现(一):利用ggplot2进行散点图可视化分析
    宏基因组学经典文献重现(一):利用ggplot2进行散点图可视化分析 ... [详细]
author-avatar
8877Lyt_953
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有