Symfony 2: 404 Not Found Error when tryes to open /app_dev.php Symfony 2: 404 Not Found Error when tryes to open /app_dev.php nginx nginx

Symfony 2: 404 Not Found Error when tryes to open /app_dev.php


I know this isn't exactly what you asked but might help future people who search for this issue, like @yvoyer suggested, my issue was the trailing slash too, my server used nginx and fpm, and in nginx // does not euqal /, so i had to do a bit of fixes on my virtual host conf and it worked fine after that. I'll just paste the conf for whoever needs it, or suggests a better one.

    location / {            try_files $uri @pass_to_symfony;    }    location ~ /app_dev.php/ {            try_files $uri @pass_to_symfony_dev;    }    location @pass_to_symfony{            rewrite ^ /app.php?$request_uri last;    }    location @pass_to_symfony_dev{            rewrite ^ /app_dev.php?$request_uri last;    }    location ~ ^/app(_dev)?\.php($|/) {            include fastcgi_params;            fastcgi_pass   unix:/var/run/php5-fpm.sock; # replace with your sock path    }


I had the same error, but I found out that the message was output when I typed app_dev.php/ but not when requesting app_dev.php (Notice the trailing slash /).

I think it has to do with the Router, but Its just an educated guess


My error was related to Nginx configuration (using symfony 3.1), and I just edited the recommended config for Nginx from Symfony:

http://symfony.com/doc/current/setup/web_server_configuration.html

So, maybe it was because of symlinks, I don't know.

I copied a small part to Nginx Default config and edited to match all .php:

### You should look at the following URL's in order to grasp a solid understanding# of Nginx configuration files in order to fully unleash the power of Nginx.# http://wiki.nginx.org/Pitfalls# http://wiki.nginx.org/QuickStart# http://wiki.nginx.org/Configuration## Generally, you will want to move this file somewhere, and start with a clean# file but keep this around for reference. Or just disable in sites-enabled.## Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.### Default server configuration#server {    listen 80 default_server;    listen [::]:80 default_server;    # SSL configuration    #    # listen 443 ssl default_server;    # listen [::]:443 ssl default_server;    #    # Note: You should disable gzip for SSL traffic.    # See: https://bugs.debian.org/773332    #    # Read up on ssl_ciphers to ensure a secure configuration.    # See: https://bugs.debian.org/765782    #    # Self signed certs generated by the ssl-cert package    # Don't use them in a production server!    #    # include snippets/snakeoil.conf;    root /var/www/html;    # Add index.php to the list if you are using PHP    index index.html index.htm index.nginx-debian.html;    server_name _;    location / {        # First attempt to serve request as file, then        # as directory, then fall back to displaying a 404.        try_files $uri $uri/ =404;    }    # Symfony    location ~ \.php(/|$) {            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;        fastcgi_split_path_info ^(.+\.php)(/.*)$;        include fastcgi_params;        # When you are using symlinks to link the document root to the        # current version of your application, you should pass the real        # application path instead of the path to the symlink to PHP        # FPM.        # Otherwise, PHP's OPcache may not properly detect changes to        # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126        # for more information).        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;        fastcgi_param DOCUMENT_ROOT $realpath_root;    }    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000    #    #location ~ \.php$ {    #   include snippets/fastcgi-php.conf;    #    #   # With php7.0-cgi alone:    #   fastcgi_pass 127.0.0.1:9000;    #   # With php7.0-fpm:    #   fastcgi_pass unix:/run/php/php7.0-fpm.sock;    #}    # deny access to .htaccess files, if Apache's document root    # concurs with nginx's one    #    #location ~ /\.ht {    #   deny all;    #}}# Virtual Host configuration for example.com## You can move that to a different file under sites-available/ and symlink that# to sites-enabled/ to enable it.##server {#   listen 80;#   listen [::]:80;##   server_name example.com;##   root /var/www/example.com;#   index index.html;##   location / {#       try_files $uri $uri/ =404;#   }#}

I would recommend sticking to Symfony recommendation for a production server.