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:
- systemctl enable nginx.service
Start the php-fpm - PHP FastCGI Process Manager:
# systemctl start php-fpm.service
and enable it:
- 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.