首页 电脑 电脑学堂 查看内容

自动安装lamp脚本

2011-10-25 23:12 528 0

摘要:   最近要用PHP作一些项目,所有首先需要安装配置LAMP环境,手动安装比较繁琐,但还是成功安装了,现在根据手动安装的过程书写一个自动安装LAMP的shell脚本,已在虚拟机中测试成功。  自动安装L...
关键词: BUILDDIR install logfile echo conf make pkg configure pkgsdir 成功

  最近要用PHP作一些项目,所有首先需要安装配置LAMP环境,手动安装比较繁琐,但还是成功安装了,现在根据手动安装的过程书写一个自动安装LAMP的shell脚本,已在虚拟机中测试成功。  自动安装LAMP的脚本文件列表如下:  pkgs/ :用于存放软件包的目录  conf/ :用于存放配置文件的目录  conf/auto_lamp.conf:主要的配置文件,包括配置安装到的目录,mysql用户名等  conf/extraconf.conf:包含每个安装的软件包的configure配置选项的配置文件  conf/pkgs.conf:软件包版本配置文件  auto_lamp.sh:主要的脚本文件  (1).auto_lamp.sh内容:  #! /bin/bash  #  #  export curdir=$(pwd)  export confdir=${curdir}/conf  export pkgsdir=${curdir}/pkgs  export libdir=${curdir}/lib  export logfile=${curdir}/log.autolamp  export PATH=${PREFIX}/autoconf/bin:$PATH  #引入配置文件  for everyconf in $(ls ${confdir}/*.conf);do  . $everyconf  done  if [ ! -e $BUILDDIR ];then  mkdir $BUILDDIR  else  if [ ! -d $BUILDDIR ];then  export BUILDDIR=${BUILDDIR}.$$  mkdir $BUILDDIR  fi  fi  #函数定义  #解包函数  untar()  {  local pkg="$1"  local where="$2"  tar xvf $pkg -C $where  }  #软件包安装函数  zlib_install()  {  untar ${pkgsdir}/$ZLIB $BUILDDIR  cd ${BUILDDIR}/$ZLIB_PKG  ./configure ${ZLIB_EXTRA_CONF}  make && make install  if [ $? == 0 ];then  echo -e "成功安装ZLIB "》$logfile  else  echo -e "安装ZLIB失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${ZLIB_PKG}  }  libjpeg_install()  {  untar ${pkgsdir}/$LIBJPEG $BUILDDIR  cd ${BUILDDIR}/$LIBJPEG_PKG  ./configure ${LIBJPEG_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装libjpeg "》$logfile  else  echo -e "安装libjpeg失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${LIBJPEG_PKG}  }  freetype_install()  {  untar ${pkgsdir}/$FREETYPE $BUILDDIR  cd ${BUILDDIR}/$FREETYPE_PKG  ./configure ${FREETYPE_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装freetype "》$logfile  else  echo -e "安装freetype失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${FREETYPE_PKG}  }  libpng_install()  {  untar ${pkgsdir}/${LIBPNG} $BUILDDIR  cd ${BUILDDIR}/$LIBPNG_PKG  ./configure ${LIBPNG_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装libpng "》$logfile  else  echo -e "安装libpng失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${LIBPNG_PKG}  }  expat_install()  {  untar ${pkgsdir}/${EXPAT} $BUILDDIR  cd ${BUILDDIR}/$EXPAT_PKG  ./configure ${EXPAT_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装expat "》$logfile  else  echo -e "安装expat失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${EXPAT_PKG}  }  libiconv_install()  {  untar ${pkgsdir}/${LIBICONV} $BUILDDIR  cd ${BUILDDIR}/$LIBICONV_PKG  ./configure ${LIBICONV_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装libiconv "》$logfile  else  echo -e "安装libiconv失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${LIBICONV_PKG}  }  autoconf_install()  {  untar ${pkgsdir}/${AUTOCONF} $BUILDDIR  cd ${BUILDDIR}/$AUTOCONF_PKG  ./configure ${AUTOCONF_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装autoconf "》$logfile  else  echo -e "安装autoconf失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${AUTOCONF_PKG}  }  gettext_install()  {        untar ${pkgsdir}/${GETTEXT} $BUILDDIR  cd ${BUILDDIR}/${GETTEXT_PKG}  ./configure ${GETTEXT_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装gettext "》$logfile  else  echo -e "安装gettext失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${GETTEXT_PKG}  echo "${PREFIX}/gettext/lib"》/etc/ld.so.conf  ldconfig  }  gd_install()  {  untar ${pkgsdir}/${GD} $BUILDDIR  cd ${BUILDDIR}/$GD_PKG  ./configure ${GD_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装gd "》$logfile  else  echo -e "安装gd失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${GD_PKG}  }  libxml_install()  {  untar ${pkgsdir}/${LIBXML} $BUILDDIR  cd ${BUILDDIR}/${LIBXML_PKG}  ./configure ${LIBXML_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装libxml "》$logfile  else  echo -e "安装libxml失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${LIBXML_PKG}  }  libmcrypt_install()  {  untar ${pkgsdir}/${LIBMCRYPT} $BUILDDIR  cd ${BUILDDIR}/${LIBMCRYPT_PKG}  ./configure ${LIBMCRYPT_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装libmcrypt "》$logfile  else  echo -e "安装libmcrypt失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${LIBMCRYPT_PKG}  }  cronolog_install()  {  untar ${pkgsdir}/${CRONOLOG} $BUILDDIR  cd ${BUILDDIR}/${CRONOLOG_PKG}  ./configure ${CRONOLOG_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装cronolog "》$logfile  else  echo -e "安装cronolog失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${CRONOLOG_PKG}  }  openssl_install()  {  untar ${pkgsdir}/${OPENSSL} $BUILDDIR  cd ${BUILDDIR}/${OPENSSL_PKG}  ./config ${OPENSSL_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装openssl "》$logfile  else  echo -e "安装openssl失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${OPENSSL_PKG}  echo "${PREFIX}/openssl/lib"》/etc/ld.so.conf  ldconfig  }  openssh_install()  {  untar ${pkgsdir}/${OPENSSH} $BUILDDIR  cd ${BUILDDIR}/${OPENSSH_PKG}  ./configure ${OPENSSH_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装openssh "》$logfile  else  echo -e "安装openssh失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${OPENSSH_PKG}  }  pcre_install()  {  untar ${pkgsdir}/${PCRE} $BUILDDIR  cd ${BUILDDIR}/${PCRE_PKG}  ./configure ${PCRE_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装pcre "》$logfile  else  echo -e "安装pcre失败 " 》 $logfile  fi  rm -rf ${BUILDDIR}/${PCRE_PKG}  }  mysql_install()  {  untar ${pkgsdir}/${MYSQL} $BUILDDIR  cd ${BUILDDIR}/${MYSQL_PKG}  groupadd ${MYSQL_GROUP}  useradd -g ${MYSQL_GROUP} -M ${MYSQL_USER}  ./configure ${MYSQL_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装mysql "》$logfile  else  echo -e "安装mysql失败 " 》 $logfile  fi  cp support-files/my-medium.cnf /etc/my.cnf  cp -v ${PREFIX}/mysql/share/mysql/mysql.server /etc/init.d/mysqld  chmod +x /etc/init.d/mysqld  cd ${PREFIX}/mysql  bin/mysql_install_db --user=${MYSQL_USER}  chown -R root  .  chown -R ${MYSQL_USER} var  chgrp -R ${MYSQL_GROUP} .  bin/mysqld_safe --user=${MYSQL_USER} &  bin/mysqladmin -u root password "$MYSQL_PASSWORD"  rm -rf ${BUILDDIR}/${MYSQL_PKG}  }  apache_install()  {  untar ${pkgsdir}/${APACHE} $BUILDDIR  cd ${BUILDDIR}/${APACHE_PKG}  ./configure ${APACHE_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装apache "》$logfile  else  echo -e "安装apachel失败 " 》 $logfile  fi  cp -v ${PREFIX}/apache/bin/apachectl /etc/init.d/httpd  chmod -R 755 ${PREFIX}/apache/htdocs  rm -rf ${BUILDDIR}/${APACHE_PKG}  }  php_install()  {  untar ${pkgsdir}/${PHP} $BUILDDIR  cd ${BUILDDIR}/${PHP_PKG}  ./buildconf --force  ./configure ${PHP_EXTRA_CONF} && make && make install  if [ $? == 0 ];then  echo -e "成功安装php "》$logfile  else  echo -e "安装php失败 " 》 $logfile  fi  mkdir -p ${PREFIX}/php/etc  cp php.ini-development ${PREFIX}/php/etc/php.ini  echo "Addtype application/x-httpd-php .php .phtml" 》 ${PREFIX}/apache/conf/httpd.conf  rm -rf ${BUILDDIR}/${PHP_PKG}  }  set_selinux()  {  local choice=${1:-allow}  case $choice in  shutdown)  #关闭SELINUX  sed -i -e "s@SELINUX=enforcing@SELINUX=disabled@" /etc/selinux/config  ;;  *)  setenforce 0  chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t ${PREFIX}/apache/modules/libphp5.so  setenforce 1  ;;  esac  }  conf_apache()  {  #配置 httpd.conf  sed -i -e "s|ServerAdmin [email protected]|ServerAdmin $(hostname)|" ${PREFIX}/apache/conf/httpd.conf  sed -i -e "s|ServerName www.example.com:80|ServerName localhost:80|" ${PREFIX}/apache/conf/httpd.conf  sed -i -e "s|DirectoryIndex|DirectoryIndex index.php|" ${PREFIX}/apache/conf/httpd.conf  service httpd restart  }  test_success()  {  #测试  service httpd start  service mysqld start  echo "<?php phpinfo(); ?>" >${PREFIX}/apache/htdocs/index.php  chmod 755 ${PREFIX}/apache/htdocs/index.php  }  phpmyadmin_install()  {  untar ${pkgsdir}/$PHPMYADMIN ${PREFIX}  mv ${PREFIX}/${PHPMYADMIN_PKG} ${PREFIX}/apache/htdocs/phpmyadmin  cd ${PREFIX}/apache/htdocs/phpmyadmin  mv config.sample.inc.php config.inc.php  }  zlib_install && libjpeg_install && freetype_install && libpng_install && expat_install && libiconv_install && autoconf_install && gd_install && libxml_install && libmcrypt_install && cronolog_install && openssl_install && openssh_install && pcre_install && mysql_install && apache_install && php_install && conf_apache  if [ $Whether_Start_Selinux == 'y' ];then  set_selinux $SET_SELINUX  fi  test_success  phpmyadmin_install
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部