DeployNginxPHPServer

From FedoraProject

Jump to: navigation, search

Introduction

This is the procedures for deploying a nginx server which supports PHP, with fewest steps and shortest time on Fedora 17. For advanced configurations please check out online references. Assume root directory of the web site is /var/www/html.

Procedures

Log in as "root" user:

$ su -

Install required packages and their dependencies:

# yum install nginx php-cli php-fpm

Open the /etc/nginx/nginx.conf file with text editor:

# vi /etc/nginx/nginx.conf

Customize the web root directory and adding index.php as default web pages, by changing the upper into the lower:

location / {
    root   html;
    index  index.html index.htm;
}
location / {
    root   /var/www/html;
    index  index.html index.htm index.php;
}

Enable PHP by uncommenting the following lines:

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    include        fastcgi_params;
}

Customize the root directory of PHP and correct the SCRIPT_FILENAME, by changing the lines in last step into:

location ~ \.php$ {
    root           /var/www/html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
        }

Start/restart the nginx service:

# systemctl start nginx.service

and enable it:

  1. systemctl enable nginx.service

Start the php-fpm - PHP FastCGI Process Manager:

# systemctl start php-fpm.service

and enable it:

  1. systemctl enable php-fpm.service

Open the port on the firewall for the incoming connection:

# firewall-cmd --permanent --add-service=http

and then reload it:

# firewall-cmd --reload


Create a php_info.php in the web site root directory with contents:

<?php
    echo phpinfo();
?>

Visit the php_info.php file on the server with web browser for the results.

PHP-FPM

You can make php-fpm starts when system boot and auto-re-spawn it when it crashed. Check out spawn-fcgi for more information.