PHP 5.3.10 + Nginx 1.0.12 + PostgreSQL 9.1.2 源码编译自动化部署第一版 http://www.linuxidc.com/Linux/2012-02/54589.htm
PHP 5.3.10 + Nginx 1.0.12 + PostgreSQL 9.1.2 源码编译自动化部署第一版.续 http://www.linuxidc.com/Linux/2012-02/54590.htm
这次带来PHP 5.4.10(见http://www.linuxidc.com/Linux/2012-03/55694.htm)和PostgreSQL 9.1.3(见 http://www.linuxidc.com/Linux/2012-03/55828.htm )的更新,自启动和规范化版本控制
- #!/bin/bash
- PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
- export PATH
- # Check if user is root
- if [ $(id -u) != "0" ]; then
- echo "Error: You must be root to run this script, please use root to install lnpp"
- exit 1
- fi
- clear
- echo "========================================================================="
- echo "lnpp install shell script for CentOS/RadHat Written by Qzi"
- echo "creatred in 2012/2/13"
- echo "last modified in 2012/3/3"
- echo "========================================================================="
- echo "========================================================================="
- echo "PHP Version: 5.4.10"
- echo "========================================================================="
- echo "========================================================================="
- echo "PostgreSQL Version: 9.1.3"
- echo "========================================================================="
- echo "========================================================================="
- echo "nginx Version: 1.0.12"
- echo "========================================================================="
- # prepare for future
- PHP_VERSION=php-5.4.0
- PG_VERSION=postgresql-9.1.3
- NGINX_VERSION=nginx-1.0.12
- LNPP_SRC_ROOT=$(pwd)
- LNPP_ROOT=/tmp/lnpp/lnpp-0.04
- PG_ROOT=$LNPP_ROOT/pgsql/$PG_VERSION
- PHP_ROOT=$LNPP_ROOT/php/$PHP_VERSION
- PHP_EXTRA_LIBS=$PHP_ROOT/3rdlibs
- NGINX_ROOT=$LNPP_ROOT/nginx/$NGINX_VERSION
- if [ -d $LNPP_ROOT ]; then
- echo "lnpp will install in $LNPP_ROOT"
- else
- echo "lnpp is creating the directory $LNPP_ROOT"
- mkdir -p $LNPP_ROOT
- fi
- for filename in $(rpm -aq|grep php)
- do
- yum erase $filename
- #yum erase $filename -y
- done
- echo "========================================================================="
- echo "install dependences"
- echo "========================================================================="
- for packages in patch make gcc gcc-c++ gcc-g77 flex 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 yum;
- do yum -y install $packages; done
- echo "============================check files=================================="
- if [ -s $PHP_VERSION.tar.bz ]; 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/cn.php.net/mirror
- fi
- if [ -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.gz
- fi
- if [ -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.bz2
- fi
- if [ -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 # !!!!!!!!!!!!!!!!!!!!!!!!
- fi
- if [ -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.gz
- fi
- echo "============================check complete=================================="
- echo "============================postgresql install=================================="
- mkdir -p $PG_ROOT
- tar -zxvf $PG_VERSION.tar.gz
- if [ $(id -nu) == "postgres" ]; then
- echo "user postgres is not found ... "
- else
- echo "creating the user called 'postgres'"
- su - -c "useradd -M postgres"
- fi
- chown -R postgres:postgres $PG_VERSION
- mkdir -p $PG_ROOT/etc
- cd $PG_VERSION
- make clean
- ./configure --prefix=$PG_ROOT --sysconfdir=$PG_ROOT/etc
- make
- make install
- mkdir -p $PG_ROOT/data
- mkdir -p $PG_ROOT/logs
- touch $PG_ROOT/logs/pgsql.log
- chown postgres:postgres $PG_ROOT/data
- su postgres -c "$PG_ROOT/bin/initdb -D $PG_ROOT/data && exit"
- echo "============================postgresql complete=================================="
- echo "============================php install=================================="
- cd $LNPP_SRC_ROOT
- mkdir -p $PHP_EXTRA_LIBS
- tar -zxf libiconv-1.14.tar.gz2
- cd libiconv-1.14
- make clean
- ./configure --prefix=$PHP_EXTRA_LIBS/libiconv-1.14/
- make
- make install
- ls $PHP_EXTRA_LIBS/libiconv-1.14/
- cd ../
- tar -jxf pcre-8.21.tar.bz2
- cd pcre-8.21
- make clean
- ./configure --prefix=$PHP_EXTRA_LIBS/pcre-8.21/
- make
- make install
- cd ../
- mkdir -p $PHP_ROOT
- tar -zxvf $PHP_VERSION.tar.gz
- cd $PHP_VERSION
- make clean
- ./configure --prefix=$PHP_ROOT --with-config-file-path=$PHP_ROOT/etc/ --with-iconv-dir=$PHP_EXTRA_LIBS/libiconv-1.14 --with-pcre-dir=$PHP_EXTRA_LIBS/pcre-8.21 --with-pgsql=$PG_ROOT --enable-fpm --with-pear
- make ZEND_EXTRA_LIBS = -liconv
- make install
- cp ./php.ini-production $PHP_ROOT/etc/php.ini
- cp $PHP_ROOT/etc/php-fpm.conf.default $PHP_ROOT/etc/php-fpm.conf
- cd ../
- echo "============================php complete================================="
- echo "============================nginx install================================="
- mkdir -p $NGINX_ROOT
- tar -zxvf $NGINX_VERSION.tar.gz
- cd $NGINX_VERSION
- if [ $(id -nu) == "nginx" ]; then
- echo "user nginx is not found ... "
- else
- echo "creating the user called 'nginx'"
- su - -c "useradd -M nginx"
- fi
- make clean
- ./configure --user=nginx --group=nginx --prefix=$NGINX_ROOT --with-http_ssl_module --with-pcre=$LNPP_SRC_ROOT/pcre-8.21
- make
- make install
- cd ../
- echo "============================nginx complete================================="
- echo "============================starting lnpp================================="
- PHP=$PHP_ROOT/sbin/php-fpm
- NGINX=$NGINX_ROOT/sbin/nginx
- PGDAEMON=$PG_ROOT/bin/postmaster
- PGCTL=$PG_ROOT/bin/pg_ctl
- PGUSER=postgres
- PGDATA=$PG_ROOT/data
- PGLOG=$PG_ROOT/logs/pgsql.log
- stop()
- {
- 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_ROOT/sbin/php-fpm
- echo "-------------start success---------------"
- echo "-------------start nginx-------------"
- $NGINX_ROOT/sbin/nginx
- echo "-------------start success---------------"
- echo "-------------start pgsql---------------"
- su $PGUSER -c "$PGDAEMON -D '$PGDATA' &" >>$PGLOG 2>&1
- echo "-------------start success---------------"
- }
- stop
- start
- echo "============================lnpp started================================="
- exit 0
lnpp-0.04.sh 在这里
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /2012年资料/3月/4日/PHP 5.4.10 + Nginx 1.0.12 + PostgreSQL 9.1.3 源码编译自动化部署第二版/
