顯示廣告
隱藏 ✕
看板 KnucklesNote
作者 Knuckles (站長 那克斯)
標題 [CentOS] PHP 使用 memcached 來存 session (CentOS 7)
時間 2017-02-19 Sun. 02:20:11


先安裝 memcached server

$ sudo yum install memcached

memcached 設定

$ sudo vim /etc/sysconfig/memcached
PORT="11211"
	
 
#要監聽的port
USER="memcached" #用哪個使用者來執行
MAXCONN="1024"
	
 
#最大連線數,改成 4096
CACHESIZE="64"
	
 
#要用多大的記憶體,單位 MB,改成 256
OPTIONS=""
	
 
#有其他選項時加在這邊

要限制只能由本機存取的話,將 OPTIONS 改為
OPTIONS="-l 127.0.0.1"

啟動
$ sudo systemctl start memcached

設定開機自動啟動
$ sudo systemctl enable memcached


安裝 PHP Extension php-pecl-memcache

$ sudo yum install php-pecl-memcache

修改 PHP 設定檔
$ sudo 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"


修改 Apache 設定檔

使用 mod_php 的話,修改 /etc/httpd/conf.d/php.ini
$ sudo vim /etc/httpd/conf.d/php.ini

php_value session.save_handler "files"
php_value session.save_path    "/var/lib/php/session"
改為
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 的話,修改 /etc/php-fpm.d/www.conf
$ sudo vim /etc/php-fpm.d/www.conf

php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
改為
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 的話,重啟 php-fpm
$ sudo systemctl restart php-fpm

重啟 Apache
$ sudo systemctl restart httpd

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


使用 memcache.php 觀察使用情況

https://pecl.php.net/package/memcache 下載 php-pecl-memcache 原始碼
裡面附有一個用來觀察memcache狀態的網頁 memcache.php
$ cd /usr/local/src/
$ sudo wget https://pecl.php.net/get/memcache-3.0.8.tgz
$ sudo tar -zxvf memcache-3.0.8.tgz
$ cp memcache-3.0.8/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
[圖]






--
※ 作者: Knuckles 時間: 2017-02-19 02:20:11
※ 編輯: Knuckles 時間: 2017-02-19 14:14:10
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 613 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇