首页 > 程序开发 > PHP > Windows下编译适用于PHP 7的memcache
2017
12-15

Windows下编译适用于PHP 7的memcache

介绍

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

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

php_memcache.dll编译和安装

PHP 7出来后,http://pecl.php.net/package/memcache上没有for PHP7的PHP-memcache版本,需要自己编译一个。网上找到的大多是在linux下的,而我需要的是windows下的版本,找了好久没也没有找到合适的版本,只好自己动手了。

注:本文讲的是编译PHP-memcache,而不是memcached。

编译前的下载

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

PHP 7是用VC14编译的,因此编译PHP-memcache也需要使用VC14,没有装VS 2015的朋友可以去 msdn 下一个,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/
下载图中所示的两个文件

20171215154321

PHP源代码:

http://windows.php.net/downloads/releases/

在这里找到你当前版本对应的src文件,例如我所需要的是php-7.1.12-src.zip

编译前的目录准备

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

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

3、编辑 D:\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 命令进入 D:\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 
set path=%path%;D:\PHPCompile\bin
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

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

nmake

这里经常会出问题,具体问题需要大家根据错误原因自行百度解决方法,当问题都解决了之后,就可以在D:\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没有编辑好还是其他原因。

最后编辑日期:
作者:uuling
这个作者貌似有点懒,什么都没有留下。