Nginx symfony "неверное количество аргументов в директиве try_files" - PullRequest
0 голосов
/ 11 сентября 2018

Я работаю над докеризацией своего приложения Symfony, но не могу понять, почему возникает следующая ошибка:

web_1  | 2018/09/11 07:21:40 [emerg] 1#1: invalid number of arguments in "try_files" directive in /etc/nginx/conf.d/default.conf:6
web_1  | nginx: [emerg] invalid number of arguments in "try_files" directive in /etc/nginx/conf.d/default.conf:6

Это мой конфиг:

server {
    server_name localhost;
    root /application/web;

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

    location ~ ^/(index)\.php(/|$) {
        fastcgi_pass php:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
    }

    location ~ \.php$ {
        return 404;
    }

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

Это мой докер-compose.yml:

version: "3"
services:
    web:
        image: nginx:latest
        volumes:
            - ./docker/nginx/default.template:/etc/nginx/conf.d/default.template
            - ./:/application
        ports:
            - "8080:80"
        links:
            - php
        environment:
            - NGINX_HOST=localhost
            - NGINX_PORT=80
        command: /bin/bash -c "envsubst < /etc/nginx/conf.d/default.template > /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'"

    php:
        image: php:7.2-fpm

В настоящее время я просто пытаюсь запустить NGINX без ошибок конфигурации.Я не ожидаю, что само приложение Symfony будет работать.Просто NGINX в сочетании с PHP-fpm.

1 Ответ

0 голосов
/ 08 марта 2019

Для тех, кто найдет этот вопрос в будущем,

Если вы используете Docker и envsubst в вашем docker-compose.yml, как вам подсказывает Docker NGINX README, это, вероятно, вызывает проблему. По сути, он удаляет переменные типа $uri из конфигурации NGINX, что приводит к таким ошибкам.

Есть проблема (с решением) на https://github.com/docker-library/docs/issues/496

Пример:

До (в docker-compose.yml) :

command: /bin/sh -c "envsubst < /etc/nginx/conf.d/app.template > /etc/nginx/conf.d/app.conf && exec nginx -g 'daemon off;'"

После того, как:

command: /bin/sh -c "envsubst '$$NGINX_HOST' < /etc/nginx/conf.d/app.template > /etc/nginx/conf.d/app.conf && exec nginx -g 'daemon off;'"
...