Thanks you for your answer, you helped me to make it working. ;)
This is my final configuration :

server {
        listen   80;
        server_name mydomain;
        root /server/www;

        location @rewriteMainApp {
                rewrite ^(.*)$ /app.php/$1 last;
        }
location @rewriteOtherApp1 {
                rewrite ^(.*)$ /subdir1/app.php/$1 last;
        }

        location /subdir1 {
                alias /server/www/other-app1/web;
                index app.php;
                set $subfolder "other-app1/web";
                try_files $uri @rewriteOtherApp1;
        }

        location / {
                root /server/www/main-app/web;
                index app.php;
                set $subfolder "main-app/web";
                try_files $uri @rewriteMainApp;
        }

        # PROD
        location ~ /app\.php(/|$) {
                fastcgi_pass unix:/var/run/php5-fpm.sock;

                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root/$subfolder/app.php;
        }
}



Le 29/12/2014 00:03, B.R. a écrit :
You are using the same named location as the fallback of the try_files directive, although you are dealing with three different paths.

Why do not you use one fallback named location per app location, each rewriting to the correct path?
---
*B. R.*

On Sun, Dec 28, 2014 at 10:16 PM, Naji Astier <[email protected] <mailto:[email protected]>> wrote:

    Le 28/12/2014 20:30, Steve Holdoway a écrit :

        On Sat, 2014-12-27 at 05:52 -0500, Claros wrote:

            Hello everybody !

            I just switched from Apache2 to Nginx and I met some
            issues having the same
            configuration. What I want to do is having multiple
            Symfony2 apps on the
            same domain name. Each app will have a subdirectory and a
            main app will be
            on the domain name itself. For instance :
            http://mydomain/    -> main app
            http://mydomain/subdir1  -> another app
            http://mydomain/subdir2  -> yet another app
            One of Symfony2 feature is to have only three php files to
            be executed, and
            all the URL are rewritten to those files. You can found
            basic configuration
            for Symfony2 at this address if you need more information :
            http://wiki.nginx.org/Symfony
            Now after many hours of configuration, with the help of
            debug logs, I almost
            did it. This is my current configuration :

            server {
                 listen   80;
                 server_name mydomain;
                 root /server/www/main-app/web;

                 location @rewriteapp {
                     rewrite ^(.*)$ /app.php/$1 last;
                 }

                 location /subdir1/ {
                     # alias /server/www/other-app1/web;
                     set $root "/server/www/other-app1/web";
                     # try to serve file directly, fallback to app.php
                     try_files $uri @rewriteapp;
                 }

                 location / {
                     index app.php;
                     set $root "/server/www/main-app/web";
                     # try to serve file directly, fallback to app.php
                     try_files $uri @rewriteapp;
                 }

                 # PROD
                 location ~ ^/app\.php(/|$) {
                     fastcgi_pass unix:/var/run/php5-fpm.sock;
                     fastcgi_split_path_info ^(.+\.php)(/.*)$;

                     include fastcgi_params;
                     fastcgi_param SCRIPT_FILENAME
            $root$fastcgi_script_name;
                     fastcgi_param SCRIPT_NAME $fastcgi_script_name;
                     fastcgi_param PATH_INFO $fastcgi_path_info;
                 }
            }

            Why did I create a variable "$root" ? Because when I was
            using the root (or
            alias) directive in a location block and the variable
            $document_root, I
            found out that this variable has as final value (in the
            location app.php)
            the first root directive in the server or the default root
            location.
            With this configuration, it almost work. The main app
            works and the
            subdirectories are correctly sent to their directory. The
            last problem is
            that the URI processed by the file app.php also contains
            the subdirectory in
            it, so the others apps send 404 for all the URL. I tried
            to fix that by
            changing "REQUEST_URI" parameter, but with that the
            app.php generate wrong
            URL without the subdirectory.

            So is their a way to achieve this configuration ? Thanks you !

            Posted at Nginx Forum:
            http://forum.nginx.org/read.php?2,255806,255806#msg-255806

        Try using a map to set the $root...

        Steve

    Ok I did not know the map system, it is interesting. But it is
    only simplifying my configuration, not solving the problem.


    _______________________________________________
    nginx mailing list
    [email protected] <mailto:[email protected]>
    http://mailman.nginx.org/mailman/listinfo/nginx




_______________________________________________
nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx

_______________________________________________
nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx

Reply via email to