Magento 2 位于 Nginx 子文件夹中

Cle*_*016 5 nginx magento

在 Ubuntu 上使用 Nginx 1.4.6,我尝试将 Magento 2 配置为在子文件夹中运行。

我已经有一些其他项目/var/www,设置如下:

server {
    server_name website.com;

    root /var/www/;

    location /p1/ {
        # config
    }

    location /p2/ {
        # config
    }
}
Run Code Online (Sandbox Code Playgroud)

但现在,我的 Magento 安装位于/mnt/storage/demo/demo-magento2,但我找不到将其包含在此服务器块中的方法。

我尝试使用他们的 Nginx 示例配置(https://github.com/magento/magento2/wiki/Nginx-Configuration-Settings-and-Environment-Variables)。因此,我将此位置块添加到我的服务器块配置中:

location /demos/demo-magento2/ {
  set $MAGE_ROOT /mnt/storage/demo-magento2/;
  set $MAGE_MODE developers;
  include /mnt/storage/demo-magento2/nginx.conf.sample;
}
Run Code Online (Sandbox Code Playgroud)

Nginx 不断向我返回这个错误:

2015/10/19 18:15:04 [emerg] 6250#0: location "/setup" is outside location "/demos/demo-magento2/" in /mnt/storage/demo-magento2/nginx.conf.sample:27
Run Code Online (Sandbox Code Playgroud)

我对 Nginx 很陌生,所以有人可以解释我如何弄清楚吗?

Cle*_*016 1

正如@Memes 指出的,我在位置块中犯了一个错误:

location /demos/demo-magento2/ {
  set $MAGE_ROOT /mnt/storage/demo-magento2/;
  set $MAGE_MODE developers;
  include /mnt/storage/demo-magento2/nginx.conf.sample;
}
Run Code Online (Sandbox Code Playgroud)

应该:

location /demos/demo-magento2/ {
  set $MAGE_ROOT /mnt/storage/demo/demo-magento2/;
  set $MAGE_MODE developers;
  include /mnt/storage/demo/demo-magento2/nginx.conf.sample;
}
Run Code Online (Sandbox Code Playgroud)

关键是我缺少路径中的 demo/ 子文件夹。nginx 错误实际上是不言自明的!