Magento – Magento 2 admin page not found using nginx

404-pagemagento2nginx

I have installed Magento 2 project in Ubuntu 14.04 using Nginx.

After running magento setup:static-content:deploy command I can access the landing page but all URL on the page redirect to the 404 error page.

Is there some Nginx setup issue?

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

root /var/www/magento/magento2/pub;
index index.html index.htm index.php;

# Make site accessible from http://localhost/
server_name localhost;

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
    # Uncomment to enable naxsi on this location
    # include /etc/nginx/naxsi.rules
}

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

    # With php5-cgi alone:
#   fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_param MAGE_MODE "developer";
    fastcgi_index index.php;
    include fastcgi_params;
}
}

Best Answer

you should use next configuration for Magento 2 in your nginx conf file e.g. /etc/nginx/sites-available/magento:

upstream fastcgi_backend {
    server  unix:/run/php/php7.0-fpm.sock;
}

server {
    listen 80;
    # uncomment to use ssl
    # listen 443 ssl;

    server_name www.magento-dev.com;
    set $MAGE_ROOT /var/www/html/magento2;

    # uncomment to use ssl:
    # ssl_certificate /etc/nginx/ssl/magento2.cert;
    # ssl_certificate_key /etc/nginx/ssl/magento2.key;

    include /var/www/html/magento2/nginx.conf.sample;
}

Thats all.

to make this configuration working, create symlink to it in the /etc/nginx/sites-enabled directory:

ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled

verify that the syntax is correct:

nginx -t

and restart nginx:

systemctl restart nginx