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

Podman部署Symfony时Nginx与php-fpm通信连接重置问题求助

Podman部署Nginx+PHP-FPM运行Symfony项目连接重置问题排查

核心问题原因

  • 配置挂载路径错误:启动Nginx容器时,你将~/samus/bare-data/nginx挂载到了容器的/etc/nginx/conf.d目录,但实际有效的Nginx server配置存放在~/samus/bare-data/nginx/podman-nginx-confs子目录下,导致Nginx未加载任何有效站点配置,没有对80端口的监听规则,访问时直接触发连接重置。
  • 其他关联问题:
    1. PHP配置挂载逻辑不规范:若本地~/samus/bare-data/php为目录,直接挂载为镜像内/usr/local/etc/php/php.ini文件会导致挂载异常,影响PHP服务配置加载。
    2. Symfony项目根路径配置错误:你当前Nginx配置的root为/var/www/html,但Symfony项目的入口文件存放在项目根目录的public子目录下,后续运行Symfony时会出现404问题。
    3. 容器启动参数不合理:使用-ti交互式参数启动容器,若退出启动终端会导致容器停止,后台运行应使用-d参数。
    4. 不需要对外映射9000端口:同一Pod内的容器共享网络命名空间,Nginx可直接通过localhost:9000访问PHP-FPM,对外暴露9000端口存在安全风险。

修复步骤

  1. 清理现有异常Pod
podman pod rm -f webservice
  1. 重新创建Pod,无需映射9000端口
podman pod create --name webservice -p 8080:80
  1. 启动PHP-FPM容器,修正配置挂载规则(若本地php为单配置文件,可直接挂载到/usr/local/etc/php/conf.d/下的自定义配置文件,避免覆盖默认配置)
podman run -d \
--name php7 \
--pod webservice \
--volume ~/samus/bare-data/php:/usr/local/etc/php/conf.d/custom.ini:ro \
--volume ~/samus/bare-data/www:/var/www/html:rw \
docker.io/library/php:7.4-fpm-alpine
  1. 启动Nginx容器,修正配置挂载路径,改为实际存放server配置的子目录
podman run -d \
--name nginx \
--pod webservice \
--volume ~/samus/bare-data/nginx/podman-nginx-confs:/etc/nginx/conf.d:ro \
--volume ~/samus/bare-data/www:/var/www/html:ro \
docker.io/library/nginx:alpine
  1. 修正Nginx配置适配Symfony项目,将root配置修改为:
root /var/www/html/public;
  1. 验证Nginx配置有效性,重载配置
# 验证配置是否正确
podman exec nginx nginx -t
# 重载配置
podman exec nginx nginx -s reload

验证方法

在~/samus/bare-data/www/public目录下新建info.php文件,内容为<?php phpinfo(); ?>,访问127.0.0.1:8080/info.php即可查看PHP信息,确认服务正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:06:04