On Tue, Jan 31, 2017 at 08:43:23AM +0200, Nikolaos Milas wrote: > On 19/1/2016 10:58 μμ, Francis Daly wrote:
Hi there, > I have tried various things with the aliased directories, but I am > still having the problem. > My logic is to use a scheme like (see full details in the attached config): The logic skeleton looks right to me, for what that's worth. > But it doesn't work for the aliased dirs. > > The request in question (http://www-xxx.noa.gr/museum/library/) > should access the file: > > http://www-xxx.noa.gr/museum/library/index.php > > (i.e. file: /var/webs/wwwopenbib/index.php) whose content is: > location ^~ /museum/library/ { > alias /var/webs/wwwopenbib/; > allow 10.201.0.0/16; > deny all; > > location ~ \.php$ { > > fastcgi_param SCRIPT_FILENAME > /var/webs/wwwopenbib$fastcgi_script_name; I suspect that changing that line will make everything work. $fastcgi_script_name is something like /museum/library/index.php, so SCRIPT_FILENAME ends up with a value that is not exactly the name of the file that you want. Replace the line with fastcgi_param SCRIPT_FILENAME $request_filename; and reload. The debug log does show what is going on, if you are able to ignore the extra lines. First, for the request /museum/library/ : > 2017/01/31 08:17:24 [debug] 15750#15750: *149615 using configuration > "/museum/library/" it chooses the location you want... > 2017/01/31 08:17:24 [debug] 15750#15750: *149615 internal redirect: > "/museum/library/index.php?" and issues the (internal) subrequest. This request also chooses the location you want: > 2017/01/31 08:17:24 [debug] 15750#15750: *149615 using configuration "\.php$" (although that is not immediately obvious, unless you know what to expect). And then it prepares the parameters to send to the fastcgi server: > 2017/01/31 08:17:24 [debug] 15750#15750: *149615 http script copy: > "SCRIPT_FILENAME" > 2017/01/31 08:17:24 [debug] 15750#15750: *149615 http script copy: > "/var/webs/wwwopenbib" > 2017/01/31 08:17:24 [debug] 15750#15750: *149615 http script var: > "/museum/library/index.php" > 2017/01/31 08:17:24 [debug] 15750#15750: *149615 fastcgi param: > "SCRIPT_FILENAME: /var/webs/wwwopenbib/museum/library/index.php" That is the filename that your fastcgi server is going to try (and fail) to open. > 2017/01/31 08:17:24 [error] 15750#15750: *149615 FastCGI sent in stderr: > "Primary script unknown" while reading response header from upstream, client: > ::ffff:195.251.202.164, server: www-xxx.noa.gr, request: "GET > /museum/library/ HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-fpm.sock:", > host: "www-xxx.noa.gr" And there it is reporting failure. > 2017/01/31 08:17:24 [debug] 15750#15750: *149615 http fastcgi header: > "Status: 404 Not Found" > 2017/01/31 08:17:24 [debug] 15750#15750: *149615 http fastcgi header: > "X-Powered-By: PHP/5.6.22" > 2017/01/31 08:17:24 [debug] 15750#15750: *149615 http fastcgi header: > "Content-type: text/html; charset=UTF-8" And that is what it sent back to nginx as the response. Compare http://nginx.org/r/$fastcgi_script_name with http://nginx.org/r/$request_filename to see why you probably want the latter in each case you use "alias". Cheers, f -- Francis Daly [email protected] _______________________________________________ nginx mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx
