我很难理解我的错误在哪里。我查看了各种答案并尝试了补救措施,却发现他们的解决方案并没有解决我的问题。我已经将所有内容剥离到非常基础的内容,看看我是否可以得到一个基本的 PHP index.php 来呈现它自己。
这是我试图实现的核心目标:
我有 docker-compose 建立 1 个网络,以及连接到该网络的 2 个服务。一个服务是PHP-FPM,另一个服务是nginx,为PHP-FPM提供服务。每次我站起来时,无论我如何配置它,我都会得到一个502 Bad Gateway,当我检查 nginx 容器日志时,我会得到[error] 29#29: *1 connect() failed (113: Host is unreachable) while connecting to upstream。
./docker-compose.yml
version: "3.7"
networks:
app:
driver: bridge
services:
php:
image: php:7.4-fpm
container_name: php
volumes:
- /home/admin/dev/test/php/www.conf:/usr/local/etc/php-fpm.d/www.conf
- /home/admin/dev/test/src/:/var/www/html
networks:
- app
nginx:
image: nginx:alpine
container_name: nginx
depends_on:
- php
ports:
- "80:80"
- "443:443"
volumes:
- /home/admin/dev/test/src/:/usr/share/nginx/html
- /home/admin/dev/test/nginx/conf.d/app.conf:/etc/nginx/conf.d/app.conf
networks:
- app
./php/www.conf -> /usr/local/etc/php-fpm.d/www.conf
[www]
user = www-data
group = www-data
listen = 0.0.0.0:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
./nginx/conf.d/app.conf -> /etc/nginx/conf.d/app.conf
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
我相信我只是对 PHP-FPM 有一个重大误解,但也许还有其他原因。
故障排除期间的更新 我的想法是我的整体环境(即 Fedora 32)搞砸了。Docker 不支持开箱即用的 Fedora 32(必须更改 /etc/yum.repos.d 中的存储库设置才能使其正常工作 - 必须使用 Fedora 31 的存储库)。所以我决定启动一个 Ubuntu 20.0.4 VM 并在那里进行测试。现在 PHP-FPM 和 Nginx 正在对话;我从 PHP-FPM 容器收到响应!然而,现在即使只有基本脚本,我也会收到 404 错误,但这更接近我需要的位置......现在修复 404。
拉丁的传说
蝴蝶不菲