24 August 2013

Follow this quick receipe to use PHP-FPM as a FastCGI back-end for nginx.

$ sudo yum install php-fpm
$ sudo service php-fpm start

Next, create a php-fpm.inc file with the following content. You will include this snippet in the server configuration files later.

location ~ \.php {
        # for security reasons the next line is highly encouraged
        try_files $uri =404;
        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  SCRIPT_NAME        $fastcgi_script_name;
        # if the next line in yours still contains $document_root
        # consider switching to $request_filename provides
        # better support for directives such as alias
        fastcgi_param  SCRIPT_FILENAME    $request_filename;
        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  GATEWAY_INTERFACE  CGI/1.1;
        fastcgi_param  SERVER_SOFTWARE    nginx;
        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;
        # If using a unix socket...
        # fastcgi_pass unix:/tmp/php5-fpm.sock;
        # If using a TCP connection...

Next, edit your site.conf file and make sure you have the following in the “server” section:

    index index.html index.htm index.php;
    include /usr/local/openresty/nginx/conf.d/php-fpm.inc;

If you changed the configuration file, reload nginx"s config with

$ sudo service nginx restart

Look at this article for more information.

blog comments powered by Disqus