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

Конфигурация Nginx Magento не работает, 404 при установке

Это мой стек: Nginx 1.7, MariaDB 10, PHP 5.6 (FPM) и CentOS 7. Я использовал Centminmod для установки вышеупомянутого программного обеспечения.

Я создал vhost для установки magento. Скопировал файлы в корневую папку и попытался запустить сценарий установки, посетив домен, но он перенаправился на domain.com/index.php/install/ и выдал ошибку 404.

Вот что находится в моем файле конфигурации nginx vhost:

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
   }
 }

Кто-нибудь может определить проблему? Спасибо.

Добавляем это:

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;
}

исправил проблему для меня.

Примечание: вы можете изменить fastcgi_pass ко всему, что вам подходит.