I'm trying to set up a Wordpress in a system that has another php application installed, using nginx as web server.
I've simplified my config file to the maximun. The following confi is serving one post of my blog:
server {
    listen 80;
    server_name blog.ct.com;
    root /home/ff/www/blog/;
    index index.php index.html;
    location / {
            try_files $uri $uri/ /index.php?$uri&$args =405;
    }
    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_buffer_size 128k;
            fastcgi_buffers 64 32k;
            fastcgi_busy_buffers_size 128k;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            include /etc/nginx/fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param APPLICATION_ENV development;
            fastcgi_param HTTP_X_FORWARDED_PROTO https;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
    }
 }
But, due my system's requirements I need to serve the blog from within a sub path (In my final system http://blog.ct.com/ should be serving my custom php app and http://blog.ct.com/vendor should be serving the wordpress blog).
The local root directory from wordpress must be /home/ff/www/blog/ (this cannot be changed, while my custom app's directory is /home/ff/www/myapp/). So I think I need to reserve location / for my custom app, I have to create a location /vendor
If I add /vendor and I return 403 in / (just to debug easier), the browser says 405 (notice the =405 in /vendor, also to debug easier):
location /vendor {
        try_files $uri $uri/ /index.php?$uri&$args =405;
}
location / {
        return 403;
}
So I think nginx is going into location /vendor but is not finding my php script in /home/ff/www/blog/index.php so its returning the fallback 405.
Any idea why this could happen?
How can I achieve to load http://blog.ct.com/vendor as the root from wordpress but keeping http://blog.ct.com/ using another php script?
