php vc15,PHP - windows下编译PHP 7.2的memcache

概述

PHP 7.2出来有一段时间了,不出意料,memcache又不能用了,于是又想到要自己动手编译,不过与我编译PHP 7.1的memcache的时候相比,有个好消息是已经有人把PHP 7.1和7.2 的memcache都编译好并放在github上了,需要的可直接去那里下载,我这篇文章就不提供下载了:

https://github.com/nono303/PHP7-memcache-dll

注:这里还是要强烈吐槽一下百度,以“php 7.2 memcache”为关键字,完全搜索不到任何有用的东西,上面那个网址我是用google一下子就搜到了,而且还受到启发,顺利的把编译过程给搞定,所以搞开发的遇到技术问题,还是不要在百度上浪费生命了。

我下面还是把我研究出来的PHP 7.2 memcache的编译方法写出来,给有需要的人做个参考吧。

PHP 7.2的memcache编译方法跟之前版本有了一些变化,主要体现在:

PHP SDK的下载路径与编译方式发生了改变;

PHP 7.2的memcache要使用VC15编译;

下载文件

编译前需要下载如下文件:

准备PHP代码

注意:编译前需先安装好vs2017。

新建一个编译目录,如PHP72Compile;

将从https://github.com/Microsoft/php-sdk-binary-tools 下载的包解压到这个目录,目录结构如下:

af022a01d29a21379283f6b7785ebbd0.png

打开cmd窗口,进入到PHP72Compile目录;

执行phpsdk-vc15-x64.bat,结果如下图:

4c5ea8e7c0a51fc3c64b7a882df4cf37.png

再运行:phpsdk_buildtree phpdev,结果如下图:

16af96ddfdf4a4d3df2d597f2ef1e5f6.png

在此路径下建立php-src目录,并将下载的PHP源码拷贝到这个目录,最终目录结构如下:

d02165a868f6bff6537f26f01b032679.png

在命令行进入到php-src目录,结果如下图:

27d74d537da27c1c494dc67fa8df8492.png

执行命令:phpsdk_deps --update --branch master,用来获取SDK的依赖包,输出信息如下:

D:\PHP72Compile\phpdev\vc15\x64\php-src

$ phpsdk_deps --update --branch master

Configuration: master-vc15-x64-staging

Processing package ICU-60.1-1-vc15-x64.zip

Processing package apache-2.4.28-vc15-x64.zip

Processing package c-client-2007f-vc15-x64.zip

Processing package fbclient-3.0-nocrt-x64.zip

Processing package freetype-2.8.0-1-vc15-x64.zip

Processing package glib-2.53.3-vc15-x64.zip

Processing package libargon2-20161029-vc15-x64.zip

Processing package libbzip2-1.0.6-vc15-x64.zip

Processing package libcurl-7.56.0-2-vc15-x64.zip

Processing package libenchant-1.6.0-vc15-x64.zip

Processing package libffi-3.2.1-vc15-x64.zip

Processing package libiconv-1.15-1-vc15-x64.zip

Processing package libintl-0.18.3-1-vc15-x64.zip

Processing package libjpeg-9b-vc15-x64.zip

Processing package liblmdb-0.9.21-vc15-x64.zip

Processing package libpng-1.6.34-vc15-x64.zip

Processing package libpq-9.6.5-vc15-x64.zip

Processing package libqdbm-1.8.78-vc15-x64.zip

Processing package libsasl-2.1.27-vc15-x64.zip

Processing package libssh2-1.8.0-vc15-x64.zip

Processing package libtidy-5.4.0-vc15-x64.zip

Processing package libwebp-0.6.0-vc15-x64.zip

Processing package libxml2-2.9.5-vc15-x64.zip

Processing package libxpm-3.5.12-1-vc15-x64.zip

Processing package libxslt-1.1.30-vc15-x64.zip

Processing package libzip-1.3.0-v15-x64.zip

Processing package mpir-3.0.0-vc15-x64.zip

Processing package net-snmp-5.7.3-vc15-x64.zip

Processing package nghttp2-1.24.0-vc15-x64.zip

Processing package openldap-2.4.45-vc15-x64.zip

Processing package openssl-1.1.0g-vc15-x64.zip

Processing package wineditline-2.202-vc15-x64.zip

Processing package zlib-1.2.11-vc15-x64.zip

Processing package libsodium-1.0.15-vc15-x64.zip

Updates performed successfully.

Old dependencies backed up into 'D:\PHP72Compile\phpdev\vc15\x64\deps.201712260650'.

D:\PHP72Compile\phpdev\vc15\x64\php-src

$

准备PHP memcache代码

在与php-src同级的目录下建立pecl\memcache目录,并将下载的php-memcache代码放到这个目录下,效果如下图:

60b21c5c09fb620f6b6fa0cda14216b2.png

执行buildconf命令,效果如下图:

6e7ce99e3f7c0e446796ab21ae6eecff.png

执行命令:

configure --disable-all --enable-cli --enable-zlib --enable-hash --enable-session --without-gd --with-bz2 --enable-memcache=shared --enable-fd-setsize=2048 --enable-sanitizer

输出信息如下:

D:\PHP72Compile\phpdev\vc15\x64\php-src

$ configure --disable-all --enable-cli --enable-zlib --enable-hash --enable-session --without-gd --with-bz2 --enable-memcache=shared --enable-fd-setsize=2048 --enable-sanitizer

PHP Version: 7.2.0

Saving configure options to config.nice.bat

Checking for cl.exe ...

WARNING: Using unknown MSVC version 19.12.25831

Detected compiler MSVC 19.12.25831, untested

Detected 64-bit compiler

Checking for link.exe ... C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.12.25827\bin\HostX64\x64

Checking for nmake.exe ...

Checking for lib.exe ...

Checking for bison.exe ...

Checking for sed.exe ...

Checking for re2c.exe ...

Detected re2c version 1.0.2

Checking for zip.exe ...

Checking for lemon.exe ...

Checking for mc.exe ... C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64

Checking for mt.exe ... C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64

Enabling multi process build

Build dir: D:\PHP72Compile\phpdev\vc15\x64\php-src\x64\Release_TS

PHP Core: php7ts.dll and php7ts.lib

Checking for wspiapi.h ...

Enabling IPv6 support

Enabling SAPI sapi\cli

Checking for library edit_a.lib;edit.lib ... ..\deps\lib\edit_a.lib

Checking for editline/readline.h ... D:\PHP72Compile\phpdev\vc15\x64\deps\include

Checking for library libbz2_a.lib;libbz2.lib ... ..\deps\lib\libbz2_a.lib

Checking for bzlib.h ... D:\PHP72Compile\phpdev\vc15\x64\deps\include

Enabling extension ext\bz2

Enabling extension ext\date

Checking for KeccakHash.h ... ext/hash/sha3/generic64lc

Enabling extension ext\hash

Enabling extension ext\pcre

Enabling extension ext\reflection

Enabling extension ext\session

Enabling extension ext\spl

Checking for timelib_config.h ... ext/date/lib

Enabling extension ext\standard

Checking for library zlib_a.lib;zlib.lib ... ..\deps\lib\zlib_a.lib

Checking for zlib.h ... D:\PHP72Compile\phpdev\vc15\x64\deps\include

Enabling extension ext\zlib

Enabling extension ..\pecl\memcache\php7 [shared]

Creating build dirs...

Generating files...

Generating Makefile

Generating main/internal_functions.c

Generating main/config.w32.h

Generating phpize

Done.

Enabled extensions:

-----------------------

| Extension | Mode |

-----------------------

| bz2 | static |

| date | static |

| hash | static |

| memcache | shared |

| pcre | static |

| reflection | static |

| session | static |

| spl | static |

| standard | static |

| zlib | static |

-----------------------

Enabled SAPI:

-------------

| Sapi Name |

-------------

| cli |

-------------

------------------------------------------------

| | |

------------------------------------------------

| Build type | Release |

| Thread Safety | Yes |

| Compiler | MSVC 19.12.25831, untested |

| Architecture | x64 |

| Optimization | PGO disabled |

| Static analyzer | disabled |

------------------------------------------------

Type 'nmake' to build PHP

D:\PHP72Compile\phpdev\vc15\x64\php-src

$

编译与查看

执行nmake开始编译,,等待几分钟或十几分钟,中间会报若干警告,不用理会;

编译完成后,在“D:\PHP72Compile\phpdev\vc15\x64\php-src\x64\Release_TS\”目录下可找到php_memcache.dll。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值