Welcome! Log In Create A New Profile

Advanced

PHP via FastCGI in / and sub-directory location w/ different roots

Thilo-Alexander Ginkel
November 07, 2013 05:38AM
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
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

PHP via FastCGI in / and sub-directory location w/ different roots

Thilo-Alexander Ginkel November 07, 2013 05:38AM

Re: PHP via FastCGI in / and sub-directory location w/ different roots

B.R. November 07, 2013 07:46AM

Re: PHP via FastCGI in / and sub-directory location w/ different roots

Francis Daly November 08, 2013 05:34PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 173
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready