Linux/Python学习论坛-京峰教育

 找回密码
 立即注册

一键登录:

搜索
热搜: 活动 交友 discuz
查看: 1193|回复: 0

bash-scripts源码安装apache、php及部分扩展、mysql

[复制链接]

22

主题

69

帖子

2171

积分

金牌会员

Rank: 6Rank: 6

积分
2171
发表于 2015-5-2 17:32:06 | 显示全部楼层 |阅读模式

安装包版本:
httpd-2.2.29.tar.gz
zlib-1.2.8.tar.gz
apr-util-1.5.4.tar.gz
apr-1.5.1.tar.gz
libpng-1.6.17.tar.gz
jpegsrc.v9a.tar.gz
libgd-gd-2.1.1.tar.gz
php-5.6.7.tar.gz
freetype-2.5.5.tar.gz
libmcrypt-2.5.8.tar.gz
libxml2-2.9.2.tar.gz
mysql-5.6.23.tar.gz

======安装包下载网站=======================
httpd  http://mirrors.sohu.com/apache/
mysql  http://mirrors.sohu.com/mysql/
php  http://mirrors.sohu.com/php/
phpMyAdmin  http://www.phpmyadmin.net/home_page/downloads.php
libxml2  ftp://xmlsoft.org/libxml2/
libmcrypt  http://sourceforge.net/projects/mcrypt/files/Libmcrypt
gd  http://libgd.github.io
zlib  http://www.zlib.net
autoconf  http://ftp.gnu.org/gnu/autoconf/
freetype  http://download.savannah.gnu.org/releases/freetype/
libpng  ftp://ftp.simplesystems.org/pub/libpng/png/src/
jpegsrc  http://www.ijg.org/files/

============================================
shell-scripts源码安装LAMP服务
  1. #!/bin/bash
  2. #auto install LAMP by source code
  3. #by colink on 2015-05-02

  4. TARPATH='/soft/install/'
  5. WGETPATH='/soft/lamp/'

  6. #提前安装一些工具包和依赖包
  7. echo -e "\033[32mInstall cmake and ntpdate servers,Please wait...\033[0m"
  8. yum -y install  cmake  vim  wget  lrzsz  unzip man  ntpdate  gcc*  autoconf  libtool  python-devel  libXpm-devel  ncurses-devel  git
  9. #初始化部分系统环境
  10. #echo "alias vi='vim'" >>/root/.bashrc && source /root/.bashrc
  11. echo -e "\033[32mNtpdate is running,Please wait...\033[0m"
  12. ntpdate pool.ntp.org
  13. sleep 3

  14. #create download directory  
  15. if [ ! -d ${WGETPATH} ];then
  16.         echo -e "The ${WGETPATH} does not exist, Will create it. "
  17.     mkdir -p ${WGETPATH}
  18. fi
  19. #Download LAMP install package
  20. #wget --no-clobber -c --directory-prefix=${WGETPATH} "http://mirrors.sohu.com/php/php-5.6.8.tar.gz" "http://mirror.bit.edu.cn/mysql/Downloads/MySQL-5.7/mysql-5.7.6-m16.tar.gz" "http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.12.tar.gz"

  21. #Create tar directory  
  22. if [ ! -d ${TARPATH} ];then
  23.         echo -e "The ${TARPATH} does not exist, Will create it. "
  24.     mkdir -p ${TARPATH}
  25. fi
  26. #TAR all install package
  27. for i in `find ${WGETPATH} -maxdepth 1 -name "*.tar.gz"`
  28. do
  29.         tar -zxf "${i}" -C "${TARPATH}"
  30.         if [ $? -eq 0 ];then
  31.                 echo -e "\033[32m解压文件${i}到${TARPATH}成功\033[0m"
  32.         else
  33.                 exit
  34.         fi
  35. done

  36. #find ${TARPATH} -maxdepth 1 -type d >/tmp/installlist.txt

  37. #Apr define path variable
  38. APR_DIR="${TARPATH}apr-1.5.1"
  39. APR_PREFIX='/usr/local/apr'

  40. #Apr-util define path variable
  41. APR_UTIL_DIR="${TARPATH}apr-util-1.5.4"
  42. APR_UTIL_PREFIX='/usr/local/apr-util'

  43. #Httpd define path variable
  44. HTTPD_DIR="${TARPATH}httpd-2.2.29"
  45. HTTPD_PREFIX='/usr/local/apache2'

  46. function Apache_install()
  47. {
  48.         cd ${APR_DIR}
  49.         ./configure --prefix=${APR_PREFIX} && make && make install
  50.         if [ $? -eq 0 ];then
  51.                 echo -e "\033[32mThe apr was installed successfully.\033[0m"
  52.                 cd ${APR_UTIL_DIR}
  53.             ./configure  --prefix=${APR_UTIL_PREFIX} --with-apr=${APR_PREFIX} && make -j4 && make -j4 install
  54.                 if [ $? -eq 0 ];then
  55.                         echo -e "\033[32mThe apr-util was installed successfully.\033[0m"
  56.                     cd ${HTTPD_DIR}
  57.                     ./configure --prefix=${HTTPD_PREFIX} --with-apr=${APR_PREFIX} --with-apr-util=${APR_UTIL_PREFIX} --enable-deflate=shared --enable-rewrite=shared --enable-static-support --with-mpm=worker && make -j4 && make -j4 install
  58.                     if [ $? -eq 0 ];then
  59.                                 echo -e "\033[32mThe httpd was installed successfully to ${HTTPD_PREFIX}\033[0m"
  60.                         else
  61.                                 echo -e "\033[31mThe httpd is installed failed,Please check...\033[0m"
  62.                                 exit
  63.                         fi
  64.                 else
  65.                 echo -e "\033[31mThe apr-util is installed failed,Please check...\033[0m"
  66.                     exit
  67.                 fi
  68.         else
  69.                 echo -e "\033[31mThe apr is installed failed,Please check...\033[0m"
  70.                 exit
  71.         fi
  72. }

  73. #Mysql define path variable
  74. MYSQL_DIR="${TARPATH}mysql-5.6.23"
  75. MYSQL_PREFIX='/usr/local/mysql2'
  76. MYSQL_DATA_DIR='/data/mysql2'
  77. #注意,如果上面修改了安装路径,请务必修改下面这条语句sed部分的mysql安装路径
  78. MYSQL_STATUS_A=`ps -ef |grep mysql |awk 'NR==1 {print $9}' |sed 's/\/usr\/local\/mysql2\/bin\///g'`
  79. #MYSQL_STATUS_B=``

  80. function Mysql_install()
  81. {
  82.         cd ${MYSQL_DIR} && mkdir -p ${MYSQL_DATA_DIR} && cmake . -LH && cmake . -DCMAKE_INSTALL_PREFIX=${MYSQL_PREFIX} -DMYSQL_DATADIR=${MYSQL_DATA_DIR} -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci
  83.         if [ $? -eq 0 ];then
  84.                 make -j4 && make -j4 install
  85.     else
  86.                 echo -e "\033[31mThe Mysql is installed failed,Please check...\033[0m"
  87.        exit
  88.     fi
  89.         cd ${MYSQL_PREFIX} ; groupadd mysql ; useradd -g mysql mysql ; chown -R root:mysql ${MYSQL_PREFIX} && chown -R mysql:mysql ${MYSQL_DATA_DIR} ;
  90.         cp ${MYSQL_PREFIX}/support-files/my-default.cnf /etc/my.cnf && cp ${MYSQL_PREFIX}/support-files/mysql.server /etc/init.d/mysqld &&
  91.         ${MYSQL_PREFIX}/scripts/mysql_install_db --user=mysql --basedir=${MYSQL_PREFIX} --datadir=${MYSQL_DATA_DIR} &&
  92.         echo "export PATH="\$PATH":${MYSQL_PREFIX}/bin/" >>/root/.bash_profile && source /root/.bash_profile && service mysqld restart
  93.         if [ "${MYSQL_STATUS_A}" = 'mysqld_safe' ];then
  94.                 echo -e "\033[32mThe Mysql was installed successfully to ${MYSQL_PREFIX}\033[0m"
  95.                 service mysqld stop ;
  96.         else
  97.             echo -e "\033[31mThe Mysql is installed failed,Please check...\033[0m"
  98.         exit
  99.         fi
  100. }

  101. ################################################
  102. #INSTALL PHP AND GD
  103. #PHP define path variable
  104. PHP_DIR="${TARPATH}php-5.6.7"
  105. PHP_PREFIX='/usr/local/php2'
  106. #用i增长来判断php的扩展是否安装成功
  107. i=0

  108. #zlib define path variable
  109. ZLIB_DIR="${TARPATH}zlib-1.2.8"
  110. ZLIB_PREFIX='/usr/local/zlib'

  111. #libxml2 define path variable
  112. LIBXML2_DIR="${TARPATH}libxml2-2.9.2"
  113. LIBXML2_PREFIX='/usr/local/libxml2'

  114. #libmcrypt define path variable
  115. LIBMCRYPT_DIR="${TARPATH}libmcrypt-2.5.8"
  116. LIBMCRYPT_PREFIX='/usr/local/libmcrypt'

  117. #Others define path variable
  118. FREETYPE_DIR="${TARPATH}freetype-2.5.5"
  119. JPEG9A_DIR="${TARPATH}jpeg-9a"
  120. LIBPNG_DIR="${TARPATH}libpng-1.6.17"

  121. #libgd define path variable
  122. LIBGD_DIR="${TARPATH}libgd-gd-2.1.1"
  123. LIBGD_PREFIX='/usr/local/libgd'

  124. function php_install()
  125. {
  126. #install freetype
  127.         cd ${FREETYPE_DIR} && ./configure && make -j4 && make -j4 install
  128.         if [ $? -eq 0 ];then
  129.         ((i++));
  130.     else
  131.                 echo -e "\033[31mThe ${FREETYPE_DIR} is installed failed,Please check...\033[0m"
  132.                 exit
  133.     fi
  134. #install jpeg-9a
  135.     cd ${JPEG9A_DIR} && ./configure && make -j4 && make -j4 install
  136.     if [ $? -eq 0 ];then
  137.         ((i++));
  138.     else
  139.         echo -e "\033[31mThe ${JPEG9A_DIR} is installed failed,Please check...\033[0m"
  140.         exit
  141.     fi
  142. #install libpng
  143.     cd ${LIBPNG_DIR} && ./configure && make -j4 && make -j4 install
  144.     if [ $? -eq 0 ];then
  145.         ((i++));
  146.     else
  147.         echo -e "\033[31mThe ${LIBPNG_DIR} is installed failed,Please check...\033[0m"
  148.         exit
  149.     fi
  150. #install libgd
  151.     cd ${LIBGD_DIR} &&
  152.         cmake . -DCMAKE_INSTALL_PREFIX=${LIBGD_PREFIX} -DENABLE_FREETYPE=on -DENABLE_JPEG=on -DENABLE_PNG=on -DENABLE_XPM=on -DFREETYPE_INCLUDE_DIR_freetype2=/usr/local/include/freetype2
  153.     if [ $? -eq 0 ];then
  154.                 make -j4 && make -j4 install
  155.             if [ $? -eq 0 ];then
  156.                     ((i++));
  157.             else
  158.                     echo -e "\033[31mThe ${LIBGD_DIR} is installed failed,Please check...\033[0m"
  159.                         exit
  160.             fi
  161.         else
  162.                 echo -e "\033[31mThe ${LIBGD_DIR} is installed failed,Please check...\033[0m"
  163.                 exit
  164.         fi
  165. #install libmcrypt
  166.     cd ${LIBMCRYPT_DIR} &&
  167.         ./configure --prefix=${LIBMCRYPT_PREFIX} && make -j4 && make -j4 install
  168.     if [ $? -eq 0 ];then
  169.         ((i++));
  170.     else
  171.         echo -e "\033[31mThe ${LIBMCRYPT_PREFIX} is installed failed,Please check...\033[0m"
  172.         exit
  173.     fi
  174. #install zlib
  175.     cd ${ZLIB_DIR} &&
  176.     ./configure --prefix=${ZLIB_PREFIX} && make -j4 && make -j4 install
  177.     if [ $? -eq 0 ];then
  178.         ((i++));
  179.     else
  180.         echo -e "\033[31mThe ${ZLIB_PREFIX} is installed failed,Please check...\033[0m"
  181.         exit
  182.     fi
  183. #install libxml2
  184.     cd ${LIBXML2_DIR} &&
  185.     ./configure --prefix=${LIBXML2_PREFIX} && make -j4 && make -j4 install
  186.     if [ $? -eq 0 ];then
  187.         ((i++));
  188.     else
  189.         echo -e "\033[31mThe ${LIBXML2_PREFIX} is installed failed,Please check...\033[0m"
  190.         exit
  191.     fi
  192. #判断i的值,如果i=7,将继续安装php,否则退出安装
  193. #因为在安装php之前,安装了7个php的扩展包,所以i=7
  194.     if [ $i -eq 7 ];then
  195.                 #install php server
  196.                 cd ${PHP_DIR} &&
  197.                 ./configure --prefix=${PHP_PREFIX} --with-config-file-path=${PHP_PREFIX}/etc --with-apxs2=${HTTPD_PREFIX}/bin/apxs --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd  --with-mysqli=mysqlnd --enable-mysqlnd --with-libxml-dir=${LIBXML2_PREFIX} --with-zlib-dir=${ZLIB_PREFIX} --with-mcrypt=${LIBMCRYPT_PREFIX} --with-gd  --with-jpeg-dir  --with-png-dir --with-xpm-dir --with-freetype-dir --enable-mbstring=all --enable-sockets --enable-soap
  198.                 if [ $? -eq 0 ];then
  199.                         make -j4 && make -j4 install
  200.                         if [ $? -eq 0 ];then
  201.                     cp ${PHP_DIR}/php.ini-production ${PHP_PREFIX}/etc/php.ini
  202.                                 #此处,如果php安装成功i=8的话,那就修改相应的配置文件
  203.                                 ((i++));
  204.                                 echo -e "\033[32mThe PHP was installed successfully to ${PHP_PREFIX}\033[0m"
  205.                         else
  206.                                 echo -e "\033[31mThe PHP is installed failed,Please check...\033[0m"
  207.                                 exit
  208.                 fi
  209.                 else
  210.                     echo -e "\033[31mThe PHP is installed failed,Please check...\033[0m"
  211.                         exit
  212.                 fi
  213.     else
  214.         echo -e "\033[31mInstalled failed,Please check PHP's GD and so on...\033[0m"
  215.         exit
  216.     fi
  217. #成功安装php之后,修改apache的配置文件,整合php等
  218.     if [ $i -eq 8 ];then
  219.                 echo -e "\033[32mWill modify the configuration of Apache and PHP\033[0m"
  220.                 cp ${HTTPD_PREFIX}/conf/httpd.conf ${HTTPD_PREFIX}/conf/httpd.conf.bak
  221.                 echo "Addtype application/x-httpd-php  .php  .phtml" >> ${HTTPD_PREFIX}/conf/httpd.conf
  222.                 sed -i 's/Options Indexes FollowSymLinks/Options FollowSymLinks/g' ${HTTPD_PREFIX}/conf/httpd.conf
  223.                 sed -i 's/DirectoryIndex index.html/DirectoryIndex index.html index.php /g' ${HTTPD_PREFIX}/conf/httpd.conf
  224.                 #测试php是否全面安装成功
  225.                 if [ $? -eq 0 ];then
  226.                         echo -e "\033[32mIt's successfully, Will test the PHP... \033[0m"
  227.                         cat >${HTTPD_PREFIX}/htdocs/phpinfo.php <<EOF
  228. <?php
  229. phpinfo();
  230. ?>
  231. EOF
  232.                         if [ $? -eq 0 ];then
  233.                                 #启动apache服务
  234.                                 ${HTTPD_PREFIX}/bin/apachectl restart ;
  235.                                 SERVER_IP=`ifconfig eth0 |grep Bcast |awk '{print $2}'|sed 's/addr://g'`
  236.                                 echo -e "\033[32mYou can access http://${SERVER_IP}/phpinfo.php\033[0m"
  237.                         fi
  238.                 else
  239.                         echo -e "\033[31mThe PHP is installed failed,Please check...\033[0m"
  240.                 fi
  241.         else
  242.                 echo -e "\033[31mThe PHP is installed failed,Please check...\033[0m"
  243.                 exit
  244.         fi
  245. }


  246. PS3="Please select you will install server:"
  247. select i in "Install_Apache" "Install_Mysql" "Install_PHP" "EXIT_INSTALL"
  248. do
  249.     case $i in
  250.         Install_Apache)
  251.             echo -e "\033[32mWill install Apache server.\033[0m"
  252.             Apache_install
  253.         ;;
  254.         Install_Mysql)
  255.             echo -e "\033[32mWill install Mysql server.\033[0m"
  256.                         Mysql_install
  257.         ;;
  258.         Install_PHP)
  259.             echo -e "\033[32mWill install PHP server.\033[0m"
  260.                         php_install
  261.         ;;
  262.         EXIT_INSTALL)
  263.             exit
  264.         ;;
  265.     esac
  266. done
复制代码







回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|京峰教育,只为有梦想的人 ( 京ICP备15013173号 )

GMT+8, 2019-4-25 02:43 , Processed in 0.028031 second(s), 14 queries , Apc On.

快速回复 返回顶部 返回列表