docker - 如何更改 php-fpm 默认端口?
问题描述
我正在使用php-fpm
which 在端口上默认运行9000
。问题是我有其他基于 的 docker 容器php-fpm
,所以我需要将默认端口更改为另一个,以免混淆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}
如您所见,我9001
也在docker-compose
文件中公开了端口。
文件夹中default.conf
可用的conf.d
文件包含以下内容:
upstream php-upstream {
server php-fpm:9001;
}
问题是由于某种原因,当我加载我的网站时,我收到错误 500。所以这意味着流没有发送任何信号。如果我更改为端口9000
一切正常,但流是错误的,因为它是另一个应用程序的内容。
如何正确更改默认端口?
解决方案
我认为问题不在于 sed 命令本身,它与您提到的错误文件有关。
/usr/local/etc/php-fpm.d/zz-docker.conf
这是您尝试更改其中端口的文件,但在您的 docker-compose 文件中,您正在映射其他内容
./docker/php-fpm/config/www.conf:/usr/local/etc/php-fpm.d/www.conf
推荐阅读
- go - Cancel goroutines on first error using errgroup
- python - 使用 OpenCV 退出代码 -1073741819 (0xC0000005)
- swift - SwiftUI - 隐藏 LazyVGrid 会导致内存泄漏
- html - 为什么 SVG 没有
- c++ - How to sample two textures onto the same object?
- mysql - Mysql - 总和记录单词喜欢的地方
- javascript - 客户端浏览器关闭时如何从网站发送通知?
- ruby-on-rails - 如何在仅 API 的 Rails 中保存嵌套的多对多关系?
- azure-devops - 有什么方法可以在 Azure Build Pipeline 运行期间缓存签名的二进制文件并拉取它们?
- node.js - 多个 devServer 代理和多个端口