megento商城系统环境部署

最近点餐项目用到megento给客户做外卖和点餐平台,小记一下。
生产环境推荐:
Apache 2.2 or 2.4 or Nginx 任意版本(我这里使用的openresty)
PHP 5.6.x, 7.0.2
MySQL 5.6.x

Magento 2.1.X与Magento2.0.X不同之处在于.
Magento 2.1.X不再支持PHP5.6版本.而且Magento2.1.2版本以后支持PHP7.0.4
Magento2.1.2及以后版本兼容Mysql 5.7
支持分布式搜索引擎Elasticsearch 1.0版本到最新的5.0版本

php扩展:
bc-math (商业版才需要)
curl
gd 或者 ImageMagick 6.3.7及以上版本 也可以两个都装
intl
mbstring
mcrypt
mhash
openssl
PDO/MySQL
SimpleXML
soap
xml
xsl
zip
PHP 7 only:
json
iconv

php需要启用的函数:symlink。如果/etc/php.ini文件中disable function有禁用删除掉即可。

Nginx伪静态规则(apache就不说了你懂的):
配置方法有两种。一种是直接引用官方模板,引用方法如下:

方法一
mkdir -p /usr/local/openresty/nginx/conf/rewrite/
cp /data/www/xxx.com/nginx.conf.sample /usr/local/openresty/nginx/conf/rewrite/megento.conf

 upstream fastcgi_backend {
    # use tcp connection
    # server  127.0.0.1:9000;
    # or socket
    #tips:注意和你的php配置的路径对应
    server   unix:/tmp/php-cgi.sock;
 }
 server {
    listen 80;
    server_name www.xxx.com xxx.com;
    set $MAGE_ROOT /data/www/xxx.com;
    include /usr/local/openresty/nginx/conf/rewrite/megento.conf;
 }

另一种是直接复制我贴出来的。

方法二
Tips:

  1. 配置https的时候,也需要对应修改框架配置文件中的URL,并执行以下命令。 bin/magento app:config:import
    bin/magento setup:upgrade
  2. 注意修改php-cgi.sock路径和nginx路径.
server
    {
        listen 80;
        #listen [::]:80;
        server_name www.xxx.com xxx.com;
        return 301 https://www.xxx.com$request_uri;
    }

server {
  listen 80;
  listen 443 ssl http2;
  #ssl on;
  server_name www.xxx.com xxx.com;
  set $MAGE_ROOT /data/www/xxx.com;
  root $MAGE_ROOT/pub;
  index index.php;
  autoindex off;
  charset UTF-8;
  error_page 404 403 /errors/404.php;
  #add_header "X-UA-Compatible" "IE=Edge";
  ssl_certificate /usr/local/openresty/nginx/conf/vhost/ssl/xxx.com.crt;
  ssl_certificate_key /usr/local/openresty/nginx/conf/vhost/ssl/xxx.com.key;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
  ssl_session_cache builtin:1000 shared:SSL:10m;
  # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
  ssl_dhparam /usr/local/openresty/nginx/conf/vhost/ssl/dhparam.pem;

  # PHP entry point for setup application
  location ~* ^/setup($|/) {
    root $MAGE_ROOT;
    location ~ ^/setup/index.php {
      fastcgi_split_path_info ^(.+?\.php)(/.*)$;
      fastcgi_pass unix:/tmp/php-cgi.sock;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
    }

    location ~ ^/setup/(?!pub/). {
      deny all;
    }

    location ~ ^/setup/pub/ {
      add_header X-Frame-Options "SAMEORIGIN";
    }
  }

  # PHP entry point for update application
  location ~* ^/update($|/) {
    root $MAGE_ROOT;
    location ~ ^/update/index.php {
      fastcgi_split_path_info ^(/update/index.php)(/.+)$;
      fastcgi_pass unix:/tmp/php-cgi.sock;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param PATH_INFO $fastcgi_path_info;
      include fastcgi_params;
    }

    # Deny everything but index.php
    location ~ ^/update/(?!pub/). {
      deny all;
    }

    location ~ ^/update/pub/ {
      add_header X-Frame-Options "SAMEORIGIN";
    }
  }

  location / {
    try_files $uri $uri/ /index.php?$args;
  }

  location /pub/ {
    location ~ ^/pub/media/(downloadable|customer|import|theme_customization/.*\.xml) {
      deny all;
    }
    alias $MAGE_ROOT/pub/;
    add_header X-Frame-Options "SAMEORIGIN";
  }

  location /static/ {
    # Uncomment the following line in production mode
    # expires max;
    # Remove signature of the static files that is used to overcome the browser cache
    location ~ ^/static/version {
      rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last;
    }

    location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
      add_header Cache-Control "public";
      add_header X-Frame-Options "SAMEORIGIN";
      expires +1y;
      if (!-f $request_filename) {
          rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
      }
    }

    location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
      add_header Cache-Control "no-store";
      add_header X-Frame-Options "SAMEORIGIN";
      expires off;
      if (!-f $request_filename) {
        rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
      }
    }

    if (!-f $request_filename) {
      rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
    }
    add_header X-Frame-Options "SAMEORIGIN";
  }

  location /media/ {
    try_files $uri $uri/ /get.php?$args;
    location ~ ^/media/theme_customization/.*\.xml {
      deny all;
    }

    location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
      add_header Cache-Control "public";
      add_header X-Frame-Options "SAMEORIGIN";
      expires +1y;
      try_files $uri $uri/ /get.php?$args;
    }
    location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
      add_header Cache-Control "no-store";
      add_header X-Frame-Options "SAMEORIGIN";
      expires off;
      try_files $uri $uri/ /get.php?$args;
    }
    add_header X-Frame-Options "SAMEORIGIN";
  }

  location /media/customer/ {
    deny all;
  }

  location /media/downloadable/ {
    deny all;
  }

  location /media/import/ {
    deny all;
  }

  # PHP entry point for main application
  location ~ (index|get|static|report|404|503)\.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/tmp/php-cgi.sock;
    fastcgi_buffers 1024 4k;

    fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off";
    fastcgi_param PHP_VALUE "memory_limit=768M \n max_execution_time=600";
    fastcgi_read_timeout 600s;
    fastcgi_connect_timeout 600s;

    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

  gzip on;
  gzip_disable "msie6";
  gzip_comp_level 6;
  gzip_min_length 1100;
  gzip_buffers 16 8k;
  gzip_proxied any;
  gzip_types
    text/plain
    text/css
    text/js
    text/xml
    text/javascript
    application/javascript
    application/x-javascript
    application/json
    application/xml
    application/xml+rss
    image/svg+xml;
  gzip_vary on;

  # Banned locations (only reached if the earlier PHP entry point regexes don't match)
  location ~* (\.php$|\.htaccess$|\.git) {
    deny all;
  }
}

原创文章,作者:lijian,如若转载,请注明出处:https://www.lijian.me/124.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

在线咨询:点击这里给我发消息

邮件:root#lijian.me(把#改为@)