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;
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_param MAGE_MODE "developer";
    fastcgi_index index.php;
    include fastcgi_params;

2 Answers 2


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
  • 1
    in your case for php5 your upstream server should be /var/run/php5-fpm.sock;. But I strongly suggest to use php7 configuration for Magento 2 Feb 20, 2018 at 8:47

If it's after you run cli command try below

Set store to developer mode

Set store to production mode

Try setup:di:compile

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.