Laravel 11+Backpack部署InfinityFree后419页面过期问题求助
解决Laravel 11 + Backpack在InfinityFree主机上的419 Page Expired错误
适配InfinityFree环境调整会话存储
InfinityFree免费主机的文件系统权限限制可能导致文件驱动的会话存储失效,建议修改会话驱动:- 打开
.env文件,将SESSION_DRIVER改为cookie(无需额外配置,适合免费主机),或database(需先执行php artisan session:table生成会话表并完成迁移) - 确保
SESSION_DOMAIN设置为你的实际域名(如SESSION_DOMAIN=your-site.com),或留空让系统自动识别
- 打开
规范CSRF令牌配置(禁用是下策,优先修复)
- 确认
.env中的APP_URL为你的完整域名(如APP_URL=https://your-site.com),Laravel依赖此生成正确的CSRF令牌域名绑定 - 清除配置缓存:执行
php artisan config:clear,若无法在主机终端运行,手动删除bootstrap/cache/config.php文件 - 验证Backpack表单是否自动包含CSRF令牌(Backpack组件默认已处理,但若自定义页面需确保加入
@csrf指令)
- 确认
规避InfinityFree的缓存干扰
InfinityFree默认集成Cloudflare缓存,可能缓存后台页面导致令牌过期:- 将后台路由(如
/admin/*)添加到Cloudflare的缓存排除规则中 - 浏览器强制刷新页面(Ctrl+F5),清除本地缓存后重新登录测试
- 将后台路由(如
修复目录权限
- 将
storage和bootstrap/cache目录权限设置为755,目录内文件设为644 - 临时测试可将
storage/framework/sessions权限改为777,验证会话存储是否正常,之后改回755保障安全
- 将
调整会话生命周期
- 在
.env中设置SESSION_LIFETIME=120(单位:分钟),避免会话过早过期 - 确认
APP_KEY未被篡改,此密钥用于会话和CSRF令牌的加密,若丢失需通过php artisan key:generate重新生成(注意会导致现有会话失效)
- 在
内容的提问来源于stack exchange,提问作者Nabil Alsaidali
相关产品推荐
相关产品推荐

