Назад | Перейти на главную страницу

Конфигурация nginx для symfony на ubuntu

Я хочу настроить symfony с nginx, и эта конфигурация работает нормально

server {
    listen 80;
    root /src/web;

    location / {
        # try to serve file directly, fallback to app.php
        try_files $uri /app.php$is_args$args;
    }

    location ~ ^/app\.php(/|$) {
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        # Prevents URIs that include the front controller. This will 404:
        # http://domain.tld/app.php/some-path
        # Remove the internal directive to allow URIs like this
        internal;
    }

    error_log /var/log/nginx/symfony_error.log;
    access_log /var/log/nginx/symfony_access.log;
}

Однако я также хочу, чтобы на моем сервере я также имел доступ к файлам через app_dev.php и app_test.php

пока что с конфигурацией выше. http://127.0.0.1/api/check работает нормально

но я также хочу

http://127.0.0.1/app_dev.php/api/check и http://127.0.0.1/app_test.php/api/check работать тоже.

В настоящее время он дает мне ошибку 404

ОБНОВИТЬ

server {
    listen 80;
    root /src/web;
    client_max_body_size 30m;
    client_body_buffer_size 128k;

    location / {
        # try to serve file directly, fallback to app.php
        try_files $uri /app.php$is_args$args;
    }

    location ~ \.php {
        root /src/web/;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        try_files $uri =404;
    }

}

Ваша конфигурация по какой-то причине настроена для пересылки на PHP только запросы к app.php.

    location ~ ^/app\.php(/|$) {

Поскольку вам нужны все файлы PHP, вы должны просто разрешить обработку всех файлов PHP.

    location ~ \.php {

Конечно, вам также нужно удалить internal; как указано в комментарии. Это следует заменить try_files $uri =404;. Это мера безопасности.