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

 找回密码
 立即注册

一键登录:

搜索
热搜: 活动 交友 discuz
查看: 2037|回复: 1

实战shell脚本自动化安装LAMP

[复制链接]

219

主题

257

帖子

1515

积分

超级版主

Rank: 8Rank: 8

积分
1515
发表于 2015-5-4 12:48:48 | 显示全部楼层 |阅读模式
  1. #!/bin/bash

  2. if       
  3.    [ $UID -ne 0 ];then
  4.    echo This script must use the root user ! ! !
  5.    sleep 2
  6.    exit 0
  7. fi


  8. echo -e '\033[32m---------------------------------------------------------\033[0m'

  9. echo -e "\033[32m【1】安装APACHE,版本httpd-2.4.12\033[0m"
  10. echo -e "\033[32m【2】安装MYSQL,版本mysql-5.6.22\033[0m"
  11. echo -e "\033[32m【3】安装PHP,版本php-5.6.7,\033[0m"
  12. echo -e "\033[32m【4】一键安装所有服务并启动!\033[0m"
  13. echo -e "\033[32m【5】注意事项\033[0m"

  14. echo -e '\033[32m----------------------------------------------------------\033[0m'


  15. if [ ! -d /soft ]; then
  16.         mkdir /soft
  17. fi

  18. cd /soft





  19. echo -n "请输入您的选择  "
  20. read name

  21. if [ "$name" = "" ];then
  22.         echo "您输入有误,请重新运行程序再选择安装"
  23.         exit
  24. fi

  25. if [ "$name" -eq "1" -o "$name" -eq "2" -o "$name" -eq "3" -o "$name" -eq "4" -o "$name" -eq "5" ]; then
  26.         case "$name" in
  27.         "1")               
  28.                 echo "现在开始安装apache!"
  29.                 if [ ! -f /soft/apr-1.4.6.tar.gz ]; then
  30.                              wget http://demo.xq5u.com/school/download/lamp/apr-1.4.6.tar.gz
  31.                 fi
  32.                 if [ ! -f /soft/apr-util-1.3.12.tar.gz ]; then
  33.                         wget http://demo.xq5u.com/school/download/lamp/apr-util-1.3.12.tar.gz               
  34.                 fi
  35.                 if [ ! -f /soft/pcre-8.20.tar.gz ]; then
  36.                         wget http://demo.xq5u.com/school/download/lamp/pcre-8.20.tar.gz               
  37.                 fi
  38.                 if [ ! -f /soft/httpd-2.4.12.tar.gz ]; then
  39.                         wget http://demo.xq5u.com/school/download/lamp/httpd-2.4.12.tar.gz               
  40.                 fi
  41.                         sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
  42.                         setenforce 0
  43.                         cd /soft
  44.                         yum -y remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs
  45.                         yum -y install gcc gcc-c++ ntpdate
  46.                         ntpdate pool.ntp.org
  47.                         tar -zxvf apr-1.4.6.tar.gz
  48.                         cd  apr-1.4.6
  49.                         ./configure --prefix=/usr/local/apr
  50.                         make
  51.                         make install
  52.                         echo "apr可以"
  53.                          sleep 10
  54.                         
  55.                         cd /soft
  56.                         tar -zxvf apr-util-1.3.12.tar.gz
  57.                         cd apr-util-1.3.12
  58.                         ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config  
  59.                         make
  60.                         make install
  61.                         echo "apr-util可以"
  62.                          sleep 10
  63.                         
  64.                         cd /soft
  65.                         tar -zxvf pcre-8.20.tar.gz
  66.                         cd pcre-8.20
  67.                         ./configure --prefix=/usr/local/pcre
  68.                         make
  69.                         make install
  70.                        
  71.                         cd /soft
  72.                         tar -zxvf httpd-2.4.12.tar.gz
  73.                         cd httpd-2.4.12
  74.                         ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
  75.                          make
  76.                          make install

  77.                 ;;
  78.         "2")               
  79.                 echo "现在开始安装mysql!"
  80.                 cd /soft
  81.                 if [ ! -f /soft/mysql-5.6.22.tar.gz ]; then
  82.                         wget http://demo.xq5u.com/school/download/lamp/mysql-5.6.22.tar.gz               
  83.                 fi
  84.                 yum -y install gcc gcc-c++ ncurses-devel perl cmake
  85.                 groupadd mysql
  86.                 useradd -r -g mysql mysql
  87.                 mkdir -p /usr/local/mysql
  88.                 mkdir -p /data/mysqldb
  89.                 tar -zxvf mysql-5.6.22.tar.gz   && cd mysql-5.6.22  
  90.                 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=gbk -DDEFAULT_COLLATION=gbk_chinese_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
  91.                 make
  92.                 make install

  93.                 cd /usr/local/mysql
  94.                 chown -R mysql:mysql .

  95.                 cd /data/mysqldb     
  96.                 chown -R mysql:mysql .

  97.                 cd /usr/local/mysql
  98.                 scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb  

  99.                 cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

  100.                 cp ./support-files/mysql.server /etc/init.d/mysqld

  101. sed -i '$a\PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' /etc/profile
  102. source /etc/profile
  103. sed -i '$a\PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' /root/.bashrc
  104. source /root/.bashrc
  105. echo $PATH

  106. service mysqld start && chkconfig --level 35 mysqld on
  107. mysqladmin -u root password '12345'   #改root密码

  108.                 ;;
  109.         "3")               
  110.                 echo "现在开始安装php!"
  111.                 cd /soft
  112.                 if [ ! -f /soft/php-5.6.7.tar.gz ]; then
  113.                         wget http://demo.xq5u.com/school/download/lamp/php-5.6.7.tar.gz
  114.                 fi       
  115.                   yum -y  install libxml2 libxml2-devel
  116.                 tar -zxvf php-5.6.7.tar.gz && cd php-5.6.7
  117.                 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc   --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/
  118.                 make && make install

  119. cat >>/usr/local/apache2/htdocs/index.php <<EOF
  120. <?php
  121. phpinfo();
  122. ?>
  123. EOF

  124. sed '10 a-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT' -i /etc/sysconfig/iptables
  125. sed '10 a-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT' -i /etc/sysconfig/iptables
  126. sed '147 aAddType     application/x-httpd-php .php' -i /usr/local/apache2/conf/httpd.conf
  127. sed '190 aServerName localhost:80' -i /usr/local/apache2/conf/httpd.conf
  128. sed -i 's#DirectoryIndex index.html#DirectoryIndex index.php index.html#g' /usr/local/apache2/conf/httpd.conf
  129. sed '8 a/usr/local/apache2/bin/apachectl restart' -i /etc/rc.d/rc.local
  130. service mysql restart  && chkconfig --level 35 apache on
  131. /usr/local/apache2/bin/apachectl restart



  132. ;;
  133.         "4")               
  134.                 echo "一键安装所有服务并启动!"
  135.                 echo "现在开始安装apache!"
  136.                 if [ ! -f /soft/apr-1.4.6.tar.gz ]; then
  137.                              wget http://demo.xq5u.com/school/download/lamp/apr-1.4.6.tar.gz
  138.                 fi
  139.                 if [ ! -f /soft/apr-util-1.3.12.tar.gz ]; then
  140.                         wget http://demo.xq5u.com/school/download/lamp/apr-util-1.3.12.tar.gz               
  141.                 fi
  142.                 if [ ! -f /soft/pcre-8.20.tar.gz ]; then
  143.                         wget http://demo.xq5u.com/school/download/lamp/pcre-8.20.tar.gz               
  144.                 fi
  145.                 if [ ! -f /soft/httpd-2.4.12.tar.gz ]; then
  146.                         wget http://demo.xq5u.com/school/download/lamp/httpd-2.4.12.tar.gz               
  147.                 fi
  148.                         sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
  149.                         setenforce 0
  150.                         cd /soft
  151.                         yum -y remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs
  152.                         yum -y install gcc gcc-c++ ntpdate
  153.                         ntpdate pool.ntp.org
  154.                         tar -zxvf apr-1.4.6.tar.gz
  155.                         cd  apr-1.4.6
  156.                         ./configure --prefix=/usr/local/apr
  157.                         make
  158.                         make install
  159.                         echo "apr可以"
  160.                         
  161.                         cd /soft
  162.                         tar -zxvf apr-util-1.3.12.tar.gz
  163.                         cd apr-util-1.3.12
  164.                         ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config  
  165.                         make
  166.                         make install
  167.                         echo "apr-util可以"
  168.                         
  169.                         cd /soft
  170.                         tar -zxvf pcre-8.20.tar.gz
  171.                         cd pcre-8.20
  172.                         ./configure --prefix=/usr/local/pcre
  173.                         make
  174.                         make install
  175.                        
  176.                         cd /soft
  177.                         tar -zxvf httpd-2.4.12.tar.gz
  178.                         cd httpd-2.4.12
  179.                         ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
  180.                          make
  181.                          make install
  182.                  echo "------------------------------------apache 安装完成!------------------------------------------"
  183.                 sleep 10
  184.                 echo "现在开始安装mysql!"
  185.                 cd /soft
  186.                 if [ ! -f /soft/mysql-5.6.22.tar.gz ]; then
  187.                         wget http://demo.xq5u.com/school/download/lamp/mysql-5.6.22.tar.gz               
  188.                 fi
  189.                 yum -y install gcc gcc-c++ ncurses-devel perl cmake
  190.                 groupadd mysql
  191.                 useradd -r -g mysql mysql
  192.                 mkdir -p /usr/local/mysql
  193.                 mkdir -p /data/mysqldb
  194.                 tar -zxvf mysql-5.6.22.tar.gz   && cd mysql-5.6.22  
  195.                 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=gbk -DDEFAULT_COLLATION=gbk_chinese_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
  196.                 make
  197.                 make install

  198.                 cd /usr/local/mysql
  199.                 chown -R mysql:mysql .

  200.                 cd /data/mysqldb     
  201.                 chown -R mysql:mysql .

  202.                 cd /usr/local/mysql
  203.                 scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb  

  204.                 cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

  205.                 cp ./support-files/mysql.server /etc/init.d/mysqld

  206. sed -i '$a\PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' /etc/profile
  207. source /etc/profile
  208. sed -i '$a\PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' /root/.bashrc
  209. source /root/.bashrc
  210. echo $PATH

  211. service mysqld start && chkconfig --level 35 mysqld on
  212. mysqladmin -u root password '12345'   #改root密码
  213.                 echo "------------mysql安装完成,默认用户:root,密码:12345---------------------------------"
  214.                 sleep 15
  215.                 echo "现在开始安装php!"
  216.                 cd /soft
  217.                 if [ ! -f /soft/php-5.6.7.tar.gz ]; then
  218.                         wget http://demo.xq5u.com/school/download/lamp/php-5.6.7.tar.gz
  219.                 fi       
  220.                   yum -y  install libxml2 libxml2-devel
  221.                 tar -zxvf php-5.6.7.tar.gz && cd php-5.6.7
  222.                 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc   --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/
  223.                 make && make install

  224. cat >>/usr/local/apache2/htdocs/index.php <<EOF
  225. <?php
  226. phpinfo();
  227. ?>
  228. EOF

  229. sed '10 a-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT' -i /etc/sysconfig/iptables
  230. sed '10 a-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT' -i /etc/sysconfig/iptables
  231. sed '147 aAddType     application/x-httpd-php .php' -i /usr/local/apache2/conf/httpd.conf
  232. sed '190 aServerName localhost:80' -i /usr/local/apache2/conf/httpd.conf
  233. sed -i 's#DirectoryIndex index.html#DirectoryIndex index.php index.html#g' /usr/local/apache2/conf/httpd.conf
  234. echo "/usr/local/apache2/bin/apachectl start” >>/etc/rc.d/rc.local

  235.                 echo -e "\033[32m-------------所有程序安装完成,mysql默认登录用户:root,密码:12345--------------------------- \033[0m"               
  236.                 echo -e "\033[32m-----------------电脑30秒后重启,请注意保存您的工作!-----------------------------------------\033[0m"
  237.                 sleep 30
  238.                 init 6
  239. ;;
  240.         "5")
  241.                
  242. echo -e '\033[32m----------------------------------------------------------\033[0m'
  243.                echo -e "\033[32m建议在全新环境下安装LAMP\033[0m"
  244.                echo -e "\033[32m请注意80与3306端口是否占用,本程序安装自动放行这2个端口\033[0m"
  245.                echo -e "\033[32m再次提示:数据库的登录用户名:root,默认密码:12345,安装完后请立即修改\033[0m"
  246.                echo -e "\033[32m请在root用户下安装\033[0m"
  247.                echo -e "\033[32m重启电脑后,apache服务与mysql服务已经开启!\033[0m"
  248. echo -e '\033[32m----------------------------------------------------------\033[0m'
  249.         esac
  250. else
  251.         echo "\033[32m您输入有误,请重新运行程序再选择安装\033[0m"
  252. fi



复制代码


回复

使用道具 举报

1

主题

25

帖子

506

积分

高级会员

Rank: 4

积分
506
发表于 2015-5-7 08:59:18 | 显示全部楼层
可以啊,写的很好啊!佩服!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2017-11-24 16:58 , Processed in 0.033883 second(s), 19 queries , Apc On.

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