看板 Knuckles_note
作者 標題 [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
![[圖]](http://puu.sh/2ISYi.png)
○ 加上 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
回列表(←)
分享