PHP session 儲存方式 file 改為 Redis

wubuze發表於2019-12-21

原因 Linux (deepin)配置php開發環境

  • 因為使用Linux 開發,需要把php-fpm 執行user 改為系統的登入使用者(原使用者是www),我安裝的是oneinstack 的php 一鍵安裝腳步(講道理,這個腳步更適合安裝在生產環境吧)。
    修改php-fpm.conf

    [www]
    listen = /dev/shm/php-cgi.sock
    listen.backlog = -1
    listen.allowed_clients = 127.0.0.1
    listen.owner = www
    listen.group = www
    listen.mode = 0666
    user = www  (改為 你的使用者名稱)
    group = www (改為 你的使用者組)
  • 改完上面的,網站已經可以開啟了。但是問題來了,phpMyAdmin 頁面無法登入。因為使用了session(cookies)儲存登入狀態,session 預設儲存在file 檔案中,/var/lib/php/session/ 大概是這個檔案,我也不知道是哪個檔案,沒找到,不管了。總之是這個檔案,當前的使用者沒有許可權咯。

  • 一個解決方法就是, 讓你修改的使用者擁有/var/lib/php/session的讀寫許可權,chown 或者chmod 反正讓php-fpm的應用使用者有許可權訪問就可以了

  • 另一個方法, 把session 存入redis 找到php.ini ,改一下

    
    #session.save_handler = files
    session.save_handler = redis
    session.save_path="tcp://127.0.0.1:6379"
    session.auto_start=1
  • 最後當然要重啟下php-fpm

相關文章