Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

本篇主要简述编译php及其扩展memcache,在阅读后面内容之前,建议先阅读一下官方文档介绍的“从源程序编译”。下面我们以php-5.3.10为例。

一、编译环境

根据你的php版本选择相应的编译器:

php 5.3-5.4 :Visual C++ 9.0(Visual Studio 2008)

php 5.5+ :Visual C++ 11.0(Visual Studio 2012)

如果是php5.3-5.4,还要下载并安装Windows SDK 6.1(下载地址)//用作后面执行命令

二、编译文件

1、下载php源代码,http://php.net/releases/

2、下载php sdk文件,http://windows.php.net/downloads/php-sdk/

3、下载memcache扩展代码包,http://pecl.php.net/package/memcache

4、下载完毕后一共有这些文件

戳这里一键打包下载http://pan.baidu.com/s/1pJ3esav

三、编译工作

1、创建编译目录“C:\php_sdk”  //在C盘下创建php_sdk目录

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

3、在开始菜单找到并打开Windows SDK CMD Shell,然后执行

setenv /x86 /xp /release
cd php_sdk
bin\phpsdk_setvars.bat
bin\phpsdk_buildtree.bat phpdev

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

4、进入C:\php_sdk\phpdev\vc9\x86\,把deps-5.3-vc9-x86.7z解压到该目录下,覆盖deps文件夹。

5、把php源代码也解压到x86目录下。

6、在x86目录下创建pecl文件夹,把memcache压缩包内容解压到pecl目录,并把文件夹名memcache-2.2.7改为memcache

7、在x86目录下创建obj文件夹,用于保存编译时生成的文件

8、执行以下命令,用于创建php编译配置

cd phpdev\vc9\x86\php5.3-201308211030
buildconf
configure --help >..\configure_help.txt
configure --disable-all --enable-snapshot-build --enable-cli --enable-cgi --enable-memcache=shared --enable-object-out-dir=..\obj --enable-session

  

注:配置中的--enable-memcache=shared意思是 memcache 以 dll 形式生成,否则就和php集成在一起了。

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

set path=%path%;C:\php_sdk\bin

9、编译php,执行以下命令

nmake

10、如果想打包php,执行以下命令

nmake snap

编译中需要一点时间,请耐心等待编译。

到这里,编译工作应该结束了。可以在C:\php_sdk\phpdev\vc9\x86\obj\ReleaseTS\目录中找到php_memcache.dll

注:本文参考http://blog.csdn.net/mycwq/article/details/10165955

windows 下编译php扩展库pecl里的扩展memcache的更多相关文章

  1. 如何在WINDOWS下编译BOOST C++库 .

    如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25   写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0.   1)下载boost ...

  2. 继《在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib》修订

    在之前的<在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib>中有些问题,后来由于时间不是很充足,故现在对其中的问题进行完善,如下所示对红色框框中的相应的 ...

  3. windows下编译和安装boost库

    boost是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库. 获取方式 boost提供源码形式的安装包,可以从boost官方网站下载,目前最新版本是1.59.0. 本机上正好有boos ...

  4. Golang调用windows下的dll动态库中的函数 Golang 编译成 DLL 文件

    Golang调用windows下的dll动态库中的函数 package main import ( "fmt" "syscall" "time&quo ...

  5. windows下编译php7图形库php_ui.dll

    CSDN博客 具有图形化编程才有意思,这几天看到了php ui 图形扩展,只是现在只能下载php 7.1的 本次教程编译php7.2.6的 php ui 要是linux下编译起来比较简单 但是 win ...

  6. Windows下编译objective-C

    Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode   目录 ...

  7. 在Windows下编译FFmpeg详细说明

    MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

  8. Windows下编译安装 FFmpeg

    在Linux/Mac下编译 ffmpeg是非常方便的.但要在 Windows下编译 ffmpeg还真要花点时间.以下就是在 Windowns下编译ffmpeg的步骤: 一.安装Cygwin 在wind ...

  9. 在Windows下编译Emacs

    在Windows下编译Emacs Windows下编译好的Emacs主要有两个版本,一个来自http://nqmacs.sourceforge.net/,另一个来自http://www.crasseu ...

随机推荐

  1. jQuery.sort对DOM元素进行排序

    实例: 每个tr的第三列显示的都是数字,我们就以这数字列作为排序依据,方法就是利用jquery的sort()方法. 首先,利用jquery选择器获取每个tr元素,获取回来是一个数据: var $trs ...

  2. Applovin Interview (面经)

    职位:SDE Intern positon 地点: San Jose 轮电面:self introduction what's your interest Concept of "Concu ...

  3. Pycharm安装及遇到的问题

    趁寒假想自学一下python语言,有人推荐eclipse+pydev但是因为java编程用了eclipse,不太想一个IDE用于多种语言开发(个人喜好),于是就下载了Pycharm,之间安装了也遇到了 ...

  4. android 下Protobuff框架性能测试结果

    android 下Protobuff常用的框架有三个: protobuff自身,  square出的wire , protostuff 由于protobuff会为每个属性生成大量不常用的方法,当程序比 ...

  5. js DOM操作---登录例子总结

    简单的总结下用 javascript DOM 实现简易登录框例子,下面是简单的模拟登录,没有具体的登录样子,但只是模拟,整理下思路. 页面简单布局,我这个确实太简单了,看代码: <body> ...

  6. Struts2系列笔记(7)---Struts2类型转换

    Struts2类型转换      struts2中内置了大量的类型转换器用来完成数据类型转换的问题,这篇随笔主要通过两个方面来写Struts类型转换 1:Struts2内置的类型转换器 2:如何自定义 ...

  7. 探索Javascript设计模式---单例模式

    最近打算系统的学习javascript设计模式,以便自己在开发中遇到问题可以按照设计模式提供的思路进行封装,这样可以提高开发效率并且可以预先规避很多未知的问题. 先从最基本的单例模式开始. 什么是单例 ...

  8. Oracle 生成一张测试表并插入随机数据

    --生成随机表 --CREATE table scott.One_Million as ( SELECT ROWNUM AS T_ID, TRUNC(DBMS_RANDOM.VALUE(, )) 年龄 ...

  9. vue1升级到vue2的问题

    router 不能用map方法了,需要改router的结构改为 routers= [ { // 当没有匹配路由时默认返回的首页        path:'/index',        compone ...

  10. DOM树的增查改删总结

    DOM树的增查改删总结 摘要:对HTML DOM的操作是前端JavaScript编程时必备的技能,本文是我自己对DOM树操作的总结,主要是方法的罗列,原理性的讲述较少,适合大家用于理清思路或是温习 一 ...