调用.php文件时如何将请求从一个容器重定向到另一个容器

调用.php文件时如何将请求从一个容器重定向到另一个容器

我正在使用 Docker 和 Docker-Compose 在 LAMP 堆栈中工作,但由于无法执行 PHP 文件而陷入困境,这意味着每次尝试时http://localhost/index.php都会出现以下 403 消息:

Forbidden
You don't have permission to access /index.php on this server.

目前我有两个服务在不同的容器中运行,docker-compose.yml如下所示:

version: '2'
services:
  php-fpm:
    container_name: "php-fpm"
    build: ../docker-php-fpm
    volumes:
      - ~/dev:/data/www
  httpd:
    container_name: "httpd"
    build: ../docker-httpd
    ports:
      - 8080:80
    volumes_from:
      - php-fpm
    links:
      - php-fpm

您可能会注意到 PHP-FPM 在一个容器中运行,Apache (httpd) 在另一个容器中运行。容器及其上的服务均已启动并运行。

我在容器上有一个 VirtualHost 文件httpd,其内容如下:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /data/www
    DirectoryIndex index.php

    <Directory /data/www>
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

    <FilesMatch \.php$>
        SetHandler "proxy:fcgi://php-fpm:9000"
    </FilesMatch>

    ErrorLog /dev/stderr
    CustomLog /dev/stdout combined
</VirtualHost>

此时我不确定问题出在虚拟主机设置上还是容器httpd无法将.php文件重定向到php-fpm:9000

无论如何,我能得到一些帮助吗?如果你想仔细看看这里httpd存储库,这里是php-fpm存储库。

相关内容