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