memcache和memcached都是Memcached伺服器的PHP擴充。其中memcache比memcached早出現,所以有些舊的程式碼可能還在用memcache擴充。可以依自己需要,安裝一個即可。這裡兩個的安裝方法都說一下。
Memcached 是高效能的分散式記憶體快取伺服器,而PHP memcache 和 memcached 都是 Memcached 伺服器的 PHP 擴充功能。其中memcache 比 memcached 早出現,所以有些舊的程式碼可能還在用 memcache 擴充。 memcached 後來出現,並且大部分框架都支援 memcached,現在相對較流行。
首先是memcached,這個擴充功能需要libmemcached 用戶端函式庫,否則會出現如下錯誤
可以透過以下方法安裝checking for libmemcached location… configure: error: memcached support 反射; failed
[root@lnmp lnmp.cn]# yum install libmemcached libmemcached-devel#而memcache模組使用了函數zlib 來支援資料壓縮,因此安裝此模組需要安裝Zlib 模組。否則會出現以下錯誤:
checking for the location of zlib… configure: error: memcache support requires ZLIB. Use –with-zlib-dir=#可以如下方法用yum 來安裝:to specify prefix where ZLIB include and ZLIB include and library are locatedERROR: `/var/tmp/memcache/configure –enable-memcache-session=No' failed
[root@lnmp lnmp.cn]# yum install zlib zlib-devel安裝memcached 擴充功能嘗試用PECL 安裝,memcached 在PECL 上的位址是:https://pecl.php.net/package/memcached
#[root@lnmp lnmp.cn]# pecl install memcachedpecl/ memcached requires PHP (version >= 5.2.0, version #No valid packages foundinstall failed
[root@localhost vagrant]
##提示很明顯,PECL 上的memcached 擴充只支援PHP 5.2 以上,6.00 以下的版本。還未更新到 PHP7。不過還好的是在PECL 的memcached 頁面可以找到他們在github 上的連結:
https://github.com/php-memcached-dev/php-memcached
這上面的程式碼已經有可以支援到PHP7 的分支。這裡將原始碼統一下載到php 原始碼的ext 目錄:
[root@lnmp lnmp.cn]# cd /usr/local/src/php-7.0.8/ext/
[root@lnmp ext]# git clone https://github.com/php-memcached-dev/php-memcached memcached
[root@lnmp ext]# cd memcached/
checkout 到php7 分支:
#用phpize 安裝,我的PHP 是安裝在/usr/local/php7 下[root@lnmp memcached]# git checkout php7
Branch php7 set up to track remote branch php7 from origin.
Switched to a new branch 'php7'
##[root@lnmp memcached]
[root@lnmp memcached]# /usr/local/php7/bin/phpize[root@lnmp memcached]# ./configure –with-php-config=/usr /local/php7/bin/php-config接著make 和make install
[root@lnmp memcached]# make
Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/[root@lnmp memcached]#[root@lnmp memcached]# make install
#可以看到memcached 已經安裝完成,並且擴充檔案已經放到提示的目錄:[root@lnmp memcached] # ls /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/
#[root@lnmpmp memcached]memcached.so opcache.a opcache.so
#最後一步在php.ini 中引入memcached.so[root@lnmp memcached]# vim /usr/local/php7/lib/php .ini
加入:
記得reload 一下php-fpm 才能生效
#[root@lnmp memcached]# systemctl reload php-fpm
#開啟phpinfo 頁面,已經看到memcached 擴充功能成功安裝了。
###### 安裝memcache 擴充功能######也嘗試用PECL 來安裝:#########[root@lnmp memcached]# pecl install memcache#########但同樣失敗########/tmp/pear/temp/memcache/memcache.c:40:40: fatal error: ext/standard/php_smart_str. h: No such file or directory###https://pecl.php.net/package /memcache2013年以來為更新。此路不通只能另想辦法,同樣是到 github 上碰碰運氣。搜尋pecl memcachehttps://github.com/search?utf8=✓&q=pecl memcache&type=Repositories&ref=searchresults#其中第一個(https://github.com/websupport -sk/pecl-memcache)就是想要的,而且程式碼已經支援到PHP7,立即下載程式碼編譯:#include "ext/standard/php_smart_str.h"
^
compilation 11ated.
#ERROR: `make' failed看似原因也是PECL 還不支援在PHP7 下安裝memcache 擴充,
[root@lnmp memcached]# cd ../
# [root@lnmp ext]# git clone https://github.com/websupport-sk/pecl-memcache memcache[root@lnmp ext]# cd memcache#用phpize 安裝,步驟和memcached 一模一樣
[root@lnmp memcache]# /usr/local/php7/bin/phpize
#[root@lnmp memcache]# ./configure – with-php-config=/usr/local/php7/bin/php-config[root@lnmp memcache]# make[root@lnmp memcache]# make installInstalling shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/[root@lnmp memcache]
#類似memcached , 將memcache.so 在php.ini 中引入
#[root@lnmp memcache]# vim /usr/local/php7/lib/php.ini
#加入:
extension=memcache.so
#最後reload php-fpm
[root@lnmp memcache]# systemctl reload php-fpm
大功告成,可以在phpinfo 頁面看到memcahce 和memchaced 都已經成功安裝
推薦學習:php影片教學
以上是PHP7下如何安裝memcache和memcached擴充的詳細內容。更多資訊請關注PHP中文網其他相關文章!