Symfony 6.4部署至生产环境失败求助
排查Symfony 6.4生产环境部署故障步骤
优先查看生产环境日志
生产环境APP_DEBUG=0时,页面不会显示错误详情,必须查看日志文件定位问题。日志默认路径为var/log/prod.log,直接查看该文件的最新内容,里面会明确给出错误原因(比如类找不到、资源缺失、权限不足等)。检查前端资源是否正确构建
由于项目用到Stimulus控制器和Leaflet,生产环境必须完成前端资源的编译构建:- 确保构建环境安装了Node.js和npm/yarn
- 执行
npm install或yarn install安装前端依赖 - 执行生产环境构建命令:
npm run build或yarn build - 将构建好的
public/build/目录同步到生产服务器,该目录包含压缩后的JS/CSS资源,缺失会导致页面加载失败进而影响Symfony正常运行。
重新生成生产环境缓存
部署后必须手动清除并预热生产缓存,执行以下命令:php bin/console cache:clear --env=prod php bin/console cache:warmup --env=prod确保执行命令的用户与Web服务器用户(如www-data、apache)一致,避免缓存目录权限冲突。
验证var目录权限的完整性
除了var目录本身,需确保子目录(cache、log、sessions)的权限配置正确:- 给Web服务器用户赋予读写权限
- 可使用setfacl命令设置递归权限:
setfacl -R -m u:www-data:rwX var/ setfacl -dR -m u:www-data:rwX var/
也可执行
php bin/console about,查看Symfony官方提示的权限配置方案。检查Composer依赖的完整性
重新执行生产环境依赖安装,确保无遗漏:composer install --no-dev --optimize-autoloader --classmap-authoritative--classmap-authoritative会进一步优化自动加载逻辑,避免运行时文件查找错误。验证生产环境配置文件
确认是否存在.env.prod文件,其中的数据库连接、APP_SECRET等配置需准确无误——生产环境会优先读取.env.prod的配置。若未创建.env.prod,则需确保.env中的生产环境配置(如数据库地址、端口、账号密码)无错误。
内容的提问来源于stack exchange,提问作者Francesco Vibert
相关产品推荐
相关产品推荐

