Hi there,
I am currently somewhat stuck getting the following setup up and
running:
I have one PHP web application residing in /usr/share/a that I’d like to
have available at /. This works as expected.
I have a second PHP web app residing in /var/www/b/public, that I’d like
to
have available at /b.
My current ngnix (1.2.1) configuration looks like this:
– 8< –
server {
listen *:443 ssl;
listen [::]:443 ;
[…]
root /usr/share/a;
index index.php;
location ~ ^/b/..php$ {
rewrite ^/b(/.) $1 break;
root /var/www/b/public;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
location ~ .php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
location ~ ^/b/ {
root /var/www/b/public;
index index.php;
}
}
– 8< –
/etc/nginx/fastcgi_params:
– 8< –
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $uri?$args;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param HTTPS $https;
PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
– 8< –
I included the rewrite in location ~ ^/b/.*.php$ because otherwise
nginx/php-fpm will look for the script /b/index.php in
/var/www/b/public/b/index.php, which has an extra “b/” in the path.
With the rewrite enabled, however, the PHP application guesses its own
path
incorrectly issuing redirects to locations that leave out "/b’.
I would like to avoid symlinking /var/www/b into /usr/share/a.
Any ideas?
Thanks,
Thilo