php 5.4.10 + nginx1.0.15 + PostgreSQL 9.1.3 源碼編譯自動化部署第三版

來源:互聯網
上載者:User

舊版在這裡

php 5.4.10 + nginx1.0.12 + PostgreSQL 9.1.3 源碼編譯自動化部署第二版

http://blog.csdn.net/qzier_go/article/details/7316510

此次加入啟動指令碼,php 加入了 gd,mbstring,curl,ssl,mhash,mcrypt 等等 ,nginx 升級到 1.0.15,從版本開始直接移入google倉庫 ...

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.