2

I am trying to run magento with marketplace site it supports only one base currency.

so we thought to create multiple websites inside magento admin .

 www.example.com/in/marketplace 
 www.example.com/gb/marketplace
 www.example.com/us/marketplace

In configuration

{
        set $MAGE_ROOT /var/www/html;

        include /var/www/nginx-sample.conf;

}

nginx-sample.conf

root $MAGE_ROOT;

index index.php;
autoindex off;
charset UTF-8;
error_page 404 403 = /errors/404.php;

location ~* ^/setup($|/) {
    root $MAGE_ROOT;
    location ~ ^/setup/index.php {
        fastcgi_pass   fastcgi_backend;

        fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
        fastcgi_param  PHP_VALUE "memory_limit=756M \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;
    }

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

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

location ~* ^/update($|/) {
    root $MAGE_ROOT;

    location ~ ^/update/index.php {
        fastcgi_split_path_info ^(/update/index.php)(/.+)$;
        fastcgi_pass   fastcgi_backend;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        include        fastcgi_params;
    }

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

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

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

location /marketplace/pub/static/ {

    location ~ ^/marketplace/pub/static/version {
        rewrite ^/marketplace/pub/static/(version[^/]+/)?(.*)$ /marketplace/pub/static/$2 last;
    }

    location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2|json)$ {
        add_header Cache-Control "public";
        add_header X-Frame-Options "SAMEORIGIN";
        expires +1y;

        if (!-f $request_filename) {
            rewrite ^/marketplace/pub/static/?(.*)$ /marketplace/pub/static.php?resource=$1 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 ^/marketplace/pub/static/?(.*)$ /marketplace/pub/static.php?resource=$1 last;
        }
    }
    if (!-f $request_filename) {
        rewrite ^/marketplace/pub/static/?(.*)$ /marketplace/pub/static.php?resource=$1 last;
    }
    add_header X-Frame-Options "SAMEORIGIN";
}

location /marketplace/pub/media/ {
    try_files $uri/marketplace/pub $uri/marketplace/pub/ /marketplace/pub/get.php$is_args$args;

    location ~ ^/marketplace/pub/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/marketplace/pub $uri/marketplace/pub/ /marketplace/pub/get.php$is_args$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/marketplace/pub $uri/marketplace/pub/ /marketplace/pub/get.php$is_args$args;
    }
    add_header X-Frame-Options "SAMEORIGIN";
}

location /media/customer/ {
    deny all;
}

location /media/downloadable/ {
    deny all;
}

location /media/import/ {
    deny all;
}

location ~ ^/marketplace/(index|get|static|errors/report|errors/404|errors/503|health_check|filemanager|adminer)\.php$ {
    try_files $uri =404;
    fastcgi_pass   fastcgi_backend;
    fastcgi_buffers 1024 4k;

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

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

location ~ ^/marketplace/pub/(index|get|static|errors/report|errors/404|errors/503|health_check)\.php$ {
    try_files $uri =404;
    fastcgi_pass   fastcgi_backend;
    fastcgi_buffers 1024 4k;

    fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
    fastcgi_param  PHP_VALUE "memory_limit=756M \n max_execution_time=18000";
    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;

Any help is appreciated

0

In order to get your different websites running you need to set the corresponding variables MAGE_RUN_TYPE and MAGE_RUN_CODE as fastcgi_param anywhere where fastcgi is included in your nginx configuration and the Magento application is targeted.

So I think the following steps need to be done:

First you need identify the correct website code based on the request. If I understand your example correctly you are using the same domain for 3 websites with different url paths. So the identification might go like this, please add the code somewhere in the top of your ngionx conf:

map $request_uri $MAGE_RUN_CODE {
    ~/in/marketplace  website_code_for_in;
    ~/gb/marketplace  website_code_for_gb;
    ~/us/marketplace  website_code_for_us;
}

Second you need to add this two fastcgi_param directives into your fastcgi areas:

fastcgi_param  MAGE_RUN_TYPE website;
fastcgi_param  MAGE_RUN_CODE $MAGE_RUN_CODE;

Anyway I'm not sure about the rest of your configuration. URLs are expected to begin with /marketplace so most likely you have to add in, gb or us in your location directives. I guess you need to change ^/marketplace/ to ^/(in|gb|us)/marketplace/.

I hope that helps and you get your configuration set up properly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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