【转】windows下编译php5.4并产生php_memcache.dll供php5.4使用

windows下编译php5.4出php_memcache.dll

参考:http://97dst.com/thread-21-1-1.html

1.下载及安装

(1)安装Visual C++ 2008 Express Edition with SP1 

下载地址: http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express

注意: 是在线安装包,安装非常慢,大约得安装一天,请耐心等待.

(2)安装windows SDK 6.1开发包

下载地址: http://www.microsoft.com/en-us/download/details.aspx?id=11310#Overview

注意:是在线安装包,安装非常慢,大约得安装一天,请耐心等待.

(3)下载php源包:php5.4-201206230730.tar.gz (tar.gz) 

下载地址: http://snaps.php.net/

   下载php sdk:deps-5.4-vc9-x86.7z

下载地址:http://windows.php.net/downloads/php-sdk/

    下载php sdk:php-sdk-binary-tools-20110915.zip

下载地址:http://windows.php.net/downloads/php-sdk/

(4)下载memcache-2.2.6.tgz

下载地址: http://pecl.php.net/package/memcache

2. 部署编译环境 

(1)在D盘创建文件夹php_sdk

(2)解压php-sdk-binary-tools-20110915.zip 到php_sdk里(注意,bin,script.share在php_sdk根目录哦)

(3)在开始菜单中找到microsoft windows sdk v6.1=>打开cmd shell,执行下面命令

C:\Windows\system32> d:

D:\> cd php_sdk

D:\php_sdk> setenv /x86 /xp /release

D:\php_sdk> bin\phpsdk_setvars.bat

D:\php_sdk> bin\phpsdk_buildtree.bat php54dev

这时会出现D:\php_sdk\php54dev目录.

(4)进入D:\php_sdk\php54dev\vc9\x86下

解压deps-5.4-vc9-x86.7z 覆盖本来已存在deps.

解压php5.4-201206230730.tar.gz 后目录为D:\php_sdk\php54dev\vc9\x86\php5.4-201206230730

创建pecl文件夹,并把memcache-2.2.6.tgz解压进去,改变默认名后目录结构为:D:\php_sdk\php54dev\vc9\x86\pecl\memcache

创建obj文件夹,供编译使用: D:\php_sdk\php54dev\vc9\x86\obj 

(5)在(3)步中打开的cmd shell里执行下面命令:

> cd php54dev\vc9\x86\php5.4-201206160330

> buildconf

> configure --help >..\configure_help.txt 

             注意:此行会产生D:\php_sdk\php54dev\vc9\x86\configure_help.txt文件,在config出错时要多次参考里面的说明.

> configure --disable-all --enable-snapshot-build --enable-cli --enable-cgi --enable-memcache=shared --enable-object-out-dir=..\obj --enable-session --disable-zts 

             注意:特别要注意最后--disable-zts,这是供fastcgi使用的非线程安全版nts版,如果没有此选项默认产生的是线程安全ts版.

> nmake

> nmake snap

(6)在D:\php_sdk\php54dev\vc9\x86\obj\Release下已出现php_memcache.dll,把它copy到你正在使用的php/ext下.

  修改你正在使用的php.inir:extension=php_memcache.dll

  打开phpinfo页看一下是否已有memcache块.

编译ts版的后记: 

1.当编译ts版时(即没有--disable-zts时)会出现一些错误

..\pecl\memcache\memcache.c(1970) : error C2198: “zend_list_insert”: 用于调用的参数太少

      解决:

打开pecl\memcache\memcache.c文件,找到error行,加在第二个参数后面加" TSRMLS_CC":

如改zend_list_insert(mmc, le_pmemcache); 为 zend_list_insert(mmc, le_pmemcache TSRMLS_CC);

重新config,nmake生成.

2.当编译ts版时,把dll移到你正在使用的php目录下后,测试时出现

如果报错"无法定位程序输入点zend_new_interned_string于动态链接库php55s.dll"

解决:

把php55s.dll也复制到你要使用的php目录下.

来源:http://fengzheng369.blog.163.com/blog/static/752209792012525115254998/


转载于:https://my.oschina.net/u/1391970/blog/289668

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值