Docker中用FrankenPHP运行PHP脚本无法访问localhost:8080求助
问题排查与修复
你的配置存在两个关键问题,直接修正后即可解决访问异常:
1. FrankenPHP启动参数误用
你在CMD中用-r指定网站根目录,但这个参数实际是用来设置PHP运行时配置项的(比如-r memory_limit=256M),指定网站根目录的正确参数是--root。
2. 服务监听地址受限
默认情况下,frankenphp php-server仅监听容器内部的127.0.0.1,外部请求无法穿透到容器内,必须添加--host 0.0.0.0让服务监听容器的所有网卡地址。
修正后的Dockerfile CMD配置
将原Dockerfile中的CMD替换为:
CMD ["frankenphp", "php-server", "--root", "/var/www/public_html", "--host", "0.0.0.0", "--port", "80"]
额外排查步骤(若修正后仍异常)
- 查看容器日志,确认服务启动状态:
docker logs therapy_app - 进入容器内部,测试服务是否正常响应:
docker exec -it therapy_app curl localhost:80
内容的提问来源于stack exchange,提问作者kyty
相关产品推荐
相关产品推荐

