@ENigma371

Docker-compose NGINX-php-fpm-postgres где допустил ошибку?

Подскажите плз что у меня не доделано, так же есть проблема, при открытии localhost открывается страничка nginx а должна открываться страничка с информацией php
Nginx. Порт 80 должен быть проброшен наружу. Конфигурационный файл должен быть проброшен снаружи. Web директория должна быть проброшена снаружи.
PHP-FPM. Web директория должна быть проброшена снаружи. Конфигурационные файлы должны быть проброшены снаружи. Дополнительно должны быть установлены php-memcached, php-ldap, php-amqp.
Memcached.
Postgres. Порт 5432 должен быть проброшен наружу. Конфигурационный файл должен быть проброшен снаружи. Директория базы данных должна быть проброшена снаружи.
Adminer. Порт 8080 должен быть проброшен наружу.

Проверка работы стека:
Открыть в браузере адрес (на пример, localhost/). Должна отобразиться страница с информацией о php. Для этого в web директории должен находиться файл index.php с содержимым <?php phpinfo(); ?>. На странице убеждаемся, что установлены и подключены указанные модули: php-memcached, php-ldap, php-amqp.
Открыть в браузере адрес (на пример, localhost:8080/). Должны попасть в интерфейс Adminer. Ввести учетные данные для подключения к базе данных. Должны успешно подключиться к базе данных.
nginx.conf
server {
    listen 127.0.0.1:80;
    server_name localhost;
    index index.php;
    root /var/www/deck/fpm;
    error_log /var/log/nginx/error.log;
    
    location / {
       try_files $uri /$uri /index.php?query_string;
    }
    
    location ~* \.php$ {
       try_files $uri $uri/ /index.php last;
       fastcgi_split_path_info  (.+?\.php)(/.*)$;
       fastcgi_pass php:9000;
       fastcgi_index index.php;
       include fastcgi_params;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_param PATH_INFO $fastcgi_path_info;
       }
    location ~* .php/ { rewrite  (.*.php)/ $1 last; }
    }

Dockerfile
FROM php:7.4-fpm
RUN apt-get update \
  && apt-get install -y \
  && apt-get install -y memcached \
  && apt-get install -y libldap2-dev \
     apt-utils \
     curl \
     libpq-dev \
     && docker-php-ext-install -j$(nproc) pgsql \
     && docker-php-ext-install -j$(nproc) pdo_pgsql \

docker-compose
version: '3.8'
services:
  nginx:
    image: nginx:latest
    ports:
      - 80:80
    links:
      - fpm
    volumes:
      - ./www:/var/www/fpm  
  fpm: 
    build:
      context: .
      dockerfile: fpm/Dockerfile
    volumes:
      - ./www:/var/www/fpm
    links:
      - postgres

  postgres:
    image: postgres
    ports:
      - 5432:5432
    environment:
      - POSTGRES_DB=root
      - POSTGRES_USER=root
      - POSTGRES_PASSWORD=root
 
  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 1
@sl0
Навскидку.
  1. В конфиге nginx:
    root /var/www/deck/fpm;
    В docker-compose:
    volumes:
    - ./www:/var/www/fpm

  2. В конфиге nginx:
    fastcgi_pass php:9000;
    В docker-compose:
    php вообще нет, есть fpm
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы