Laravel 5.6部署服务器后登录/注册提示页面过期问题求助
解决Laravel 5.6部署后登录/注册过期提示及Symfony错误的方案
嘿,我来帮你搞定这个部署后的问题!先拆解一下你遇到的两个核心问题:
一、登录/注册时提示“页面因长时间未操作已过期”
这个提示本质上是CSRF令牌验证失败,结合你的Linux+Apache环境,给你几个排查和解决步骤:
- 先检查
.env文件里的APP_URL:必须设置成服务器上的实际域名(比如https://your-site.com),不能用本地的localhost。Laravel生成CSRF令牌时会依赖这个URL,不一致就会导致令牌不匹配。 - 清除服务器端的缓存:登录服务器执行这几条命令,把配置、路由和缓存都清一遍:
php artisan config:clear php artisan route:clear php artisan cache:clear - 确认存储目录权限:Laravel需要
storage/framework/sessions目录有写入权限,执行下面的命令赋权(如果Apache运行用户不是www-data,换成你服务器对应的用户,比如apache):chmod -R 755 storage/ chown -R www-data:www-data storage/ - 检查表单里的CSRF字段:确保登录、注册表单里有
@csrf指令(或者手动添加<input type="hidden" name="_token" value="{{ csrf_token() }}">),没有这个字段一定会触发CSRF验证失败。
二、删除views文件夹后出现Symfony错误
你删的那个vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views文件夹是Laravel自带的异常视图模板,删掉后系统找不到默认的错误页面,就会抛出Symfony的异常。解决方法很简单:
- 如果本地有备份,直接把本地的这个
views文件夹上传到服务器对应位置; - 要是没有备份,就重新安装依赖(执行前可以先备份
vendor目录,防止意外):composer install --no-dev
最后提醒一句:千万别随便删vendor目录里的文件,这些都是框架的核心依赖文件,删错很容易搞崩整个应用。
内容的提问来源于stack exchange,提问作者Amritesh
相关产品推荐
相关产品推荐

