How do I install and configure a ngnix FastCGI php5 HTTP / web server under Red Hat / RHEL / Fedora / CentOS Linux?
Nginx (engine x) is an HTTP(S) server, reverse proxy and IMAP/POP3 proxy server written by Igor Sysoev. It is known for its high performance, stability, rich feature set, simple configuration, and low resource consumption.
Step # 1: Enable EPEL repo
ngnix is not included in the base system. Turn on EPEL repo to install nginx stable release:
Step # 2: Install ngnixCode:# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/$(uname -m)/epel-release-5-3.noarch.rpm
Type the following command at a shell prompt:
Sample output:Code:# yum install nginx
nginx configuration fileCode:Loaded plugins: downloadonly, fastestmirror, priorities, protectbase Loading mirror speeds from cached hostfile * epel: archive.linux.duke.edu * base: ftp.linux.ncsu.edu * updates: centos.mirror.nac.net * addons: mirror.cs.vt.edu * extras: centos.mirror.nac.net 0 packages excluded due to repository protections Setting up Install Process Parsing package install arguments Resolving Dependencies --> Running transaction check ---> Package nginx.x86_64 0:0.6.34-1.el5 set to be updated --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================== Package Arch Version Repository Size ============================================================================================================================================================== Installing: nginx x86_64 0.6.34-1.el5 epel 319 k Transaction Summary ============================================================================================================================================================== Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s) Total size: 319 k Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : nginx [1/1] Installed: nginx.x86_64 0:0.6.34-1.el5 Complete!
Configure PHP As FastCGI
- Default config file: /etc/nginx/nginx.conf
- Default SSL config file: /etc/nginx/conf.d/ssl.conf
- Default virtual hosting config file: /etc/nginx/conf.d/virtual.conf
- Default documentroot: /usr/share/nginx/html
Type the following to install php5 with other modules:
Install spawn-fcgi simple program for spawning FastCGI processesCode:# yum install php-pear-Net-Socket php-pear php-common php-gd php-devel php php-mbstring php-pear-Mail php-cli php-imap php-snmp php-pdo php-xml php-pear-Auth-SASL php-ldap php-pear-Net-SMTP php-mysql
Type the following command:
Next, download spawn-fcgi init.d shell script:Code:# yum install spawn-fcgi
Start php app server, enter:Code:# wget http://bash.cyberciti.biz/dl/419.sh.zip # unzip 419.sh.zip # mv 419.sh /etc/init.d/php_cgi # chmod +x /etc/init.d/php_cgi
Sample output:Code:# /etc/init.d/php_cgi start # netstat -tulpn | grep :9000
By default php server listens on 127.0.0.1:9000 port. Finally, update /etc/nginx/nginx.conf as follows:Code:tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 14294/php-cgi
Modify / append as follows:Code:# vi /etc/nginx/nginx.conf
Save and close the file. Restart nginx:Code:location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; include fastcgi_params; }
Create /usr/share/nginx/html/test.php as follows:Code:# service nginx restart
PHP Code:<?php
phpinfo();
?>
Last edited by The Server Admin; 07-04-2010 at 12:20 PM.
Cheers dude
gr8 thanks
thanks works great
Bookmarks