Nginx Magento config not working, 404 on installation

7,813

Adding this:

location ~ ^(.+\.php)(.*)$
{
    root /usr/share/nginx/html;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_script_name;
}

fixed the problem for me.

Note: you may want to change fastcgi_pass to whatever suits you.

Share:
7,813

Related videos on Youtube

Afaq
Author by

Afaq

Updated on September 18, 2022

Comments

  • Afaq
    Afaq over 1 year

    This is my stack: Nginx 1.7, MariaDB 10, PHP 5.6 (FPM) and CentOS 7. I have used Centminmod for the installation of the above mentioned software.

    I created a vhost for the magento installation. Copied the files to the root folder and tried to ran the installation script by visiting the domain but it redirected to domain.com/index.php/install/ and gave a 404 error.

    This is what's in my nginx vhost config file:

    server {
       listen 80;
       server_name domain.com;
       rewrite / $scheme://www.$host$request_uri permanent; ## Forcibly prepend a www
     }
    
     server {
       listen 80 default;
        ## SSL directives might go here
       server_name www.domain.com *.domain.com; ## Domain is here twice so server_name_in_redirect will favour the www
       root /home/nginx/domains/domain.com/public/;
    
       location / {
           index index.html index.php; ## Allow a static html file to be shown first
           try_files $uri $uri/ @handler; ## If missing pass the URI to Magento's front handler
           expires 30d; ## Assume all files are cachable
       }
    
       ## These locations would be hidden by .htaccess normally
       location ^~ /app/                { deny all; }
       location ^~ /includes/           { deny all; }
       location ^~ /lib/                { deny all; }
       location ^~ /media/downloadable/ { deny all; }
       location ^~ /pkginfo/            { deny all; }
       location ^~ /report/config.xml   { deny all; }
       location ^~ /var/                { deny all; }
    
       location /var/export/ { ## Allow admins only to view export folder
           auth_basic           "Restricted"; ## Message shown in login window
           auth_basic_user_file htpasswd; ## See /etc/nginx/htpassword
           autoindex            on;
       }
    
       location  /. { ## Disable .htaccess and other hidden files
           return 404;
       }
    
       location @handler { ## Magento uses a common front handler
           rewrite / /index.php;
       }
    
       location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler
           rewrite ^(.*.php)/ $1 last;
       }
    
       location ~ .php$ { ## Execute PHP scripts
           if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss
    
           expires        off; ## Do not cache dynamic content
           fastcgi_pass   127.0.0.1:9000;
           fastcgi_param  HTTPS $fastcgi_https;
           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
           fastcgi_param  MAGE_RUN_CODE default; ## Store code is defined in administration > Configuration > Manage Stores
           fastcgi_param  MAGE_RUN_TYPE store;
           include        fastcgi_params; ## See /etc/nginx/fastcgi_params
       }
     }
    

    Can anyone please identify the issue? Thanks.

    • alexus
      alexus over 8 years
      Can you test <?php phpinfo(); ?>?