手机版
你好,游客 登录 注册
背景:
阅读新闻

PHP 5.4.10 + Nginx 1.0.12 + PostgreSQL 9.1.3 源码编译自动化部署第二版

[日期:2012-03-04] 来源:Linux社区  作者:dog250 [字体: ]

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 )的更新,自启动和规范化版本控制

  1. #!/bin/bash  
  2. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin  
  3. export PATH  
  4.   
  5. # Check if user is root  
  6. if [ $(id -u) != "0" ]; then  
  7.     echo "Error: You must be root to run this script, please use root to install lnpp"  
  8.     exit 1  
  9. fi  
  10.   
  11. clear  
  12. echo "========================================================================="  
  13. echo "lnpp install shell script for CentOS/RadHat Written by Qzi"  
  14. echo "creatred in 2012/2/13"  
  15. echo "last modified in 2012/3/3"  
  16. echo "========================================================================="  
  17. echo "========================================================================="  
  18. echo "PHP Version: 5.4.10"  
  19. echo "========================================================================="  
  20. echo "========================================================================="  
  21. echo "PostgreSQL Version: 9.1.3"  
  22. echo "========================================================================="  
  23. echo "========================================================================="  
  24. echo "nginx Version: 1.0.12"  
  25. echo "========================================================================="  
  26.   
  27.   
  28. # prepare for future  
  29. PHP_VERSION=php-5.4.0  
  30. PG_VERSION=postgresql-9.1.3  
  31. NGINX_VERSION=nginx-1.0.12  
  32.   
  33. LNPP_SRC_ROOT=$(pwd)  
  34. LNPP_ROOT=/tmp/lnpp/lnpp-0.04  
  35. PG_ROOT=$LNPP_ROOT/pgsql/$PG_VERSION  
  36. PHP_ROOT=$LNPP_ROOT/php/$PHP_VERSION  
  37. PHP_EXTRA_LIBS=$PHP_ROOT/3rdlibs  
  38. NGINX_ROOT=$LNPP_ROOT/nginx/$NGINX_VERSION  
  39.   
  40.   
  41. if [ -d $LNPP_ROOT ]; then  
  42.   echo "lnpp will install in $LNPP_ROOT"  
  43.   else  
  44.   echo "lnpp is creating the directory $LNPP_ROOT"  
  45.   mkdir -p $LNPP_ROOT  
  46. fi  
  47.   
  48. for filename in $(rpm -aq|grep php)  
  49. do  
  50.      yum erase $filename  
  51.      #yum erase $filename -y  
  52. done  
  53.   
  54. echo "========================================================================="  
  55. echo "install dependences"  
  56. echo "========================================================================="  
  57.   
  58. 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;  
  59. do yum -y install $packages; done  
  60.   
  61. echo "============================check files=================================="  
  62.   
  63. if [ -s $PHP_VERSION.tar.bz ]; then  
  64.   echo "$PHP_VERSION.tar.gz [found]"  
  65.   else  
  66.   echo "Error: $PHP_VERSION.tar.gz not found!!!download now......"  
  67.   wget -c http://cn2.php.net/get/$PHP_VERSION.tar.gz/from/cn.php.net/mirror   
  68. fi  
  69.   
  70. if [ -s libiconv-1.14.tar.gz ]; then  
  71.   echo "libiconv-1.14.tar.gz [found]"  
  72.   else  
  73.   echo "Error: libiconv-1.14.tar.gz not found!!!download now......"  
  74.   wget -c http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz  
  75. fi  
  76.   
  77. if [ -s pcre-8.21.tar.bz2 ]; then  
  78.   echo "pcre-8.21.tar.bz2 [found]"  
  79.   else  
  80.   echo "Error: pcre-8.21.tar.bz2 not found!!!download now......"  
  81.   wget http://downloads.sourceforge.net/project/pcre/pcre/8.21/pcre-8.21.tar.bz2  
  82. fi  
  83.   
  84. if [ -s $PG_VERSION.tar.gz ]; then  
  85.   echo "$PG_VERSION.tar.gz [found]"  
  86.   else  
  87.   echo "Error: $PG_VERSION.tar.gz not found!!!download now......"  
  88.   wget http://ftp.postgresql.org/pub/source/v9.1.3/$PG_VERSION.tar.gz # !!!!!!!!!!!!!!!!!!!!!!!!  
  89. fi  
  90.   
  91. if [ -s $NGINX_VERSION.tar.gz ]; then  
  92.   echo "$NGINX_VERSION.tar.gz [found]"  
  93.   else  
  94.   echo "Error: $NGINX_VERSION.tar.gz not found!!!download now......"  
  95.   wget http://nginx.org/download/$NGINX_VERSION.tar.gz  
  96. fi  
  97.   
  98. echo "============================check complete=================================="  
  99.   
  100. echo "============================postgresql install=================================="  
  101.   
  102. mkdir -p $PG_ROOT  
  103. tar -zxvf $PG_VERSION.tar.gz  
  104.   
  105. if [ $(id -nu) == "postgres" ]; then  
  106.   echo "user postgres is not found ... "  
  107.   else  
  108.   echo "creating the user called 'postgres'"  
  109.   su - -c "useradd -M postgres"  
  110. fi  
  111.   
  112. chown -R postgres:postgres $PG_VERSION  
  113. mkdir -p $PG_ROOT/etc   
  114. cd $PG_VERSION  
  115. make clean  
  116. ./configure --prefix=$PG_ROOT --sysconfdir=$PG_ROOT/etc  
  117. make  
  118. make install  
  119. mkdir -p $PG_ROOT/data  
  120. mkdir -p $PG_ROOT/logs  
  121. touch $PG_ROOT/logs/pgsql.log  
  122. chown postgres:postgres $PG_ROOT/data  
  123. su postgres -c "$PG_ROOT/bin/initdb -D $PG_ROOT/data && exit"  
  124.   
  125. echo "============================postgresql complete=================================="  
  126.   
  127. echo "============================php install=================================="  
  128.   
  129. cd $LNPP_SRC_ROOT  
  130. mkdir -p $PHP_EXTRA_LIBS  
  131.   
  132. tar -zxf libiconv-1.14.tar.gz2  
  133. cd libiconv-1.14  
  134. make clean  
  135. ./configure --prefix=$PHP_EXTRA_LIBS/libiconv-1.14/  
  136. make  
  137. make install  
  138. ls $PHP_EXTRA_LIBS/libiconv-1.14/  
  139. cd ../  
  140.   
  141. tar -jxf pcre-8.21.tar.bz2  
  142. cd pcre-8.21  
  143. make clean  
  144. ./configure --prefix=$PHP_EXTRA_LIBS/pcre-8.21/  
  145. make  
  146. make install  
  147. cd ../  
  148.   
  149. mkdir -p $PHP_ROOT   
  150. tar -zxvf $PHP_VERSION.tar.gz   
  151. cd $PHP_VERSION  
  152. make clean  
  153. ./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  
  154. make ZEND_EXTRA_LIBS = -liconv  
  155. make install  
  156. cp ./php.ini-production $PHP_ROOT/etc/php.ini  
  157. cp $PHP_ROOT/etc/php-fpm.conf.default $PHP_ROOT/etc/php-fpm.conf  
  158. cd ../  
  159.   
  160. echo "============================php complete================================="  
  161.   
  162.   
  163. echo "============================nginx install================================="  
  164.   
  165. mkdir -p $NGINX_ROOT  
  166. tar -zxvf $NGINX_VERSION.tar.gz  
  167. cd $NGINX_VERSION   
  168.    
  169. if [ $(id -nu) == "nginx" ]; then  
  170.   echo "user nginx is not found ... "  
  171.   else  
  172.   echo "creating the user called 'nginx'"  
  173.   su - -c "useradd -M nginx"  
  174. fi  
  175.   
  176. make clean  
  177. ./configure --user=nginx --group=nginx --prefix=$NGINX_ROOT --with-http_ssl_module --with-pcre=$LNPP_SRC_ROOT/pcre-8.21  
  178. make  
  179. make install  
  180. cd ../  
  181.   
  182. echo "============================nginx complete================================="  
  183.   
  184. echo "============================starting lnpp================================="  
  185.   
  186. PHP=$PHP_ROOT/sbin/php-fpm  
  187. NGINX=$NGINX_ROOT/sbin/nginx  
  188. PGDAEMON=$PG_ROOT/bin/postmaster  
  189. PGCTL=$PG_ROOT/bin/pg_ctl  
  190. PGUSER=postgres  
  191. PGDATA=$PG_ROOT/data  
  192. PGLOG=$PG_ROOT/logs/pgsql.log  
  193.   
  194. stop()  
  195. {  
  196.     echo "-------------stop php----------------"  
  197.     ps -e | grep $(basename $PHP) | {  
  198.       while read pid tty time cmd;  
  199.       do  
  200.         echo "killing $pid ==> $cmd"  
  201.         kill -9 $pid  
  202.       done  
  203.     }  
  204.   
  205.     echo "-------------stop nginx--------------"  
  206.     ps -e | grep $(basename $NGINX) | {  
  207.       while read pid tty time cmd;  
  208.       do  
  209.         echo "killing $pid ==> $cmd"  
  210.         kill -9 $pid  
  211.       done  
  212.     }  
  213.   
  214.    # killproc $NGINX -QUIT  
  215.   
  216.     echo "-------------stop pgsql--------------"  
  217. #    su  $PGUSER -c "$PGCTL stop -D '$PGDATA' -m fast"  
  218.     ps -e | grep $(basename $PGDAEMON) | {  
  219.       while read pid tty time cmd;  
  220.       do  
  221.         echo "killing $pid ==> $cmd"  
  222.         kill -9 $pid  
  223.       done  
  224.     }  
  225.    
  226.    echo "-------------stop pgsql--------------"  
  227. }  
  228.   
  229. start()  
  230. {  
  231.     echo "-------------start php---------------"  
  232.     $PHP_ROOT/sbin/php-fpm  
  233.     echo "-------------start success---------------"  
  234.     echo "-------------start nginx-------------"  
  235.     $NGINX_ROOT/sbin/nginx  
  236.     echo "-------------start success---------------"  
  237.     echo "-------------start pgsql---------------"  
  238.     su  $PGUSER -c "$PGDAEMON -D '$PGDATA' &" >>$PGLOG 2>&1  
  239.     echo "-------------start success---------------"  
  240. }  
  241.   
  242. stop  
  243. start  
  244.   
  245. echo "============================lnpp started================================="  
  246. 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 源码编译自动化部署第二版/

linux
相关资讯       Nginx  PostgreSQL 
本文评论   查看全部评论 (1)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 1 楼
* Qzi 发表于 2012/3/5 0:39:24
linuxidc 你转载的话也要保留点基本道德,出处,作者什么都改掉,受不了。。。