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. 源码(04) -- java.util.List<E>

    java.util.List<E> 源码分析(JDK1.7) --------------------------------------------------------------- ...

  2. Python学习--17 访问数据库

    实际开发中,我们会经常用到数据库. Python里对数据库的操作API都很统一. SQLite SQLite是一种嵌入式数据库,它的数据库就是一个文件.由于SQLite本身是C写的,而且体积很小,所以 ...

  3. vb是如何连接数据库的

    vb是如何连接数据库的         刚开始学习数据库时 ,对数据库很不了解,尤其是模块中的代码.照着抄都有很多错的,每一句到底是什么意思呢,根本不懂.于是我就花费了大量的时间去查每一句代码的具体作 ...

  4. Python单元测试PyUnit框架轻度整改

    原理 参考:单元测试原理 背景 年后有段时间没写代码了,所以趁着周末找了个python单元测试玩下,测试自己的Android应用.发现PyUnit虽然在单个脚本文件中添加多个测试用例,比如官网提供的方 ...

  5. Python学习--21 电子邮件

    发送邮件 SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责 ...

  6. AJSX 传输数组

    如果要利用ajax传输数组,或者传输多个(不知道有多少个)class的某一属性的值,例如: 要将这三个数据传入php编辑界面,图片显示有三个数据,但实际上,数据的多少是由数据库所导出的数据 决定的.如 ...

  7. SVM入门(一)

    近来,了解了一下SVM(支持向量机 support vector machine)的原理.顺便把自己理解的内容整理一下. 不讲背景啦,直接切入主题.     一.什么是支持向量机 好比说,我们现在在一 ...

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

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

  9. oracle系列笔记(2)---多表查询

    多表查询     这篇文章主要讲四点: (1)oracle多表查询    (2)SQL99标准的连接查询   (3)子查询     (4)分级查询 oracle多表查询有两种方式,一种是oracle所 ...

  10. 【转】Netty系列之Netty并发编程分析

    http://www.infoq.com/cn/articles/netty-concurrent-programming-analysis