Laravel 的 Session 機制是自己實作的,故與原生PHP的不同,在 Laravel 原始碼中甚至沒有 session_start(),所以也無法使用 $_SESSION,而 Laravel 的 Session 在使用上也很方便,更提供了好用的 helper session(),文件看一下就可以上手了。
Laravel Session 預設是檔案形式,放在 storage/framework/sessions/ 下,但這樣對於多台主機要共用 Session 比較不方便,所以可以改成放在 Redis 主機上,設定方式如下:
Step 1. 安裝 Redis 主機
首先你需要先有一台提供 Redis 服務的主機,架設方法可以參考 這篇,假設是 172.31.0.99:6379。
Step 2. 安裝 Laravel 的 Predis 套件
在 Web 主機上的 laravel 根目錄,用 composer 安裝 predis/predis
#composer require predis/predis
Step 3. 修改 config/database.php 中的 redis 設定值
在 redis 範圍內,增加一個名稱為 session 的連接點,內容可以複製 default,如果要區隔 redis 的 database,可以把 default 改成 'database' => 0, ,然後 session 改成 'database' => 2, ,目的是下指令清除 redis 快取時,session 不會一併被清掉。
'redis' => ]
#略
'session' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 2,
],
],
Step 4. 修改 .env 設定值
修改如下
SESSION_DRIVER=redis
SESSION_CONNECTION=session #設定 Session 要用 Step 3. 我們新增的 session 接點
REDIS_HOST=172.31.0.99
REDIS_PORT=6379
完成。
No comments:
Post a Comment