macos安裝memcached及PHP擴展

首先安裝memcached

brew install memcached

由于PHP對memcached的支持是由基于libmemached的PHP memcached擴展實現(xiàn)的,首先到https://libmemcached.org/libMemcached.html下載llibmemcached包。
解壓后進入文件夾進行編譯

./configure
make

接下來問題來了,編譯過程中會出現(xiàn)兩個error

libmemcached/byteorder.cc:66:10: error: use of undeclared identifier 'ntohll'  
  return ntohll(value);
         ^
libmemcached/byteorder.cc:75:10: error: use of undeclared identifier 'htonll'  
  return htonll(value);

這時需要在libmemcached/byteorder.cc

#include "mem_config.h"
#include "libmemcached/byteorder.h"

后面加上

#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif

這時make clean一下,清除上次make產生的文件,再次make
這時會出現(xiàn)另一個error

clients/memflush.cc:42:19: error: comparison between pointer and integer ('char *' and 'int')  
  if (opt_servers == false)

clients/memflush.cc:51:21: error: comparison between pointer and integer ('char *' and 'int')  
    if (opt_servers == false)

解決辦法:
clients/memflush.cc中的兩處opt_servers == false的false改成NULL
一般來說改了這兩處就沒有其他問題了,如此修改的原因參見https://blog.longqiuhong.com/archives/132
接下來

make clean
make
make install

等待滾屏。

libmemcached安裝完成,接下來安裝php-memcached擴展
網上有些文章使用自行下載memcached擴展包然后編譯安裝的方式,比較麻煩,這里使用更簡單的方法

pecl install memcached

pecl是一個PHP擴展庫,使用pear的包管理器,可以幫助我們快速安裝php擴展
接下來,pecl將會詢問libmemcached的所在路徑,如果安裝正確,輸入/usr/local就可以自動地安裝好memcached擴展了。
如果之前的編譯安裝沒成功,可能會提示找不到memcached.h這時需要重復嘗試

make clean
make 
make install
pecl install memcached

筆者也是嘗試了幾次才成功。

接下來開啟我們的memcached服務

brew services start memcached

查看memcached監(jiān)聽的端口,一般是11211

lsof | grep memcached

其中有兩行最后標有(LISTEN)字樣,這里的端口號就是memcached監(jiān)聽的端口了。
到這里安裝工作圓滿完成。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容