shell脚本--一键安装lamp

  1 #!/bin/bash
  2 PACKAGES="/usr/local/src"
  3 APR=apr-1.6.5.tar.gz
  4 APR_UTIL=apr-util-1.6.1.tar.gz
  5 HTTPD=httpd-2.4.39.tar.gz
  6 D_PATH="/usr/local"
  7 S_PATH="/usr/src"
  8 MYSQL=mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
  9 PHP=php-5.6.30.tar.gz
 10 
 11 ###check
 12 check(){
 13 #必须是root用户才可以
 14 [ $UID -ne 0 ]&&echo "need to root is that"&&exit 1
 15 #安装依赖
 16 yum install -y libtool* &>/dev/null
 17 yum install -y expat-devel &>/dev/null
 18 yum install -y pcre pcre-devel &>/dev/null
 19 yum install -y perl-Module-Install &>/dev/null
 20 yum install libxml2-devel bzip2 bzip2-devel libpnglibpng-devel openssl openssl-devel freetype freetype-devel opel-release -y   &>/dev/null
 21 yum install -y epel-release &>/dev/null
 22 yum install -y libmcrypt-devel &>/dev/null
 23 if [ $? -eq 0 ];then
 24    echo echo "YUM: OK"
 25 else
 26    echo "YUM: ERROR";exit 1
 27 fi
 28 }
 29 check
 30 
 31 ###apr
 32 apr () {
 33 if [ -f $PACKAGES/$APR ]; then
 34    tar xf $PACKAGES/$APR -C $S_PATH
 35 
 36    if [ -d /usr/src/apr-1.6.5 ] ; then
 37         cd /usr/src/apr-1.6.5
 38         ./configure --prefix=$D_PATH/apr 1> /dev/null
 39         if [ $? -eq 0 ];then
 40              make 1> /dev/null
 41               if [ $? -eq 0 ];then
 42                   make install 1>/dev/null
 43                    if [ $? -ne 0 ];then
 44                           echo"APR: Make install ERROR EXIT...";exit 1
 45                    else
 46                           echo "ok"
 47                    fi
 48               else
 49                          echo "APR: make ERROR,EXIT...";exit 1
 50               fi
 51         else
 52              echo "APR:Configure ERROR ,EXIT..";exit 1
 53         fi
 54     else
 55         echo "APR: Tar Command ERROR, EXIT. . .";exit 1
 56     fi
 57 else
 58    echo "APR: Not fount $APR ,EIXT. . .";exit 1
 59 fi
 60 }
 61 apr
 62 
 63 ###apr-util
 64 apr-util () {
 65 if [ -f $PACKAGES/$APR_UTIL ]; then
 66    tar xf $PACKAGES/$APR_UTIL -C $S_PATH
 67 
 68    if [ -d /usr/src/apr-util-1.6.1 ] ; then
 69         cd /usr/src/apr-util-1.6.1 
 70         ./configure --prefix=$D_PATH/apr-util --with-apr=$D_PATH/apr 1> /dev/null
 71         if [ $? -eq 0 ];then
 72              make 1> /dev/null
 73               if [ $? -eq 0 ];then
 74                   make install 1>/dev/null
 75                    if [ $? -ne 0 ];then
 76                           echo"APR: Make install ERROR EXIT...";exit 1
 77                    else
 78                           echo "ok"
 79                    fi
 80               else
 81                          echo "APR_UTIL: make ERROR,EXIT...";exit 1
 82               fi
 83         else
 84              echo "APR_UTIL:Configure ERROR ,EXIT..";exit 1
 85         fi
 86     else
 87         echo "APR_UTIL: Tar Command ERROR, EXIT. . .";exit 1
 88     fi
 89 else
 90    echo "APR_UTIL: Not fount $APR_UTIL ,EIXT. . .";exit 1
 91 fi
 92 }
 93 apr-util
 94 
 95 ###httpd
 96 httpd () {
 97 if [ -f $PACKAGES/$HTTPD ]; then
 98    tar xf $PACKAGES/$HTTPD -C $S_PATH
 99 
100    if [ -d /usr/src/httpd-2.4.39 ] ; then
101         cd /usr/src/httpd-2.4.39  
102         if [ $? -eq 0 ];then
103          ./configure --prefix=$D_PATH/apache2.4 --with-apr=$D_PATH/apr --with-apr-util=$D_PATH/apr-util  --enable-so  --enable-mods-shared=most 1> /dev/null
104              make 1> /dev/null
105               if [ $? -eq 0 ];then
106                   make install 1>/dev/null
107                    if [ $? -ne 0 ];then
108                           echo"HTTPD: Make install ERROR EXIT...";exit 1
109                    else
110                           echo "ok"
111                    fi
112               else
113                          echo "HTTPD: make ERROR,EXIT...";exit 1
114               fi
115         else
116              echo "HTTPD:Configure ERROR ,EXIT..";exit 1
117         fi
118     else
119         echo "HTTPD: Tar Command ERROR, EXIT. . .";exit 1
120     fi
121 else
122    echo "HTTPD: Not fount $APR_UTIL ,EIXT. . .";exit 1
123 fi
124 }
125 httpd
126 
127 ###mysql
128 
129 mysql () {
130 if [ -f $PACKAGES/$MYSQL ]; then
131    tar xf $PACKAGES/$MYSQL -C $S_PATH
132    if [ -d $S_PATH/ ]; then 
133         mv $S_PATH/mysql-5.6.43-linux-glibc2.12-x86_64 /usr/local/mysql
134         cd /usr/local/mysql
135         useradd -s /sbin/nologin mysql
136         mkdir -p /data/mysql
137         chown -R mysql:mysql /data/mysql
138         ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
139         cp support-files/my-default.cnf  /etc/my.cnf
140         sed -i '/mysqld/a\basedir = /usr/local/mysql' /etc/my.cnf;
141         sed -i '/mysqld/a\datadir = /data/mysql' /etc/my.cnf;
142         sed -i '/mysqld/a\port = 3306' /etc/my.cnf;
143         sed -i '/mysqld/a\server_id = 128' /etc/my.cnf;
144         sed -i '/mysqld/a\socket = /tmp/mysql.sock' /etc/my.cnf;
145         cp support-files/mysql.server /etc/init.d/mysqld
146         sed -i 's/^basedir=//' /etc/init.d/mysqld
147         sed -i 's/^datadir=//' /etc/init.d/mysqld
148         sed -i '/overwritten by settings in the MySQL configuration files/a\basedir=/usr/local/mysql' /etc/init.d/mysqld
149         sed -i '/overwritten by settings in the MySQL configuration files/a\datadir=/data/mysql' /etc/init.d/mysqld
150         chkconfig --add mysqld
151         chkconfig mysqld on
152         service mysqld start
153     else
154        echo "MYSQSL: Configure ERROR , EIXT..."    ;exit 1
155     fi
156 else
157     echo "MYSQSL: Tar Command ERROR , EIXT..."    ;exit 1
158 fi
159 }
160 mysql
161 
162 ##php
163 php () {
164 if [ -f $PACKAGES/$PHP ]; then
165    tar xf $PACKAGES/$PHP -C $S_PATH
166 
167    if [ -d /usr/src/php-5.6.30 ] ; then
168         cd /usr/src/php-5.6.30
169         ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif 1>/dev/null
170         if [ $? -eq 0 ];then
171              make 1> /dev/null
172               if [ $? -eq 0 ];then
173                   make install 1>/dev/null
174                    if [ $? -ne 0 ];then
175                           echo"APR: Make install ERROR EXIT...";exit 1
176                    else
177                           cp php.ini-production $D_PATH/php/etc/php.ini
178                         sed -i s'/#ServerName/ServerName/' /usr/local/apache2.4/conf/httpd.conf
179                         sed -i s'/Require all denied/Require all granted/' /usr/local/apache2.4/conf/httpd.conf
180                           sed -i '/AddType application/x-gzip/a\AddType application/x-httpd-php .php' /usr/local/apache2.4/conf/httpd.conf
181                         sed -i 's/DirectoryIndex index.html/DirectoryIndex index.html index.php/' /usr/local/apache2.4/conf/httpd.conf
182                         /usr/local/apache2.4/bin/apachectl -t
183                         /usr/local/apache2.4/bin/apachectl start
184                         
185                    fi
186               else
187                          echo "PHP: make ERROR,EXIT...";exit 1
188               fi
189         else
190              echo "PHP:Configure ERROR ,EXIT..";exit 1
191         fi
192     else
193         echo "PHP: Tar Command ERROR, EXIT. . .";exit 1
194     fi
195 else
196    echo "PHP: Not fount $APR ,EIXT. . .";exit 1
197 fi
198 }
199 php
200 
201 vi /usr/local/apache2.4/htdocs/1.php 
202 curl localhost/1.php

 

posted @ 2021-04-28 18:31  必安  阅读(195)  评论(0)    收藏  举报