首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在/etc/nginx/nginx.conf:1中不允许使用Error - nginx:[emerg] "server“指令。

在/etc/nginx/nginx.conf:1中不允许使用Error - nginx:[emerg] "server“指令。
EN

Stack Overflow用户
提问于 2020-01-21 20:11:12
回答 1查看 1.8K关注 0票数 0

我用Nginx、PHP-7.4-fpm、PhpMyAdmin和MariaDB创建了一个docker-come.yml文件,我的docker-compose.yml的执行已经成功部署,但是Nginx容器有一个错误:

nginx: emerg "server“指令在/etc/nginx/nginx.conf:1中是不允许的

.docker/docker-compose.yml:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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;
}

我不明白为什么我有这个错误,你能帮我一下吗?

提前谢谢你

EN

回答 1

Stack Overflow用户

发布于 2020-01-21 21:03:30

在上下文中,您需要将服务器包装在http块中。或者不是通过替换默认配置文件来移动配置文件,而是替换位于/etc/nginx/ config .d/中的默认服务器配置,这样就可以使用以下内容

代码语言:javascript
复制
        - ./nginx.conf:/etc/nginx/conf.d/default.conf

关于nginx的卷。它将重写默认的服务器配置。如果计划使用多个配置文件,也可以将其复制到启用站点的文件夹中。

或者您可以修改nginx配置,方法是从用http块包装它开始。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59848507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档