Conversion of PHP single machine setup to nginx/php residing on different boxes

Johannes Graumann johannes_graumann at web.de
Wed Jun 6 20:10:37 UTC 2012


Francis Daly wrote:

> On Wed, Jun 06, 2012 at 04:18:10PM +0300, Johannes Graumann wrote:
> 
> Hi there,
> 
>> >         location ~ \.php$ {
>> >                 try_files $uri =404;
> 
> try_files refers to local files only. http://nginx.org/r/try_files
> 
> You probably don't want it here at all.
> 
>> >                 fastcgi_pass   10.10.10.3:9000;
>> >                 fastcgi_index  index.php;
>> >                 fastcgi_param  SCRIPT_FILENAME
>> http://10.10.10.3:80/$fastcgi_script_name;
> 
> SCRIPT_FILENAME is a parameter that the fastcgi server will read, and
> it will expect it to refer to a file on its filesystem that it should
> load and process.
> 
> So: if the client requests the url /one/two.php, what file on the
> 10.10.10.3 server do you want that to correspond to? (From the perspective
> of the fasctcgi server, in case it is chroot'ed.)
> 
> Make SCRIPT_FILENAME be that filename.

Thanks a lot for your pointers, which nudged me in the right direction. 
After also finding http://nginxlibrary.com/resolving-no-input-file-
specified-error/ I came up with the following, which is working (a 
"info.php" script at the documentroot containing a call to "phpinfo()" is 
rendered properly and the output has "Server API:	CGI/FastCGI"):

> server {
> 	      listen   443;
> 	      server_name  XXX.org XXX;
> 	      client_max_body_size 40M;
> 	      # SSL is using CACert credentials
> 	      ssl  on;
> 	      ssl_certificate  /etc/ssl/private/cacert.XXX.org.pem;
> 	      ssl_certificate_key 
/etc/ssl/private/cacert.XXX.org_privatkey.pem;
> 	      ssl_session_timeout  5m;
> 	      ssl_protocols  SSLv3 TLSv1;
> 	      ssl_ciphers  ALL:!ADH:!EXPORT56:!LOW:RC4+RSA:+HIGH:+MEDIUM:
+SSLv3:+EXP;
> 	      ssl_prefer_server_ciphers   on;
> 	      # Proxy the "feng-container" lxc container
> 	      root    /var/www/;
> 	      location / {
> 		  proxy_pass      http://10.10.10.3:80/;
> 		  index           index.php index.html index.htm;
> 	      }
> 	      location ~ \.php$ {
> 		  fastcgi_pass   10.10.10.3:9000;
> 		  fastcgi_index  index.php;
> 		  fastcgi_param  SCRIPT_FILENAME  
$document_root$fastcgi_script_name;
> 		  include         fastcgi_params;
> 	      }
> 	    }

Thank you. Joh




More information about the nginx mailing list