顯示廣告
隱藏 ✕
看板 Knuckles_note
作者 Knuckles (站長 那克斯)
標題 [PHP] 使用 memcache 來存 session
時間 2012年02月07日 Tue. AM 05:26:56


新版 CentOS 7 的設定方法改寫至
[CentOS7] PHP 使用 memcached 來存 session - KnucklesNote板 - Disp BBS



1) 安裝 memcached server

CentOS 5.5 以上可以直接用 yum 安裝就好

# yum install memcached

memcached 設定

# vim /etc/sysconfig/memcached

PORT="11211"
	
 #要監聽的port
USER="memcached" #用哪個使用者來執行
MAXCONN="1024"
	
 #最大連線數,改成 5000
CACHESIZE="64"
	
 #要用多大的記憶體,單位 MB,改成 256
OPTIONS=""
	
 #use for any custom options

啟動
# service memcached start

設定開機自動啟動
# chkconfig memcached on


2) 安裝 PHP Extension php-pecl-memcache

從 PECL 下載最新的 memcache http://pecl.php.net/package/memcache

# cd /usr/local/src
# wget http://pecl.php.net/get/memcache-3.0.8.tgz
# tar -zxvf memcache-3.0.8.tgz
# cd memcache-3.0.8

編譯memcache需安裝 zlib-devel 套件
# yum install zlib-devel

# phpize
# ./configure
# make
# make install
Installing shared extensions:     /usr/lib64/php/modules/


# vim /etc/php.ini

搜尋 session.save_handler = files
改為 session.save_handler = memcache

修改 session.save_path="tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"


新增 memcache.ini 檔
$ vim /etc/php.d/memcache.ini
輸入

extension=memcache.so


重啟 httpd
# service httpd restart


使用 php -i | grep memcache 或用網頁 <?php phpinfo(); ?> 來看看有沒有執行成功


memcache的安裝資料中有附一個用來觀察memcache狀態的網頁 memcache.php
# cd /usr/local/src/memcache-3.0.8
# cp memcache.php /var/www/html

# vim /var/www/html/memcache.php
修改登入的帳號密碼
define('ADMIN_USERNAME','memcache');    // Admin Username
define('ADMIN_PASSWORD','password');    // Admin Password

若是使用 php-fpm 時,無法使用 $_SERVER['PHP_AUTH_USER']
所以可以把  /////Password protect///// 那一段註解掉取消使用密碼


修改memcached server的位址

#$MEMCACHE_SERVERS[] = 'mymemcache-server1:11211'; // add more as an array
#$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array
$MEMCACHE_SERVERS[] = '127.0.0.1:11211';


開啟瀏覽器登入網頁 http://server_ip/memcache.php
[圖]




○ 加上 log 記錄

修改 /etc/sysconfig/memcached

將 OPTIONS="" 改成
OPTIONS="-vv >> /var/log/memcached.log 2>&1"


==========debug===================
在 memcache 3.0.6 版的 memcache.php 打開只看到「Cant connect to:v:a」
研究了半天,原來這網頁的PHP程式有bug....
搜尋 return values; 改成 return $values; 即可


如果是裝 php5.4 的話,session.save 要在這邊設定
$ vim /etc/httpd/conf.d/php.conf

php_value session.save_handler "memcache"
php_value session.save_path    "tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"


如果是用 php-fpm 的話,要把上面那個註解掉
改到這邊來設定:
$ vim /etc/php-fpm.d/www.conf

php_value[session.save_handler] = memcache
php_value[session.save_path] = "tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"


參考:
 


--
※ 作者: Knuckles 時間: 2012-02-07 05:26:56
※ 編輯: Knuckles 時間: 2017-02-19 14:15:28
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 1168 
※ 文章分類: Linode CentOS 架站筆記
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇