簡體   English   中英

docker-compose、caddy 和 php-fpm 的基本配置

[英]base config for docker-compose, caddy and php-fpm

我正在嘗試在 docker-compose 上使用 caddy 和 php-fpm 構建基本配置。問題是,當我嘗試訪問我的index.php文件時,出現“404 文件未找到”。 這是我的配置。

docker-compose.yml

version: "3.8"

services:
  caddy:
    image: caddy:alpine
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - $PWD/Caddyfile:/etc/caddy/Caddyfile
      - $PWD/www:/srv/www
      - $PWD/caddy/data:/data
      - $PWD/caddy/config:/config
      - $PWD/caddy/log:/var/log
    depends_on:
      - app
  app:
    image: php:fpm-alpine
    ports:
      - "9000:9000"
    volumes:
      - "$PWD/www:/var/www/html"

Caddy文件

localhost:80 {
    root * /srv/www
    php_fastcgi app:9000
    file_server
}

最后我有一個包含index.phptest.html - http://localhost/test.html 的www文件夾,但是 http://localhost/index.php 給了我一個 404。

我究竟做錯了什么?

編輯:這是我嘗試過的:

  • 我檢查了我是否可以從一個容器 ping 到另一個容器
  • 9000 端口在 php 容器上有效打開

看起來 php 文件沒有安裝在 php 容器內的正確位置,但/var/www/html是 WorkingDir。

我不知道旁邊的 go 在哪里可以解決這個問題。

終於,我找到了答案!

php-fpm 需要文件的絕對路徑,因此您要么必須在兩個容器中使用相同的路徑,要么在 php_fastcgi 塊中添加一個root指令。

localhost:80 {
    root * /srv/www
    encode gzip
    php_fastcgi php:9000 {
        root /var/www/html
    }
    file_server
    log
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM