在Ubuntu上使用Nginx 1.4.6,我试图将Magento 2配置为在子文件夹中运行。
我已经在/var/www
中设置了其他一些项目,其设置如下:
server {
server_name website.com;
root /var/www/;
location /p1/ {
# config
}
location /p2/ {
# config
}
}
但是现在,我的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;
}
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
我对Nginx很新,所以有人可以解释我如何解决这个问题吗?
答案 0 :(得分:1)
Nginx配置对于指令的位置是挑剔的;因为Magento的nginx.conf.sample包含' location'指令,它必须包含在"服务器"内。指示。看一下示例配置顶部的注释掉部分;它大致显示了主要配置文件应该包含的内容。
您应该有一个如下所示的根配置文件:
upstream fastcgi_backend {
server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name server.dev;
set $MAGE_ROOT /path/to/magento2;
set $MAGE_MODE developer;
include /path/to/magento2/nginx.conf.sample;
}
如果您正在使用典型的Ubuntu-nginx设置,那么您希望该文件位于/ etc / nginx / sites-available目录下,并启用它,您想要创建它来自启用站点的目录的该文件的符号链接。