[精讚] [會員登入]
1933

[PHP7] 利用Memcached 儲存 Session

Memcached+ PHP7,利用Memcached 儲存 Session。

分享此文連結 //n.sfs.tw/11138

分享連結 [PHP7] 利用Memcached 儲存 Session@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-23 08:05:11 最後編修
2017-05-25 01:38:36 By 張○○
 

自動目錄

PHP7安裝memcached,提升網頁速度

OS

CentOS Linux release 7.3.1611 (Core)

PHP 7.0.18 (cli) (built: Apr 15 2017 07:09:11) ( NTS )

安裝

# yum install epel-release

# yum install memcached

# yum install php70w-pecl-memcached

完裝完畢後會多一個檔案:

/etc/php.d/z-memcached.ini

設定

vi /etc/sysconfig/memcached

PORT="11211"
USER="memcached"
MAXCONN="3000"
CACHESIZE="200"
OPTIONS="-l 127.0.0.1"

第3行最大連線數;

第4行記憶體大小,單位是mb

第5行限定監聽介面,若留空就全部介面

# vi /etc/php.ini

session.save_handler = memcached
session.save_path = "127.0.0.1:11211"

啟動

# systemctl start memcached

# systemctl restart httpd

檢查php模組
# php -m | grep memcached
memcached <一片空白代表你沒裝好>

查看Memcached狀態

物件清單
# memcached-tool 127.0.0.1:11211

# memcached-tool 127.0.0.1:11211 display

統計資料
# memcached-tool 127.0.0.1:11211 stats

物件內容
# memcached-tool 127.0.0.1:11211 dump

其他

1. 設定開機啟動

systemctl enable memcached

2. PHP的session原本存在 /var/lib/php/session/ 改成 memcached後就不會再存於此

3. 重啟 apache不會清除資料,但重啟memcached會。

4. Codeigniter3 在PHP7使用memcached會遇到問題,目前尚無法解決(只能關掉錯誤)

$ vi application/config/config.php

$config['sess_driver'] = 'memcached';  //files
$config['sess_save_path'] = '127.0.0.1:11211'; //NULL;

A PHP Error was encountered

Severity: Warning

Message: Memcached::touch(): using touch command with binary protocol is not recommended with libmemcached versions below 1.0.18, please use ascii protocol or upgrade libmemcached

Filename: drivers/Session_memcached_driver.php

參考資料

[1] https://ssorc.tw/5965

[2] https://www.cyberciti.biz/faq/rhel-fedora-linux-install-memcached-caching-system-rpm/

[3] http://php.net/manual/en/memcached.sessions.php#99646

[4] https://blog.longwin.com.tw/2010/04/use-memcached-store-php-session-2010/

 

 

END

你可能感興趣的文章

[PHP>7.3] switch中的 Did you mean to use "continue 2"? 除錯 這近更新 PHP到7.3版以後,出現這樣的錯:targeting switch is equivalent to "break". Did you mean to use "continue 2"?解決方法

[PHP] 檢查IP是否在某個網段內 mtachcidr 要檢查IP是否在某個網段內,要寫幾行?10行?5行? 不用,只要2行。以下是我寫的 code /** * matchCI

[Centos 6& 7] 安裝php-geoip php-geoip是PHP由domain、ip查詢城市國家資料非常強的函式

[PHP+ci4] codeignitor4+ smarty5 這篇整合 php 的framework codeignitor4 + smarty5。

使用strcmp來判斷日期是否介於某日期之間 要比較現在日期是否在兩個日期之間,使用字串比對的方法

[PHP] CodeIgniter 3+pure+smarty安裝及環境設置1/2 PHP framework CodeIgniter 3+ pure CSS +smarty Template Engine的整合

隨機好文

為什麼要買長達二十年的保單? 為什麼要買長達二十年的保單?找一個可以說服我買二十年保單的理由。

[NetBeans] 使用git複製別人的專案 NetBeans使用git複製別人的專案及版本控制

維修海棉拖把頭 這類型的海棉拖把很好用,可是這近發現海棉頭越來越不耐用,也許是錯覺,以往都能用個三四個月,現在二個月就差不多掉下來。 這

[AS3] 物件加上超連結的方法 物件加上超連結,可讓使用者點擊的方法

[CKeditor4] 修改特殊字元 CKeditor4 中設定自己想用的特殊字元