nextcloud文档中关于nginx的配置:https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html
原先环境为apache+php-fpm,现在将apache替换为nginx。
nginx和php运行用户已经修改为 www 用户(原先为apache)。
问题现象:
登录nextcloud又跳转回登录页面。
php-fpm是使用了remi源安装
网上说可能是session目录权限问题,根据此线索排查。
开始修改了php.ini
[root@localhost ~]# cat /etc/opt/remi/php73/php.ini | grep session.save_path | grep -Ev "^;|^$" session.save_path = "/var/lib/php/session"
初始值是/tmp 目录,以为www用户没有权限写入,就改了个目录并赋予www用户权限,还是要重复登录。
查看www.conf配置文件发现这里的参数是另一个目录,这里的优先级高于php.ini,所以上面的改动是无效的。
[root@localhost ~]# cat /etc/opt/remi/php73/php-fpm.d/www.conf | grep session php_value[session.save_handler] = files php_value[session.save_path] = /var/opt/remi/php73/lib/php/session
将 /var/opt/remi/php73/lib/php/session 此目录属主属组改为www即可。或者指定其他目录并设置权限。
问题原因就是php运行用户www没有对此目录写入权限,就无法创建服务端的session文件。
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/5257.html