Ошибка - nginx: [emerg] директива server не разрешена здесь в /etc/nginx/nginx.conf:1 - PullRequest
0 голосов
/ 21 января 2020

Я создал файл docker -compose.yml с Nginx, PHP -7.4-fpm, PhpMyAdmin и MariaDB, исполнение моего docker -compose.yml успешно развернуто, но Nginx в контейнере есть ошибка:

nginx: директива [emerg] здесь недопустима в /etc/nginx/nginx.conf:1

.docker / docker -compose.yml:

version: '3'

services:
    nginx:
        image: nginx:alpine
        volumes:
            - ../:/code
            - ./config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
            - ./logs:/var/log/nginx
        ports:
            - "80:80"
        depends_on:
            - php

    php:
        build:
            context: './config/php/'
            args:
                PHP_VERSION: ${PHP_VERSION}
        depends_on:
            - mariadb
        volumes:
            - ../:/code
            - ./config/php/conf.d/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini
        ports:
            - "9000:9000"

    mariadb:
        image: mariadb:${MARIADB_VERSION}
        restart: always
        ports:
            - "3306:3306"
        environment:
            - MYSQL_DATABASE=${MARIADB_DATABASE}
            - MYSQL_USER=${MARIADB_USER}
            - MYSQL_PASSWORD=${MARIADB_PASSWORD}
            - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
        volumes:
            - ./database:/var/lib/mysql

    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        ports:
            - "${PHPMYADMIN_HTTP_PORT}:80"
        depends_on:
            - mariadb
        environment:
            - MYSQL_USER=${MARIADB_DATABASE}
            - MYSQL_PASSWORD=${MARIADB_PASSWORD}
            - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}

.docker / config / nginx / nginx .conf:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    server_name monsite.local;
    root /code;

    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    error_log /var/log/nginx/project_error.log;
    access_log /var/log/nginx/project_access.log;
}

Я не понимаю, почему У меня есть эта ошибка, можете ли вы помочь мне, пожалуйста?

Заранее спасибо

1 Ответ

0 голосов
/ 22 января 2020

В вашем контексте вам нужно обернуть сервер в http блок. Или перенесите файл конфигурации не путем замены файла конфигурации по умолчанию, а вместо замены конфигурации сервера по умолчанию, расположенной в /etc/nginx/conf.d/, чтобы вы могли использовать что-то вроде

        - ./nginx.conf:/etc/nginx/conf.d/default.conf

для томов для nginx. Это перезапишет конфигурацию вашего сервера по умолчанию. Вы также можете скопировать его в папку с поддержкой сайтов, если вы планируете использовать несколько файлов конфигурации.

Или вы можете изменить конфигурацию nginx, начав с переноса ее на http block

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...