Laradock部署Lumen应用出现Nginx 404错误求助
解决Laradock部署Lumen应用出现Nginx 404的问题
以下是逐步排查和解决的方案:
1. 验证容器内文件映射是否正确
Laradock中APP_CODE_PATH_HOST=../会将主机的MicroservicesPHP目录映射到容器内的/var/www目录,因此主机的blog目录应对应容器内的/var/www/blog。执行以下命令验证:
# 进入nginx容器 docker-compose exec nginx bash # 检查容器内public目录是否存在index.php ls -l /var/www/blog/public
如果文件不存在,确认主机MicroservicesPHP/blog/public目录是否存在,同时检查Laradock的.env文件中APP_CODE_PATH_HOST是否正确设置为../,确保docker-compose的卷映射生效。
2. 检查Nginx根目录权限
即使文件存在,Nginx进程可能因权限不足无法读取。在容器内执行以下命令修复权限:
# 设置目录所有者为Nginx运行用户www-data chown -R www-data:www-data /var/www/blog/public # 设置目录权限为755(读/执行权限开放) chmod -R 755 /var/www/blog/public
3. 确认hosts映射生效
在Windows终端执行以下命令验证:
ping blog.test
若返回IP不是127.0.0.2,需确认C:\Windows\System32\drivers\etc\hosts文件已用管理员权限编辑并保存,之后刷新DNS缓存:
ipconfig /flushdns
4. 查看Nginx错误日志定位具体问题
容器内的错误日志已配置为/var/log/nginx/blog_error.log,执行以下命令查看日志:
docker-compose exec nginx cat /var/log/nginx/blog_error.log
日志会明确提示错误原因(如文件不存在、权限不足、PHP解析失败等),针对性解决。
5. 确保Lumen应用的public目录结构正确
确认主机MicroservicesPHP/blog/public目录下存在index.php文件,这是Lumen应用的入口文件。若为新创建的应用,需确认通过官方命令正确生成:
composer create-project laravel/lumen blog
6. 重启Nginx容器加载最新配置
修改Nginx配置后,需重启容器确保配置生效:
docker-compose restart nginx
内容的提问来源于stack exchange,提问作者Gianmarco Gagliardi
相关产品推荐
相关产品推荐

