【发布时间】:2025-11-25 17:40:01
【问题描述】:
我正在使用php-fpm,它默认在端口9000 上运行。问题是我有其他基于php-fpm的docker容器,所以我需要将默认端口更改为另一个,以免混淆nginx。
这是我的Dockerfile:
FROM php:8.0.2-fpm-alpine
RUN sed -i 's/9000/9001/' /usr/local/etc/php-fpm.d/zz-docker.conf
WORKDIR /var/www/html
CMD ["php-fpm"]
EXPOSE 9001
我尝试使用sed 命令将端口9000 替换为9001。
在我的docker-compose 文件中,我有这样的配置:
version: '3.9'
services:
php-fpm:
container_name: app
restart: always
build:
context: .
dockerfile: ./docker/php-fpm/Dockerfile
ports:
- "9001:9000"
volumes:
- ./src:/var/www/html
- ./docker/php-fpm/config/www.conf:/usr/local/etc/php-fpm.d/www.conf
- ./src/public:/app/public
- ./src/writable:/app/writable
nginx:
image: nginx:stable-alpine
container_name: nginx
restart: always
volumes:
- ./src:/var/www/html
- ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
- ./docker/nginx/sites/:/etc/nginx/sites-available
- ./docker/nginx/conf.d/:/etc/nginx/conf.d
depends_on:
- php-fpm
environment:
VIRTUAL_HOST: ${HOST}
LETSENCRYPT_HOST: ${HOST}
LETSENCRYPT_EMAIL: ${EMAIL}
如您所见,我还在docker-compose 文件中公开了端口9001。
conf.d 文件夹中的文件default.conf 包含以下内容:
upstream php-upstream {
server php-fpm:9001;
}
问题是由于某种原因,当我加载我的网站时,我收到错误 500。所以这意味着流不发送任何信号。如果我更改为端口9000 一切正常,但流是错误的,因为它是另一个应用程序的内容。
如何正确更改默认端口?
【问题讨论】:
-
这个问题有什么解决办法吗?
-
@Iman 不幸的是,在这种情况下,最好的解决方案是为每个
php-fpm使用不同的名称
标签: docker nginx docker-compose dockerfile fpm