The old version is here
PHP 5.4.10 + nginx1.0.12 + PostgreSQL 9.1.3 source code compilation automated deployment Second Edition
Http://blog.csdn.net/qzier_go/article/details/7316510
This time, we added the startup script. php added GD, mbstring, curl, SSL, mhash, mcrypt, etc. nginx was upgraded to 1.0.15, and the version was directly migrated to the Google Repository from the beginning...
Http://code.google.com/p/lnpp/source/browse/lnpp-0.05.sh
Http://code.google.com/p/lnpp/source/browse/lnpp_start-0.05
Desc:
Lnmpp = Linux + nginx + PHP + PostgreSQL
Detail:
Php_version = php-5.4.0
Pg_version = postgresql-9.1.3
Nginx_version = nginx-1.0.15
Usage:
# Sh lnpp. Sh
#./Lnpp_start {START | stop | reload}
Contact:
Email: I @qzier.com
QQ group: 213572677
Google group: http://groups.google.com/group/lnpp
#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATH# Check if user is rootif [ $(id -u) != "0" ]; then echo "Error: You must be root to run this script, please use root to install lnpp" exit 1ficlearecho "========================================================================="echo "lnpp install shell script for CentOS/RadHat Written by Qzi"echo "creatred in 2012/2/13"echo "last modified in 2012/4/13"echo "Email:i@qzier.com"echo "========================================================================="echo "========================================================================="echo "PHP Version: 5.4.0"echo "========================================================================="echo "========================================================================="echo "PostgreSQL Version: 9.1.3"echo "========================================================================="echo "========================================================================="echo "nginx Version: 1.0.15"echo "========================================================================="# prepare for futurePHP_VERSION=php-5.4.0PG_VERSION=postgresql-9.1.3NGINX_VERSION=nginx-1.0.15LNPP_SRC_ROOT=$(pwd)LNPP_ROOT=/tmp/lnpp/lnpp-0.05PG_ROOT=$LNPP_ROOT/pgsql/$PG_VERSIONPHP_ROOT=$LNPP_ROOT/php/$PHP_VERSIONPHP_EXTRA_LIBS=$PHP_ROOT/3rdlibsNGINX_ROOT=$LNPP_ROOT/nginx/$NGINX_VERSIONif [ -d $LNPP_ROOT ]; then echo "lnpp will install in $LNPP_ROOT" else echo "lnpp is creating the directory $LNPP_ROOT" mkdir -p $LNPP_ROOTfifor filename in $(rpm -aq|grep flex)do yum erase $filename #yum erase $filename -ydonefor filename in $(rpm -aq|grep php)do yum erase $filename #yum erase $filename -ydoneecho "========================================================================="echo "install dependences"echo "========================================================================="for packages in patch make gcc gcc-c++ gcc-g77 bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel vim-minimal nano fonts-chinese gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip autoconf re2c;do yum -y install $packages; doneecho "============================check files=================================="if [ -s $PHP_VERSION.tar.gz ]; then echo "$PHP_VERSION.tar.gz [found]" else echo "Error: $PHP_VERSION.tar.gz not found!!!download now......"# wget -c http://cn2.php.net/get/$PHP_VERSION.tar.gz/from/jp.php.net/mirror wget -c http://cn2.php.net/get/$PHP_VERSION.tar.gz/from/cn.php.net/mirror fiif [ -s libiconv-1.14.tar.gz ]; then echo "libiconv-1.14.tar.gz [found]" else echo "Error: libiconv-1.14.tar.gz not found!!!download now......" wget -c http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gzfiif [ -s pcre-8.21.tar.bz2 ]; then echo "pcre-8.21.tar.bz2 [found]" else echo "Error: pcre-8.21.tar.bz2 not found!!!download now......" wget http://downloads.sourceforge.net/project/pcre/pcre/8.21/pcre-8.21.tar.bz2fiif [ -s $PG_VERSION.tar.gz ]; then echo "$PG_VERSION.tar.gz [found]" else echo "Error: $PG_VERSION.tar.gz not found!!!download now......" wget http://ftp.postgresql.org/pub/source/v9.1.3/$PG_VERSION.tar.gz # !!!!!!!!!!!!!!!!!!!!!!!!fiif [ -s $NGINX_VERSION.tar.gz ]; then echo "$NGINX_VERSION.tar.gz [found]" else echo "Error: $NGINX_VERSION.tar.gz not found!!!download now......" wget http://nginx.org/download/$NGINX_VERSION.tar.gzfiif [ -s flex-2.5.35.tar.gz ]; then echo "flex-2.5.35.tar.gz [found]" else echo "Error: flex-2.5.35.tar.gz not found!!!download now......" wget http://sourceforge.net/projects/flex/files/flex/flex-2.5.35/flex-2.5.35.tar.gzfiif [ -s mcrypt-2.6.8.tar.gz ]; then echo "mcrypt-2.6.8.tar.gz [found]"else echo "Error: mcrypt-2.6.8.tar.gz not found!!!download now......" wget http://sourceforge.net/projects/mcrypt/files/latest/download?source=filesfiif [ -s mhash-0.9.9.9.tar.bz2 ]; then echo "mhash-0.9.9.9.tar.bz2 [found]"else echo "Error: mhash-0.9.9.9.tar.bz2 not found!!!download now......" wget http://sourceforge.net/projects/mhash/files/latest/download?source=filesfiecho "============================check complete=================================="echo "============================postgresql install=================================="#install flextar flex-2.5.35.tar.gzmake cleanmake && make installmkdir -p $PG_ROOTtar -zxvf $PG_VERSION.tar.gzif [ $(id -nu postgres) == "postgres" ]; then echo "user postgres is found ... " else echo "creating the user called 'postgres'" su - -c "useradd -M postgres"fichown -R postgres:postgres $PG_VERSIONmkdir -p $PG_ROOT/etc cd $PG_VERSIONmake clean./configure --prefix=$PG_ROOT --sysconfdir=$PG_ROOT/etcmakemake installif [ -d $PG_ROOT/data ]; then mv $PG_ROOT/data $PG_ROOT/data.bak mkdir -p $PG_ROOT/data else mkdir -p $PG_ROOT/datafimkdir -p $PG_ROOT/logstouch $PG_ROOT/logs/pgsql.logchown postgres:postgres $PG_ROOT/datasu postgres -c "$PG_ROOT/bin/initdb -D $PG_ROOT/data && exit"echo "============================postgresql complete=================================="echo "============================php install=================================="cd $LNPP_SRC_ROOTmkdir -p $PHP_EXTRA_LIBStar -zxf libiconv-1.14.tar.gzcd libiconv-1.14make clean./configure --prefix=$PHP_EXTRA_LIBS/libiconv-1.14/makemake installls $PHP_EXTRA_LIBS/libiconv-1.14/cd ../tar -jxf mhash-0.9.9.9.tar.bz2cd mhash-0.9.9.9make clean./configure --prefix=$PHP_EXTRA_LIBS/mhash-0.9.9.9makemake installls $PHP_EXTRA_LIBS/mhash-0.9.9.9cd ../tar -zxvf mcrypt-2.6.8.tar.gzcd mcrypt-2.6.8make clean./configure --prefix=$PHP_EXTRA_LIBS/mcrypt-2.6.8makemake installcd ../tar -jxf pcre-8.21.tar.bz2cd pcre-8.21make clean./configure --prefix=$PHP_EXTRA_LIBS/pcre-8.21/makemake installcd ../mkdir -p $PHP_ROOT tar -zxvf $PHP_VERSION.tar.gz cd $PHP_VERSIONmake clean#./configure --prefix=$PHP_ROOT --with-config-file-path=$PHP_ROOT/etc/ --with-iconv=$PHP_EXTRA_LIBS/libiconv-1.14 --with-pcre-dir=$PHP_EXTRA_LIBS/pcre-8.21 --with-pgsql=$PG_ROOT --enable-fpm --with-pear --with-gd --enable-gd-native-ttf --with-freetype --with-zlib --enable-mbstring --with-curl --with-openssl./configure --prefix=$PHP_ROOT --with-config-file-path=$PHP_ROOT/etc/ --with-iconv=$PHP_EXTRA_LIBS/libiconv-1.14 --with-pcre- dir=$PHP_EXTRA_LIBS/pcre-8.21 --with-pgsql=$PG_ROOT --with-pdo-pgsql=$PG_ROOT --with-pdo-mysql=$MYSQL_ROOT --enable-fpm --with-pear --with-gd --enable-gd-native-ttf --with-freetype --with-zlib --enable-mbstring --with-curl --with-openssl --with-mhash=$PHP_EXTRA_LIBS/mhash-0.9.9.9 --with-mcrypt=$PHP_EXTRA_LIBS/mcrypt-2.6.8make ##make ZEND_EXTRA_LIBS ='-liconv'make installcp ./php.ini-production $PHP_ROOT/etc/php.inicp $PHP_ROOT/etc/php-fpm.conf.default $PHP_ROOT/etc/php-fpm.confcd ../echo "============================php complete================================="echo "============================nginx install================================="mkdir -p $NGINX_ROOTtar -zxvf $NGINX_VERSION.tar.gzcd $NGINX_VERSION if [ $(id -nu nginx) == "nginx" ]; then echo "user nginx is found ... " else echo "creating the user called 'nginx'" su - -c "useradd -M nginx"fimake clean./configure --user=nginx --group=nginx --prefix=$NGINX_ROOT --with-http_ssl_module --with-pcre=$LNPP_SRC_ROOT/pcre-8.21makemake installcd ../cp $NGINX_ROOT/conf/nginx.conf $NGINX_ROOT/conf/nginx.conf.bak2cat $NGINX_ROOT/conf/nginx.conf | sed -e '65,72s/^ #/ /g'| \sed -e 's/\/scripts$fastcgi_script_name;/$document_root$fastcgi_script_name;/g' > $NGINX_ROOT/conf/nginx.conf.bakcp -f $NGINX_ROOT/conf/nginx.conf.bak $NGINX_ROOT/conf/nginx.confecho "============================nginx complete================================="echo "============================phpinfo in /nginx/html================================="#phpinfocat >$NGINX_ROOT/html/phpinfo.php<<eof<?phpphpinfo();?>eofecho "phpinfo.php is creating ..." echo "============================phpinfo.php writed================================="echo "============================starting lnpp================================="PHP=$PHP_ROOT/sbin/php-fpmNGINX=$NGINX_ROOT/sbin/nginxPGDAEMON=$PG_ROOT/bin/postmasterPGCTL=$PG_ROOT/bin/pg_ctlPGUSER=postgresPGDATA=$PG_ROOT/dataPGLOG=$PG_ROOT/logs/pgsql.logstop(){ echo "-------------stop php----------------" ps -e | grep $(basename $PHP) | { while read pid tty time cmd; do echo "killing $pid ==> $cmd" kill -9 $pid done } echo "-------------stop nginx--------------" ps -e | grep $(basename $NGINX) | { while read pid tty time cmd; do echo "killing $pid ==> $cmd" kill -9 $pid done } # killproc $NGINX -QUIT echo "-------------stop pgsql--------------"# su $PGUSER -c "$PGCTL stop -D '$PGDATA' -m fast" ps -e | grep $(basename $PGDAEMON) | { while read pid tty time cmd; do echo "killing $pid ==> $cmd" kill -9 $pid done } echo "-------------stop pgsql--------------"}start(){ echo "-------------start php---------------" $PHP echo "-------------php started ---------------" echo "-------------start nginx-------------" $NGINX echo "-------------nginx started---------------" echo "-------------start pgsql---------------" su $PGUSER -c "$PGDAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 echo "-------------pgsql started---------------"}stopstartsleep 10 ps -C php-fpm ps -C nginx ps -C postmasterecho "============================lnpp started================================="exit 0