Problems with fastcgi php migration

Igor Sysoev is at rambler-co.ru
Thu Mar 13 15:11:09 MSK 2008


On Thu, Mar 13, 2008 at 08:00:43AM -0400, Ian M. Evans wrote:

> Igor Sysoev wrote:
> >>if ($uri ~ ^(/[^/]+)(/.*)) {
> >>set  $script_name  $1;
> >>set  $path_info    $2;
> >
> >  fastcgi_pass 127.0.0.1:10004;
> >
> >>}
> 
> Not sure if you saw my next email after this one you responded too. It's 
> 99% working right now...but that's for later.

In this config I do not see fastcgi_pass inside if block.
Add it.

> The fastcgi_pass you added is unncessary as it's already there at the 
> bottom of the location. (see below)
> 
> To confirm that I just did the following.
> 
> I turned cgi.fix-pathinfo=0 and added the fastcgi_pass to the if block 
> as you placed above. Restarted nginx and fastcgi servers.
> 
> Received 404s.
> 
> Reset it to what I had late last night:
> cgi.fix-pathinfo=1
> 
> The following location, with cgi.fix-pathinfo=1, is 99% working:
> 
> location ~ ^/(testgalleries|galleries|poll|news|photos)(/|$) {
> root /usr/local/apache/htdocs;
> set  $script_name  $uri;
> set  $path_info    "";
> if ($uri ~ ^(/[^/]+)(/.*)) {
> set  $script_name  $1;
> set  $path_info    $2;
> }
> fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
> fastcgi_param  SERVER_SOFTWARE    nginx;
> 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  PATH_TRANSLATED    $document_root$fastcgi_script_name;
> fastcgi_param  REQUEST_URI        $request_uri;
> fastcgi_param  DOCUMENT_URI       $document_uri;
> fastcgi_param  DOCUMENT_ROOT      $document_root;
> fastcgi_param  SERVER_PROTOCOL    $server_protocol;
> 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  SCRIPT_FILENAME  $document_root$script_name;
> fastcgi_param  PATH_INFO        $path_info;
> #fastcgi_param  REDIRECT_STATUS    200;
> fastcgi_pass 127.0.0.1:10004;
> }
> 
> So 99% success. The final, final hurdle as I mentioned in my 9:14PM 
> Eastern email is that the location regex works only if the extensionless 
> file is in the root, i.e. example.com/galleries
> 
> location ~ ^/(testgalleries|galleries|poll|news|photos)(/|$) {
> 
> However, the file photos can appear anywhere like:
> example.com/academy/80/photos
> example.com/fest/tiff/2008/1/photos
> 
> So the regex just needs one final tweak to allow it to find an 
> extensionless file no matter if it's in root or any number of 
> subdirectories deep. I read several regex tutorials last night but my 
> brain goes on vacation with regex.
> 
> So we're 99.9999% there. Thanks again.
> 

-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list