nginx 配置子目录中的 Symfony2 应用程序

nginx 配置子目录中的 Symfony2 应用程序

我正在尝试设置我的环境,使其surveyadmin.local指向一个目录并surveyadmin.local/api指向另一个目录。

但是,无论我如何更改,/apiURL 始终会导致调用指向的目录surveyadmin.local。以下是来自 vhost 配置中指定的错误日志的示例错误:

2013/08/09 17:20:07 [error] 8911#0: *1 open() "/srv/http/surveytool/admin/build/app.php" failed (2: No such file or directory), client: 10.0.2.2, server: surveyadmin.local, request: "GET /api/organizations HTTP/1.1", host: "surveyadmin.local"

请注意,错误是指的路径/srv/http/surveytool/admin/buid/,而不是/srv/http/surveytool/api/SurveyTool/web/预期的路径。

以下是我针对该虚拟主机的配置:

server {
    listen 80;
    server_name surveyadmin.local;

    location / {
        root /srv/http/surveytool/admin/build;
        index index.html;
    }

    location /api {
        root /srv/http/surveytool/api/SurveyTool/web;
        index app.php;
        try_files $uri $uri/ /app.php?$query_String;
        location ~ \.php(?|$) {
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index app.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include /etc/nginx/fastcgi_params;
        }
    }
    access_log  /var/log/nginx/surveyadmin.access.log;
    error_log   /var/log/nginx/surveyadmin.error.log debug;
}

我尝试将块下的单词“root”更改为“alias” location /api。我尝试设置第二个虚拟主机,并使用 执行到该虚拟主机的代理转发proxy_pass

这似乎不应该那么困难,所以我假设我的错误是一个简单的错误,只是我还没有看到。

有人能发现上述配置有什么明显问题吗?

答案1

不要在块root内使用location。这是最常见的 nginx 配置错误

相反,将放置root在块中server,并使用aliaslocation在需要正常文档根目录之外的特定目录的块内。

相关内容