设为首页 收藏本站
查看: 831|回复: 0

用shell脚本搭建lamp

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-17 09:14:38 | 显示全部楼层 |阅读模式
首先是在linux的环境下,搭建顺序为mysql——>apache——>php

准备工作,再搭建之前先安装一些必要的文件包:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
####定义一个函数myum,如果rpm包已经提示安装过,则不再尝试yum install 为了节省
###时间
myum(){
if ! rpm -qa |grep -q "^$1";then
yum install -y  $1
check_ok
else
echo "$1 has been installed"
fi
}
#先前需要经安装的一些包
for p in wget gcc  perl perl-devel libaio libaio-devel pcre-devel zlib-devel
do
myum $p
done
yum install -y epel-release  /安装epel源



首先搭建mysql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/bin/bash
check_ok(){
if [ $? != 0 ];then
echo "ERROR ,please check it now "
exit 1
fi
}
#########################
#安装mysql
ar=`arch`           /获取系统的版本号,以便选择合适的mysql版本
install_mysql(){
echo "choose the version of mysql"
select mysql_v in 5.1 5.6
do
case $mysql_v in
5.1)
cd /usr/local/src
[ -f mysql-5.1.72-linux-$ar-glibc23.tar.gz ]||wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.72-linux-$ar-glibc23.tar.gz
check_ok
tar zxf mysql-5.1.72-linux-$ar-glibc23.tar.gz
check_ok
mv mysql-5.1.72-linux-$ar-glibc23 /usr/local/mysql
check_ok
##创建mysql账户
if ! grep -q  "^mysql" /etc/passwd ;then        /创建mysql账户前,先检查系统是否存在该账户,若存在则删除再创建!
        useradd mysql
        check_ok
else
        userdel -r mysql
        useradd mysql -s /sbin/nologin
        check_ok
fi
#####
yum install -y compat-libstdc++-33
cd /usr/local/mysql
if [ -d /data/mysql ];then
        rm -rf /data/mysql
        mkdir /data/mysql
else
        mkdir /data/mysql
fi

chown -R mysql:mysql /data/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
check_ok
/bin/cp support-files/my-large.cnf /etc/my.cnf
sed -i '/^\[mysqld\]$/a\datadir = /data/mysql' /etc/my.cnf
check_ok
/bin/cp support-files/mysql.server /etc/init.d/mysqld
sed -i 's#^datadir=#datadir=/data/mysql#' /etc/init.d/mysqld
check_ok
chmod 755 /etc/init.d/mysqld
service mysqld start
check_ok
break
;;
5.6)
  cd /usr/local/src
            [ -f mysql-5.6.26-linux-glibc2.5-$ar.tar.gz ] || wget http://mirrors.sohu.com/mysql/My ... .26-linux-glibc2.5-$ar.tar.gz
            tar zxf mysql-5.6.26-linux-glibc2.5-$ar.tar.gz
            check_ok
            [ -d /usr/local/mysql ] && /bin/mv /usr/local/mysql /usr/local/mysql_bak
            mv mysql-5.6.26-linux-glibc2.5-$ar /usr/local/mysql
            if ! grep '^mysql:' /etc/passwd
            then
            useradd -M mysql -s /sbin/nologin
            fi
            yum install -y compat-libstdc++-33
            [ -d /data/mysql ] && /bin/mv /data/mysql /data/mysql_bak
            mkdir -p /data/mysql
            chown -R mysql:mysql /data/mysql
            cd /usr/local/mysql
            ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
            check_ok
            /bin/cp support-files/my-default.cnf /etc/my.cnf
            check_ok
            sed -i '/^\[mysqld\]$/a\datadir = /data/mysql' /etc/my.cnf
            /bin/cp support-files/mysql.server /etc/init.d/mysqld
            sed -i 's#^datadir=#datadir=/data/mysql#' /etc/init.d/mysqld
            chmod 755 /etc/init.d/mysqld
            chkconfig --add mysqld
            chkconfig mysqld on
            service mysqld start
            check_ok
            break
            ;;

         *)
            echo "only 1(5.1) or 2(5.6)"
                       exit 1
            ;;
    esac
done
}
install_mysql



然后搭建apache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
  1 #!/bin/bash
  2 check_ok(){
  3 if [ $? != 0 ];then
  4 echo "ERROR ,please check it now "
  5 exit 1
  6 fi
  7 }
  8 #########################
  9 #安装apache
10 install_httpd(){
11         #yum install -y zlib-devel
12         #yum install -y pcre pcre-devel apr apr-devel
13         check_ok
14         cd /usr/local/src
15         [ -f  httpd-2.2.31.tar.gz  ] || wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.31.ta    r.gz
16
17         check_ok
18         tar zxvf  httpd-2.2.31.tar.gz
19         check_ok
20         cd httpd-2.2.31
21         ./configure \
22         --prefix=/usr/local/apache2 \
  23         --with-included-apr \
24         --enable-so \
25         --enable-deflate=shared \
26         --enable-expires=shared \
27         --enable-rewrite=shared \
28         --with-pcre
29         check_ok
30         make
31         check_ok
32         make install
33         check_ok
34 }
35 install_httpd



搭建php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
1 #!/bin/bash
  2 check_ok(){
  3 if [ $? != 0 ];then
  4 echo "please check it now"
  5 exit 1
  6 fi
  7 }
  8 #############
  9 #安装php
10 install_php(){
11 echo -e "Install php. \nPlease choose the version of php"
12 select php_v in 5.4 5.6
13 do
14 case $php_v in
15 5.4)
16 cd /usr/local/src
17 [ -f php-5.4.45.tar.bz2 ] || wget 'http://cn2.php.net/get/php-5.4.45.tar.bz2/from/this/mirror' -O     php-5.4.45.tar.bz2
18 check_ok
19 tar jxvf php-5.4.45.tar.bz2
20 check_ok
21 cd php-5.4.45
22             for p in openssl-devel bzip2-devel \
  23             libxml2-devel curl-devel libpng-devel \
24             libjpeg-devel freetype-devel libmcrypt-devel\
25             libtool-ltdl-devel perl-devel
26             do
27                yum install -y $p
28             done
29 check_ok
30 ./configure \
31             --prefix=/usr/local/php \
32             --with-apxs2=/usr/local/apache2/bin/apxs \
33             --with-config-file-path=/usr/local/php/etc  \
34             --with-mysql=/usr/local/mysql \
35             --with-libxml-dir \
36             --with-gd \
37             --with-jpeg-dir \
38             --with-png-dir \
39             --with-freetype-dir \
40             --with-iconv-dir \
41             --with-zlib-dir \
42             --with-bz2 \
43             --with-openssl \
44             --with-mcrypt \
45             --enable-soap \
  46             --enable-gd-native-ttf \
47             --enable-mbstring \
48             --enable-sockets \
49             --enable-exif \
50             --disable-ipv6
51 check_ok
52 make && make install
53 check_ok
54 if [ -f /usr/local/php/etc/php.ini ];then
55         rm -f /usr/local/php/etc/php.ini
56         cp php.ini-production /usr/local/php/etc/php.ini
57 else
58         cp php.ini-production /usr/local/php/etc/php.ini
59
60 fi
61 break
62 ;;
63
64 5.6)
65 cd /usr/local/src
66 [ -f php-5.6.6.tar.gz ] || wget http://mirrors.sohu.com/php/php-5.6.6.tar.gz
67 check_ok
68 tar zxvf php-5.6.6.tar.gz
  69 check_ok
70 cd php-5.6.6
71             for p in openssl-devel bzip2-devel \
72             libxml2-devel curl-devel libpng-devel \
73             libjpeg-devel freetype-devel libmcrypt-devel\
74             libtool-ltdl-devel perl-devel
75             do
76                yum install -y $p
77             done
78 check_ok
79 ./configure \
80             --prefix=/usr/local/php \
81             --with-apxs2=/usr/local/apache2/bin/apxs \
82             --with-config-file-path=/usr/local/php/etc  \
83             --with-mysql=/usr/local/mysql \
84             --with-libxml-dir \
85             --with-gd \
86             --with-jpeg-dir \
87             --with-png-dir \
88             --with-freetype-dir \
89             --with-iconv-dir \
90             --with-zlib-dir \
91             --with-bz2 \
  92             --with-openssl \
93             --with-mcrypt \
94             --enable-soap \
95             --enable-gd-native-ttf \
96             --enable-mbstring \
97             --enable-sockets \
98             --enable-exif \
99             --disable-ipv6
100 check_ok
101 make && make install
102  check_ok
103   if [ -f /usr/local/php/etc/php.ini ];then
104           rm -f /usr/local/php/etc/php.ini
105           cp php.ini-production /usr/local/php/etc/php.ini
106   else
107           cp php.ini-production /usr/local/php/etc/php.ini
108
109   fi
110   break
111   ;;
112
113  *)
114             echo "only 1(5.4) or 2(5.6)"
115             ;;
116     esac
117 done
118 }
119 install_php



把php和apache结合在一起
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  1 #!/bin/bash
  2 check_ok(){
  3 if [ $? != 0 ];then
  4 echo "ERROR ,please check it now "
  5 exit 1
  6 fi
  7 }
  8 ############
  9 join_apa_php() {
10 sed -i '/AddType .*.gz .tgz$/a\AddType application\/x-httpd-php .php' /usr/local/apache2/conf/htt    pd.conf
11 check_ok
12 sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/' /usr/local/apache2/conf/httpd.    conf
13 check_ok
14 sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php index.html index.htm/' /usr/local/ap    ache2/conf/httpd.conf
15 check_ok
16 cat > /usr/local/apache2/htdocs/index.php <<EOF
17 <?php
18    phpinfo();
19 ?>
20 EOF
  21
22 if /usr/local/php/bin/php -i |grep -iq 'date.timezone => no value'
23 then
24     sed -i '/;date.timezone =$/a\date.timezone = "Asia\/Chongqing"'  /usr/local/php/etc/php.ini
25 fi
26 }
27 join_apa_php



也可以把以上的四个shell脚本混合在一起,组成一个脚本,但是要注意细节问题!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-152317-1-1.html 上篇帖子: 编译方式搭建LAMP环境httpd-2.2.31+mysql-5.6.27+php-5.6.14 下篇帖子: LAMP or LNMP 一键安装脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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