Correct nginx config for PHP5 fastCGI

It’s surprising how much incorrect informations  are available on web for this topic.   I was struggling to get correct configuration for simpleSAMLphp package (on Ubuntu 14.04). This is finally correct config (inside server section):

        rewrite ^(/simplesaml/?)(.*) /saml/www/$2 break;
	
	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
		
	}

	location ~ \.php$ {
        	fastcgi_split_path_info ^(.+\.php)(/.+)$;
        	fastcgi_pass unix:/var/run/php5-fpm.sock;
        	fastcgi_index index.php;
        	include fastcgi_params;
        	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    		fastcgi_param PATH_INFO       $fastcgi_path_info;
	}

Key insight is to set additionally two CGI parameters SCRIPT_FILENAME and PATH_INFO,   but after  include fastcgi_params (this configuration also sets SCRIPT_FILENAME).

Also I had to change php.ini:

cgi.fix_pathinfo=0

Leave a Reply

Your email address will not be published. Required fields are marked *