看板 KnucklesNote
作者 標題 [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"
USER="memcached" #用哪個使用者來執行
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
#要監聽的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
![[圖]](http://i.imgur.com/G9OSYuJ.png)
--
※ 作者: Knuckles 時間: 2017-02-19 02:20:11
※ 編輯: Knuckles 時間: 2017-02-19 14:14:10
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 614
回列表(←)
分享