You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Sanctum生产环境服务器无法正常工作求助

Laravel Sanctum生产环境异常排查与修复方案

环境配置检查

  • 确认.env文件中APP_URL为生产服务器的正确域名,必须带完整协议(如https://your-production-domain.com)
  • 检查SESSION_DOMAIN设置,生产环境需设为顶级域名格式(如.your-domain.com),保证跨域Cookie正常生效
  • 确保SANCTUM_STATEFUL_DOMAINS包含生产域名,格式示例:SANCTUM_STATEFUL_DOMAINS=your-production-domain.com,www.your-production-domain.com

文件权限与配置验证

  • 修复storage和bootstrap/cache目录权限,确保服务器进程(如www-data、nginx)拥有读写权限:
    chmod -R 755 storage bootstrap/cache
    chown -R www-data:www-data storage bootstrap/cache
    
  • 确认config/sanctum.php配置文件已完整部署,无本地修改项遗漏

路由与中间件检查

  • 验证routes/api.php中是否正确使用auth:sanctum中间件,示例:
    Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
        return $request->user();
    });
    
  • 检查app/Http/Kernel.php的api中间件组,确认已注册Sanctum中间件:\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class

Session与Cookie配置

  • 生产环境建议将SESSION_DRIVER设为redis或database,避免使用file驱动(易引发权限问题)
  • 若使用HTTPS,需将SESSION_SECURE_COOKIE设为true,SESSION_SAME_SITE根据跨域需求设为lax或none

数据库与缓存操作

  • 强制执行数据库迁移,确保Sanctum所需表已创建:
    php artisan migrate --force
    
  • 清理并重新生成缓存:
    php artisan cache:clear
    php artisan config:clear
    php artisan route:cache
    
  • 若使用Redis,验证.env中REDIS_HOST、REDIS_PASSWORD等连接配置正确

日志与版本排查

  • 查看storage/logs/laravel.log日志文件,定位具体错误(如Token验证失败、Cookie读取异常等)
  • 确认生产服务器PHP版本与本地/测试环境一致(如Laravel 10要求PHP 8.1+)
  • 检查config/cors.php配置,确保allowed_origins包含生产前端域名,supports_credentials设为true

内容的提问来源于stack exchange,提问作者Amit Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 13:20:59