This guide will walk you explain a little bit about How to Installing nginx with php5-fastcgi and mysql Support on Ubuntu Server 12.04 LTS, Nginx (pronounced “engine x”) is a free, open-source and high-performance HTTP server. Nginx is known for its stability, rich feature set, simple configuration, and low resource consumption.
Follow the step by step installing and setup nginx with php5-fastcgi and mysql Support on Ubuntu Server 12.04 LTS in below
Step 1. Before you begin installing and configuring nginx, Set the hostname ubuntu server. in this case I’ll use host name “precise.public“. if you want to change hostname you can edit the file /etc/hosts.
Step 2. Install package Engine X, PHP and MySql
sudo apt-get install nginx mysql-server mysql-client spawn-fcgi php5 php5-cli php5-common php5-suhosin php5-cgi php-pear php5-mysql
Step 3. Create file /usr/sbin/fastcgi-php
sudo touch /usr/sbin/php-fastcgi sudo nano /usr/sbin/php-fastcgi
Put the following script on file /usr/sbin/php-fastcgi
#!/bin/bash FASTCGI_USER=www-data FASTCGI_GROUP=www-data ADDRESS=127.0.0.1 PORT=9000 #SOCKET=/var/run/php-fastcgi/php-fastcgi.socket # UNIX Socket PIDFILE=/var/run/php-fastcgi/php-fastcgi.pid CHILDREN=6 PHP5=/usr/bin/php5-cgi /usr/bin/spawn-fcgi -a $ADDRESS -p $PORT -P $PIDFILE -C $CHILDREN -u $FASTCGI_USER -g $FASTCGI_GROUP -f $PHP5
Make the file /usr/sbin/php-fastcgi executable
sudo chmod +x /usr/sbin/php-fastcgi
Step 3. Create directories to hold content and log files:
sudo mkdir -p /srv/www/precise.public/public_html sudo mkdir /srv/www/precise.public/logs sudo chown -R www-data:www-data /srv/www/precise.public
Step 4. Define the site’s virtual host file, This example uses a TCP Sockets Configuration
sudo touch /etc/nginx/sites-available/precise.public sudo nano /etc/nginx/sites-available/precise.public
Put this configuration on file /etc/nginx/sites-available/precise.public
server {
server_name www.precise.public precise.public;
access_log /srv/www/precise.public/logs/access.log;
error_log /srv/www/precise.public/logs/error.log;
root /srv/www/precise.public/public_html;
location / {
index index.html index.htm;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000; # TCP Socket
# fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket; # UNIX Socket
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/precise.public/public_html $fastcgi_script_name;
}
}
and create a symbolic link to /etc/nginx/sites-enabled
sudo ln -s /etc/nginx/sites-available/precise.public /etc/nginx/sites-enabled/
Step 5. Create a file named /etc/init.d/php-fastcgi with the following contents:
sudo touch /etc/init.d/php-fastcgi
sudo nano /etc/init.d/php-fastcgi
Insert this script on file /etc/init.d/php-fastcgi
#!/bin/bash
PHP_SCRIPT=/usr/sbin/php-fastcgi FASTCGI_USER=www-data FASTCGI_GROUP=www-data PID_DIR=/var/run/php-fastcgi PID_FILE=/var/run/php-fastcgi/php-fastcgi.pid RET_VAL=0
case "$1" in
start)
if [[ ! -d $PID_DIR ]]
then
mkdir $PID_DIR
chown $FASTCGI_USER:$FASTCGI_GROUP $PID_DIR
chmod 0770 $PID_DIR
fi
if [[ -r $PID_FILE ]]
then
echo "php-fastcgi already running with PID `cat $PID_FILE`"
RET_VAL=1
else
$PHP_SCRIPT
RET_VAL=$?
fi
;;
stop)
if [[ -r $PID_FILE ]]
then
kill `cat $PID_FILE`
rm $PID_FILE
RET_VAL=$?
else
echo "Could not find PID file $PID_FILE"
RET_VAL=1
fi
;;
restart)
if [[ -r $PID_FILE ]]
then
kill `cat $PID_FILE`
rm $PID_FILE
RET_VAL=$?
else
echo "Could not find PID file $PID_FILE"
fi
$PHP_SCRIPT
RET_VAL=$?
;;
status)
if [[ -r $PID_FILE ]]
then
echo "php-fastcgi running with PID `cat $PID_FILE`"
RET_VAL=$?
else
echo "Could not find PID file $PID_FILE, php-fastcgi does not appear to be running"
fi
;;
*)
echo "Usage: php-fastcgi {start|stop|restart|status}"
RET_VAL=1
;;
esac
exit $RET_VAL
Then Make the file /etc/init.d/php-fastcgi executabe
sudo chmod +x /etc/init.d/php-fastcgi
Step 6. Start php-fastcgi and nginx, then make /etc/init.d/php-fastcgi autoload at startup
sudo /etc/init.d/php-fastcgi start sudo /etc/init.d/nginx restart
sudo update-rc.d php-fastcgi defaults
Note: If you running sudo /etc/init.d/php-fastcgi start and get a message like this “spawn-fcgi: bind failed: Address already in use“, run the command: sudo netstat -tpan |grep “LISTEN”|grep :9000
Step 7. Test PHP with FastCGI, Create a file /srv/www/example.com/www/public_html/info.php
sudo touch /srv/www/example.com/www/public_html/info.php
sudo nano /srv/www/example.com/www/public_html/info.php
<?php phpinfo(); ?>
visit http://precise.public/info.php in your browser, the standard “PHP info” output is shown. Congratulations, you’ve configured the nginx web server to use PHP-FastCGI
Reference :







How to Install and Configure Lusca as Proxy Server in Ubuntu Server 12.04
How to Install and Configure Proxy Server with Squid3 on Ubuntu Server 12.04 LTS
How To Install LAMP Server in Ubuntu Server 12.04 LTS
How To Install WordPress in Ubuntu Server 12.04 LTS
How to Install ownCloud 4 in Ubuntu Server 12.04 LTS