我用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:
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;
}我不明白为什么我有这个错误,你能帮我一下吗?
提前谢谢你
发布于 2020-01-21 21:03:30
在上下文中,您需要将服务器包装在http块中。或者不是通过替换默认配置文件来移动配置文件,而是替换位于/etc/nginx/ config .d/中的默认服务器配置,这样就可以使用以下内容
- ./nginx.conf:/etc/nginx/conf.d/default.conf关于nginx的卷。它将重写默认的服务器配置。如果计划使用多个配置文件,也可以将其复制到启用站点的文件夹中。
或者您可以修改nginx配置,方法是从用http块包装它开始。
https://stackoverflow.com/questions/59848507
复制相似问题