Назад | Перейти на главную страницу

Как перенаправить запрос из одного контейнера в другой при вызове файлов .php

Я работаю в стеке LAMP, используя Docker и Docker-Compose, и я застрял, так как не могу выполнять файлы 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 репозиторий.