使用LaravelShift升级Laravel从5.8到6.2后出现Sessions权限报错如何解决
解决方案
该错误是Web服务器运行用户无storage目录读写权限导致,你之前执行的缓存清除命令不涉及权限修改,因此无法解决问题。可按以下步骤操作修复:
- 第一步:先查询当前环境Web服务的运行用户
执行命令:ps aux | grep -E '(apache|httpd|nginx)' | grep -v root | head -n1 | awk '{print $1}'
通常输出为www-data(Debian/Ubuntu环境Apache/Nginx默认)、apache(CentOS Apache默认)、nginx(CentOS Nginx默认)三类。 - 第二步:递归修改storage和bootstrap/cache目录的所有者为上一步查到的Web用户
示例(假设用户为www-data):chown -R www-data:www-data /var/www/app.buyonecollective.com/public_html/storage /var/www/app.buyonecollective.com/public_html/bootstrap/cache - 第三步:配置目录读写权限
执行命令:chmod -R 775 /var/www/app.buyonecollective.com/public_html/storage /var/www/app.buyonecollective.com/public_html/bootstrap/cache
若为无权限修改所有者的共享主机环境,可临时执行chmod -R 777 对应目录路径测试验证,生产环境不建议长期使用777权限。 - 第四步:SELinux环境额外配置(CentOS/RHEL等系统默认开启SELinux时需执行)
执行命令:chcon -R -t httpd_sys_rw_content_t /var/www/app.buyonecollective.com/public_html/storage /var/www/app.buyonecollective.com/public_html/bootstrap/cache
操作完成后刷新页面即可验证修复效果,无需额外执行缓存清除命令。
内容的提问来源于stack exchange,提问作者Hadi Rajani
相关产品推荐
相关产品推荐

