VPS: Nginx, PHP5 & ASP.NET with FastCGI on ubuntu-server 10.04 LTS

Install Required Packages

# Set mono update sources
echo "deb http://badgerports.org lucid main" >> /etc/apt/sources.list

# Install Nginx, Mono, PHP5
apt-get update
apt-get install nginx mono-fastcgi-server2 php5-cgi php5-cli spawn-fcgi

Configure Sites

File: /etc/nginx/fastcgi_params

Append:

fastcgi_param  PATH_INFO          "";
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
File: /etc/nginx/sitesites-available/default
server {
	listen   80;
	server_name  dotnet.domain.com;

	access_log  /var/log/nginx/dotnet.domain.com.access.log;

	location / {
		root   /var/www/dotnet.domain.com;
		index index.html index.htm default.aspx Default.aspx;
		fastcgi_index Default.aspx;
		fastcgi_pass 127.0.0.1:9000;
		include /etc/nginx/fastcgi_params;
	}
}

server {
	listen   80;
	server_name  php.domain.com;

	access_log  /var/log/nginx/php.domain.com.access.log;

	location / {
		root   /var/www/php.domain.com;
		index index.html index.htm;
		fastcgi_index index.php;
		fastcgi_pass 127.0.0.1:9001;
		include /etc/nginx/fastcgi_params;
	}
}

Configure FastCGI

File: /etc/init.d/monoserver
#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/mono
NAME=monoserver
DESC=monoserver

MONOSERVER=$(which fastcgi-mono-server2)
MONOSERVER_PID=$(ps auxf | grep fastcgi-mono-server2.exe | grep -v grep | awk '{print $2}')

WEBAPPS="dotnet.domain.com:/:/var/www/dotnet.domain.com/"

case "$1" in
        start)
                if [ -z "${MONOSERVER_PID}" ]; then
                        echo "starting mono server"
                        ${MONOSERVER} /applications=${WEBAPPS} /socket=tcp:127.0.0.1:9000 &
                        echo "mono server started"
                else
                        echo ${WEBAPPS}
                        echo "mono server is running"
                fi
        ;;
        stop)
                if [ -n "${MONOSERVER_PID}" ]; then
                        kill ${MONOSERVER_PID}
                        echo "mono server stopped"
                else
                        echo "mono server is not running"
                fi
        ;;
esac

exit 0
File: /etc/init.d/php-fastcgi
#!/bin/sh

PHP_SCRIPT=/usr/bin/php-fastcgi
FASTCGI_USER=www-data
RETVAL=0
case "$1" in
    start)
      su - $FASTCGI_USER -c $PHP_SCRIPT
      RETVAL=$?
  ;;
    stop)
      killall -9 php5-cgi
      RETVAL=$?
  ;;
    restart)
      killall -9 php5-cgi
      su - $FASTCGI_USER -c $PHP_SCRIPT
      RETVAL=$?
  ;;
    *)
      echo "Usage: php-fastcgi {start|stop|restart}"
      exit 1
  ;;
esac      
exit $RETVAL
File: /usr/bin/php-fastcgi
#!/bin/sh
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9001 -C 6 -u www-data -f /usr/bin/php5-cgi

Start Server

Set file access permission:
chmod a+x /usr/bin/php-fastcgi

chmod 755 /etc/init.d/monoserver
update-rc.d monoserver defaults

chmod 755 /etc/init.d/php-fastcgi
update-rc.d php-fastcgi defaults
Start service:
/etc/init.d/nginx restart
/etc/init.d/monoserver restart
/etc/init.d/php-fastcgi restart

More Information

这篇log是事后依靠会议写的,不是当时的笔记,所以可能有不对的地方,还请高手指出。

Change Log

  • v1.0(2010-09-28): The first draft.

posted on 2010-09-28 17:38  Fisher.W  阅读(467)  评论(0编辑  收藏  举报