php 5.3.10 + nginx1.0.12 + PostgreSQL 9.1.2 源码编译自动化部署第一版

14 篇文章 0 订阅
6 篇文章 0 订阅

继续总结整理学习shell script 同时提高部署效率,这次带来 php 5.3.10 + nginx1.0.12 + PostgreSQL 9.1.2 源码编译自动化部署第一版,lnpp可以自由选择安装地址,同时感谢盟哥和卿哥带来的一些灵感.


详细地分解地址如下:

php 5.3.10 + nginx1.0.12 + PostgreSQL 9.1.2 源码编译

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


自动部署脚本如下(其后有注解)

#!/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/2/18"
echo "========================================================================="
echo "========================================================================="
echo "PHP Version: 5.3.10"
echo "========================================================================="
echo "========================================================================="
echo "PostgreSQL Version: 9.1.2"
echo "========================================================================="
echo "========================================================================="
echo "nginx Version: 1.0.12"
echo "========================================================================="


LNPP_SRC_ROOT=$(pwd)
LNPP_ROOT=/tmp/lnpp
PG_ROOT=$LNPP_ROOT/pgsql
PHP_ROOT=$LNPP_ROOT/php
PHP_EXTRA_LIBS=$PHP_ROOT/3rdlibs
NGINX_ROOT=$LNPP_ROOT/nginx


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


rpm -qa|grep php
rpm -e php


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;
do yum -y install $packages; done


echo "============================check files=================================="


if [ -s php-5.3.10.tar.gz ]; then
  echo "php-5.3.10.tar.gz [found]"
  else
  echo "Error: php-5.3.10.tar.gz not found!!!download now......"
  wget -c wget http://www.php.net/get/php-5.3.10.tar.gz/from/us.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 postgresql-9.1.2.tar.gz ]; then
  echo "postgresql-9.1.2.tar.gz [found]"
  else
  echo "Error: postgresql-9.1.2.tar.gz not found!!!download now......"
  wget http://ftp.postgresql.org/pub/source/v9.1.2/postgresql-9.1.2.tar.gz
fi


if [ -s nginx-1.0.12.tar.gz ]; then
  echo "nginx-1.0.12.tar.gz [found]"
  else
  echo "Error: nginx-1.0.12.tar.gz not found!!!download now......"
  wget http://nginx.org/download/nginx-1.0.12.tar.gz
fi


echo "============================check complete=================================="


echo "============================postgresql install=================================="


mkdir -p $PG_ROOT
tar -zxvf postgresql-9.1.2.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 postgresql-9.1.2
mkdir -p /opt/pgsql/etc
cd postgresql-9.1.2/
./configure --prefix=$PG_ROOT --sysconfdir=$PG_ROOT/etc
make && make install
mkdir /opt/pgsql/logs/
chown postgres:postgres /opt/pgsql/logs/
mkdir -p $PG_ROOT/data
chown postgres:postgres $PG_ROOT/data
su postgres
$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
./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
./configure --prefix=$PHP_EXTRA_LIBS/pcre-8.21/
make && make install
cd ../


mkdir -p $PHP_ROOT 
tar -zxvf php-5.3.10.tar.gz
cd php-5.3.10
./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
make ZEND_EXTRA_LIBS = -liconv
make install
cd ../


echo "============================php complete================================="




echo "============================nginx install================================="


mkdir -p $NGINX_ROOT
tar -zxvf nginx-1.0.12.tar.gz
cd nginx-1.0.12
 
if [ $(id -nu) == "nginx" ]; then
  echo "user nginx is not found ... "
  else
  echo "creating the user called 'nginx'"
  su - -c "useradd -M nginx"
fi


./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================================="


exit 0

1.修改第28行 :LNPP_ROOT=/tmp/lnpp,可以改变安装地址;
2.pg并没有初始化data,由用户自己控制
3.其中会自动创建两个用户名:nginx 和 postgres


产品环境部署不适合我写的这个脚本,此脚本更多的还是用于开发调整,所以目录部署没严格安装FHS来部署,脚本布局思路贯穿着统一在单目录下和易于备份的思想。


lnpp.sh 在这里

https://code.google.com/p/lnpp/


建立了一个php群,欢迎一起学习(QQ群号:213572677)

Reference:

https://writer.zoho.com/public/6b6a49b6dcbb8205336873dd09e1b3517a451cd1e1176acb29ac6183f6c6c0976db04614eed231e5

http://lnmp.org/

http://www.pathname.com/fhs/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值