Windows下适用于PHP 7.1的memcache扩展工具编译
項目里需要PHP支持memcache擴展,首先來介紹一下memcache是啥吧
介紹
memcache是一套分布式的高速緩存系統,由LiveJournal的Brad Fitzpatrick開發,但目前被許多網站使用以提升網站的訪問速度,尤其對于一些大型的、需要頻繁訪問數據庫的網站訪問速度提升效果十分顯著。
memcache經常和memcached混淆,其實memcache只是一個擴展工具,使得PHP可以連接到memcached服務器,高速緩存服務由memcached服務器來提供,在Windows下,要使用memcached高速緩存,必須同時安裝PHP下的memcache擴展和memcached服務器。
php_memcache.dll編譯和安裝
添加Windows下PHP的memcache擴展,首先應該了解到的一點是:
Windows下PHP的擴展工具都是*.dll文件,存儲在PHP安裝目錄下的ext文件夾中,想要開啟擴展,必須在ext文件夾中有相應的dll文件,并且在php.ini文件里面加入相應的配置,格式舉例如下:?
extension=php_memcache.dll
由于php_memcache.dll的官方編譯出來的版本支持到PHP 5.6就斷了,幸運的是,雖然放出的已編譯版本停了,但是源碼還在更新,并且支持了7.1,所以,之前配置了PHP 7.1.4的博主我就只好操起不熟練的VS 2015命令行進行編譯適合自己的php_memcache.dll了。
編譯前的下載
想要編譯最新的php_memcache.dll,必不可少的當然是它的源碼啦,下載地址如下:?
https://github.com/websupport-sk/pecl-memcache
還需要編譯環境,博主之前裝的VS 2015這時候就起作用了,沒有裝VS 2015的朋友可以去官網下一個,反正community版本不需要付費,常用功能一個也沒少,下載地址如下:
ed2k://|file|cn_visual_studio_community_2015_with_update_3_x86_x64_dvd_8923246.iso|7633565696|605D19028916D09E1BFA2DABBD266FE9|/
1
編譯環境有了,還需要有PHP的sdk,不然還是編譯不了,下載地址如下:?
http://windows.php.net/downloads/php-sdk/?
下載圖中所示的兩個文件?
最后一個需要下載的是你所使用的PHP的源碼,下載地址如下:?
http://windows.php.net/downloads/releases/?
在這里找到你當前版本對應的src文件,例如我所需要的是php-7.1.4-src.zip
編譯前的目錄準備
1、創建一個用于編譯的目錄,例如 E:\PHPCompile
2、解壓php-sdk-binary-tools-20110915.zip里面的文件到PHPCompile目錄下;
3、編輯 E:\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
1
2
3
4
5
6
注:這是因為phpsdk_buildtree.bat比較舊(畢竟2011年的古董),還不支持VC14,因此需要添加代碼讓其支持 VC14
4、在開始菜單找到并打開 VS2015 x64 本機工具命令提示符(注:如果要編譯32位的,則需進入VS2015 x86 本機工具命令提示符),用cd 命令進入 E:\PHPCompile,執行如下兩條命令:
bin\phpsdk_setvars.bat?
bin\phpsdk_buildtree.bat phpdev?
1
2
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?
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
1
2
3
4
如果提示bison.exe不存在,執行如下命令,再重新執行上面的命令:
set path=%path%;E:\PHPCompile\bin
1
如果不出意外,此時就可以使用如下命令來進行編譯工作了:
nmake
1
這里經常會出問題,具體問題需要大家根據錯誤原因自行百度解決方法,當問題都解決了之后,就可以在E:\PHPCompile\phpdev\vc14\x64\obj\Release_TS\下找到php_memcache.dll了。
安裝
復制php_memcache.dll到PHP\ext下,然后在php.ini里面找到一堆extension,在后面添加如下配置:
extension=php_memcache.dll
1
之后可以重啟Apache服務器,然后訪問http://localhost/phpinfo.php,如果里面已經有memcache擴展信息的話就安裝成功了,如果沒有信息,那就檢查一下是位置沒放對或者php.ini沒有編輯好還是其他原因。
memcached服務器的安裝
下載?
下載地址:http://pan.baidu.com/s/1gdKbp8R
安裝
1、解壓下載后的文件,把它放到一個目錄中,如D:\memcached。
2、打開cmd,進入memcached解壓后存放的目錄,運行命令:
? ? ? ?memcached.exe -d install
? ? ? ?如果沒有意外的話已經安裝成功了。
1
2
3
3、測試是否安裝成功:輸入memcached –h
如果出現如下圖所示即為安裝成功(版本號可能不同)?
4、啟動memcached:在 memcached 的目錄下輸入 memcached.exe -d start
測試
此時在任務管理器中應該可以看到memcached.exe這個進程在運行
在服務中,應該可以看到多了個memcached服務,并且已經啟用
打開cmd,運行命令:
? telnet 127.0.0.1 11211
1
即可連接memcached。輸入Version和Status可以查看版本號和狀態
至此,php的memcache擴展工具以及memcached高速緩存服務器已經安裝完成,項目可以正常運行了
?
總結
以上是生活随笔為你收集整理的Windows下适用于PHP 7.1的memcache扩展工具编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梳妆台可以放阳台上吗?
- 下一篇: Alpha版本