PHP session 保存方式 file 改为 Redis

原因 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

本作品采用《CC 协议》,转载必须注明作者和本文链接
wubuze
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!