magento 2的nginx / php-fpm虚拟主机

时间:2014-08-19 09:59:11

标签: magento nginx virtualhost php

我正在努力让我的虚拟主机使用magento2。 有人可以帮忙吗?

 server {
   listen 80;

   server_name local.magento2.com;
   root /home/www/magento2/; 

   access_log /var/log/nginx/access.log; 
   error_log /var/log/nginx/error.log; 

   location / {
     index index.php;
     try_files $uri $uri/ @handler; ## If missing pass the URI to Magento's front handler
     expires off; ## Assume all files are cachable
   }
  location @handler { ## Magento uses a common front handler
  rewrite / /index.php;
  }
   location /pub/static {
     rewrite ^/pub/static/(.*)$ /pub/static.php?resource=$1? last;
   }

   # Foward php request to FastCGI server.
   location ~ \.php$ {
     #if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss
     fastcgi_pass   php5-fpm-sock;
     fastcgi_index index.php;    
     include fastcgi_params;
     fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
     fastcgi_param  HTTPS              off;
   }
 }

1 个答案:

答案 0 :(得分:2)

这似乎是官方的magento2 nginx configuration

upstream fpm_backend {
    server 127.0.0.1:9000; # backend server:port address
}

server {
    listen 80 default;
    server_name magento.lan www.magento.lan;
    root /var/www/magento2; # document root, path to directory with files
    index index.html index.php;
    autoindex off; # we don’t want users to see files in directories

    location ~ (^/(app/\|includes/\|lib/\|/pkginfo/\|var/\|report/config.xml)\|/\.svn/\|/\.git/\|/.hta.+) {
        deny all; #ensure sensitive files are not accessible
    }

    location / {
        try_files $uri $uri/ /index.php?$args; # make index.php handle requests for /
        access_log off; # do not log access to static files
        expires max; # cache static files aggressively
    }

    location \~\* \.(jpeg\|jpg\|gif\|png\|css\|js\|ico\|swf)$ {
        try_files $uri $uri/ @proxy; # look for static files in root directory and
        ask backend if not successful
        expires max;
        access_log off;
    }

    location @proxy {
        fastcgi_pass fpm_backend; # proxy everything from this location to backend
    }
    location \~\.php$ {
        try_files $uri =404; # if reference to php executable is invalid return 404
        expires off; # no need to cache php executable files
        fastcgi_read_timeout 600;
        fastcgi_pass fpm_backend; # proxy all requests for dynamic content to
        # backend configured in upstream.conf
        fastcgi_keep_conn on; # use persistent connects to backend
        include fastcgi_params;
        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;
    }
}