ubuntu 搭建php7-memcached和memcache擴展

 

參考連接1:https://serversforhackers.com/c/installing-php-7-with-memcached 
參考連接2:https://hanxv.cn/archives/25.htmlphp

環境:ubuntu16.04, php7.0, apache2html

安裝 phpizegit

  1. # phpize 是用來擴展 php 擴展模塊的
  2. # php7.0 的 phpize 包含在 php7.0-dev 裏面
  3. sudo apt-get install php7.0-dev 
  4. # 使用
  5. phpize  /usr/bin/phpize

安裝 memcachedgithub

  1. # 安裝依賴
  2. sudo apt-get install memcached
  3. sudo apt-get install libmemcached11 libmemcached-dev libmemcachedutil2

* 安裝 memcached 擴展*web

  1. # 查看 php7.-0 的軟件包
  2. apt-cache search -n php7.0
  3. # 下載 memcached 到本地倉庫,並切換到 php7 版本
  4. git clone https://github.com/php-memcached-dev/php-memcached.git
  5. cd php-memcached/
  6. git checkout php7
  7.  
  8. # 執行配置文件,注意:這一步可能會出錯,緣由多是缺乏 memcached 依賴, 安裝上面安裝即可
  9.  
  10. phpize
  11.  
  12. #大寫的注意!!
  13. ./configure --disable-memcached-sasl 
  14. 注意:ubuntu提示checking for pkg-config... nopkg-config not found
  15. configure: error: Please reinstall the pkg-config distribution
  16. 解決:安裝pkg-config  
  17. sudo apt-get install pkg-config
  18.  
  19. 再次執行 
  20. ./configure --disable-memcached-sasl   命令便可
  21.  
  22.  
  23. # 編譯安裝
  24. make && make install
  25. 編譯安裝完成後會返回 buil completed 提示信息以及你的擴展地址
  26. ##必定要記住!很重要!返回的擴展地址 Installing shared extensions:     /usr/lib/php/20151012/
  27.  
  28. #把擴展添加進php中
  29. vi /etc/php/7.0/fpm/conf.d/memcached.ini
  30. 寫入:extension=/usr/lib/php/20151012/memcached.so
  31. vi /etc/php/7.0/apache2/php.ini 
  32. 寫入:extension=/usr/lib/php/20151012/memcached.so
  33.  
  34.  
  35.  
  36. # 執行 phpinfo.php 查看 memcached 是否被添加​
  37.  

 

Memcache存放Session

一、若是你能修改到服務器配置文件,那就打開打開php.ini(ubuntu php7 在/etc/php/7.0/apache2/php。ini)

  1. vi /etc/php/7.0/apache2/php.ini
  2. 重啓服務sudo /etc/init.d/apache2 restart
  3. 找到session.save_handler,並設爲 session.save_handler = memcache,把session.save_path前面的分號去掉,並設置爲 session.save_path = tcp://127.0.0.1:11211″
  4. session.save_handler = memcache
  5. session.save_path = tcp://127.0.0.1:11211″​
  6. 重啓服務sudo service apache2 restart

查看phpinfo 中的設置apache

 

以後記得要重啓apache服務器
重啓服務sudo service apache2 restart

查看一下phpinfo()中的 「Registered save handlers」 會有 「files user memcache」 這3個可用。若是沒有的話從新安裝一下或者肯定本身是否有重啓apache服務器。ubuntu

 



或者某個目錄下的 .htaccess :

 


php_value session.save_handler 「memcache」
php_value session.save_path 「tcp://127.0.0.1:11211″


再或者在某個一個應用中:centos


ini_set(「session.save_handler」, 「memcache」);
ini_set(「session.save_path」, 「tcp://127.0.0.1:11211″);瀏覽器

 

注意:

使用多個 memcached server 時用逗號」,」隔開,而且和 Memcache::addServer() 文檔中說明的同樣,能夠帶額外的參數」persistent」、」weight」、」timeout」、」retry_interval」 等等,相似這樣的:」tcp://host1:port1?persistent=1&weight=2,tcp://host2:port2″ 。

服務器

 

 

 

 

二:php安裝memcace擴展

安裝過程以下所示

  1. [root@VM_114_93_centos local]# git clone https://github.com/websupport-sk/pecl-memcache memcache
  2. [root@VM_114_93_centos memcache-3.0.8]# cd memcache
  3.  
  4. [root@VM_114_93_centos memcache-3.0.8]# phpize
  5.  
  6. [root@VM_114_93_centos memcache-3.0.8]# whereis php-config                  
  7. php-config: /usr/bin/php-config /usr/share/man/man1/php-config.1.gz
  8. [root@VM_114_93_centos memcache-3.0.8]# ./configure --enable-memcache --with-php-config=/usr/bin/php-config --with-zlib-dir
  9. [root@VM_114_93_centos memcache-3.0.8]# make
  10. [root@VM_114_93_centos memcache-3.0.8]# make install
  11. 安裝編譯完成(吐槽,這個資源找了2小時噁心,之後必定要讀php源碼 memcache擴展沒更新到php7,因此之前的一直安裝失敗)
  12. 安裝成功提示信息,你的擴展位置 Installing shared extensions:     /usr/lib/php/20151012/
  13.  
  14. 能夠切換進入查看下你的memcache.so 是否有
  15. cd /usr/lib/php/20151012
  16. ls
  17.  
  18.  
  • 提示以下圖

 

########################################################################

老方法的安裝memcache會報錯!

這段不要操做

這段不要操做

這段不要操做

這段不要操做

這段不要操做

這段不要操做

這段不要操做

若是make完之後報錯以下(是由於

還不支持在 PHP7 下安裝 memcache 擴展,
https://pecl.php.net/package/memcache

2013年以來爲更新過。此路不通只能另想辦法,一樣是到 github 上碰碰運氣。搜索 pecl memcache
https://github.com/search?utf8=%E2%9C%93&q=pecl+memcache&type=Repositories&ref=searchresults

其中第一個(https://github.com/websupport-sk/pecl-memcache)就是想要的,而且代碼已經支持到 PHP7,當即下載代碼編譯:

請進行上面的安裝方法。

  1. make: *** [memcache_pool.lo] Error 1
  • 1

是由於沒有安裝zlib,執行如下命令後,從新安裝

  1. yum -y install zlib-devel

這段不要操做

這段不要操做

這段不要操做

這段不要操做

這段不要操做

這段不要操做

###################################################################

此時就能夠在相關目錄中看到memcache.so

在php.ini中加入如下配置:

  1. extension=/usr/lib/php/20151012/memcache.so
  • 1

而後重啓Apache,看phpinfo中 

 

工做到這裏 完美!看上圖

http://blog.csdn.net/qq_28602957/article/details/52781222

http://www.lnmp.cn/install-memcache-and-memcached-extends-under-php7.html

https://github.com/websupport-sk/pecl-memcache

 

問題:我phpinfo中已經有了memcache 和memcached擴展

可是沒法new他 提示沒有這個類

答!

請不要使用命令行php test.php 來測試 確定找不到!!!

你用瀏覽器打開一切正常!!!

 

PHP 鏈接 Memcached

<?php
$memcache = new Memcache;             //建立一個memcache對象
$memcache->connect('localhost', 11211) or die ("Could not connect"); //鏈接Memcached服務器
$memcache->set('key', 'test');        //設置一個變量到內存中,名稱是key 值是test
$get_value = $memcache->get('key');   //從內存中取出key的值
echo $get_value;
?>​

查當作功!

 

接下來就開始使用PHP操做Memcached啦! 
1.建立一個Memcached對象

  1. $m = new Memcached();
  • 1

2.傳入一臺或多臺服務器

  1. //傳入一臺服務器
  2. $m->addServer('127.0.0.1','11211');
  3. //傳入多臺服務器
  4. $servers = array(
  5.     array('127.0.0.1','11211'),
  6.     array('127.0.0.2','11211')
  7. );
  8. $m->addServers($servers);
  9. //查看一下運行狀態
  10. print_r($m->getStats());​

顯示結果爲空。由於報錯了

多臺會報錯的,註釋掉多臺服務器,連接成功

 

 

相關文章
相關標籤/搜索