天天看点

CentOS6.5自动化安装LAMP脚本

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

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

<code>#!/bin/bash</code>

<code>#date:2014-8-31</code>

<code>#blog:lizhenliang.blog.51cto.com</code>

<code>########## function ##########</code>

<code>depend_pkg ()</code>

<code>{</code>

<code>    </code><code>yum </code><code>install</code> <code>gcc gcc-c++ </code><code>make</code> <code>cmake ncurses-devel libxml2-devel \</code>

<code>    </code><code>perl-devel libcurl-devel libgcrypt libgcrypt-devel libxslt \</code>

<code>    </code><code>libxslt-devel pcre-devel openssl-devel wget -y</code>

<code>}</code>

<code>cat</code> <code>&lt;&lt;end</code>

<code>        </code><code>1.[</code><code>install</code> <code>apache2.4]</code>

<code>        </code><code>2.[</code><code>install</code> <code>mysql5.5]</code>

<code>        </code><code>3.[</code><code>install</code> <code>php5.4]</code>

<code>end</code>

<code>read</code> <code>-p </code><code>"please input number : "</code> <code>num</code>

<code>case</code> <code>$num </code><code>in</code>

<code>1)</code>

<code>########## install depend pkg ##########</code>

<code>depend_pkg;</code>

<code>workdir=</code><code>/usr/local/src</code>

<code>cd</code> <code>$workdir</code>

<code>[ -f </code><code>"apr-1.5.1.tar.gz"</code> <code>] || wget http:</code><code>//mirror</code><code>.bit.edu.cn</code><code>/apache/apr/apr-1</code><code>.5.1.</code><code>tar</code><code>.gz</code>

<code>[ -f </code><code>"apr-util-1.5.3.tar.gz"</code> <code>] || wget http:</code><code>//mirror</code><code>.bit.edu.cn</code><code>/apache/apr/apr-util-1</code><code>.5.3.</code><code>tar</code><code>.gz</code>

<code>[ -f </code><code>"httpd-2.4.10.tar.gz"</code> <code>] || wget http:</code><code>//mirror</code><code>.bit.edu.cn</code><code>/apache/httpd/httpd-2</code><code>.4.10.</code><code>tar</code><code>.gz</code>

<code>ls</code> <code>| </code><code>xargs</code> <code>-i </code><code>file</code> <code>tar</code> <code>zxvf </code><code>file</code> <code>-c $workdir</code>

<code>cd</code> <code>apr-1.5.1</code>

<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/apr</code>

<code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code>

<code>if</code> <code>[ $? -</code><code>eq</code> <code>0 ];</code><code>then</code>

<code>    </code><code>cd</code> <code>$workdir</code>

<code>    </code><code>cd</code> <code>apr-util-1.5.3</code>

<code>    </code><code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/apr-util</code> <code>--with-apr=</code><code>/usr/local/apr</code>

<code>    </code><code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code>

<code>else</code>

<code>    </code><code>echo</code> <code>"------ apr make failed. ------"</code>

<code>    </code><code>exit</code> <code>1</code>

<code>fi</code>

<code>########## install apache ##########</code>

<code>httpdir=</code><code>/usr/local/apache2</code><code>.4</code>

<code>    </code><code>cd</code> <code>httpd-2.4.10</code>

<code>    </code><code>.</code><code>/configure</code> <code>-prefix=$httpdir -</code><code>enable</code><code>-so -</code><code>enable</code><code>-rewrite -</code><code>enable</code><code>-modules=all \</code>

<code>--with-apr=</code><code>/usr/local/apr</code> <code>--with-apr-util=</code><code>/usr/local/apr-util</code>

<code>    </code><code>echo</code> <code>"------ apr-util make failed. ------"</code>

<code>    </code><code>conf=$httpdir</code><code>/conf/httpd</code><code>.conf</code>

<code>    </code><code>cp</code> <code>$httpdir</code><code>/bin/apachectl</code> <code>/etc/init</code><code>.d</code><code>/httpd</code>

<code>    </code><code>chmod</code> <code>+x </code><code>/etc/init</code><code>.d</code><code>/httpd</code>

<code>    </code><code>sed</code> <code>-i </code><code>"s/#servername www.example.com:80/servername ${ip}:80/g"</code> <code>$conf</code>

<code>    </code><code>sed</code> <code>-i </code><code>'s/directoryindex index.html/directoryindex index.php index.html/g'</code> <code>$conf</code>

<code>    </code><code>sed</code> <code>-i </code><code>"391 s/^/addtype application\/x-httpd-php .php/"</code> <code>$conf</code>

<code>    </code><code>/etc/init</code><code>.d</code><code>/httpd</code> <code>start</code>

<code>    </code><code>ip=`</code><code>ifconfig</code> <code>eth0 |</code><code>grep</code> <code>"inet addr"</code> <code>|</code><code>cut</code> <code>-d: -f2 |</code><code>awk</code> <code>'{print $1}'</code><code>`</code>

<code>    </code><code>urlcode=`curl -o </code><code>/dev/null</code> <code>-s -w </code><code>"%{http_code}"</code> <code>$ip</code><code>/index</code><code>.html` </code>

<code>    </code><code>[ $urlcode -</code><code>eq</code> <code>200 ] &amp;&amp; </code><code>echo</code> <code>"apache install success."</code> <code>|| </code><code>echo</code> <code>"apache install failed."</code>

<code>    </code><code>echo</code> <code>"------ apache make failed. ------"</code>

<code>;;</code>

<code>2)</code>

<code>########## install mysql ##########</code>

<code>/usr/sbin/groupadd</code> <code>mysql</code>

<code>/usr/sbin/useradd</code> <code>-g mysql -s </code><code>/sbin/nologin</code> <code>mysql</code>

<code>mysqldir=</code><code>/usr/local/mysql5</code><code>.5</code>

<code>[ -f </code><code>"mysql-5.5.39.tar.gz"</code> <code>] || wget http:</code><code>//cdn</code><code>.mysql.com</code><code>/downloads/mysql-5</code><code>.5</code><code>/mysql-5</code><code>.5.39.</code><code>tar</code><code>.gz</code>

<code>tar</code> <code>zxvf mysql-5.5.39.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>mysql-5.5.39</code>

<code>cmake -dcmake_install_prefix=$mysqldir \</code>

<code>-dsysconfdir=$mysqldir</code><code>/etc</code> <code>\</code>

<code>-dmysql_datadir=$mysqldir</code><code>/data</code> <code>\</code>

<code>-ddefault_charset=utf8 \</code>

<code>-ddefault_collation=utf8_general_ci</code>

<code>    </code><code>$mysqldir</code><code>/scripts/mysql_install_db</code> <code>\</code>

<code>    </code><code>--basedir=$mysqldir --datadir=$mysqldir</code><code>/data/</code> <code>--user=mysql 1&gt;</code><code>/dev/null</code>

<code>    </code><code>mkdir</code> <code>$mysqldir</code><code>/etc</code>

<code>    </code><code>cp</code> <code>support-files</code><code>/my-medium</code><code>.cnf $mysqldir</code><code>/etc/my</code><code>.cnf</code>

<code>    </code><code>cp</code> <code>support-files</code><code>/mysql</code><code>.server </code><code>/etc/init</code><code>.d</code><code>/mysqld</code>

<code>    </code><code>rm</code> <code>-rf </code><code>/etc/my</code><code>.cnf</code>

<code>    </code><code>#echo "path=$path:$mysqldir/bin" &gt;&gt; /etc/profile </code>

<code>    </code><code>#. /etc/profile</code>

<code>    </code><code>chmod</code> <code>+x </code><code>/etc/init</code><code>.d</code><code>/mysqld</code>

<code>    </code><code>chown</code> <code>-r root.mysql $mysqldir</code>

<code>    </code><code>chown</code> <code>-r mysql.mysql $mysqldir</code><code>/data/</code>

<code>    </code><code>$mysqldir</code><code>/bin/mysqld_safe</code> <code>--user=mysql&amp;</code>

<code>    </code><code>$mysqldir</code><code>/bin/mysqladmin</code> <code>-u root password </code><code>'123.com'</code>

<code>    </code><code>$mysqldir</code><code>/bin/mysql</code> <code>-uroot -p</code><code>'123.com'</code> <code>-e </code><code>"show databases;"</code>

<code>    </code><code>[ $? -</code><code>eq</code> <code>0 ] &amp;&amp; </code><code>echo</code> <code>"mysql install success."</code> <code>|| </code><code>echo</code> <code>"mysql install failed."</code>

<code>    </code><code>echo</code> <code>"------mysql cmake failed.------"</code>

<code>    </code><code>exit</code> <code>1 </code>

<code>3)</code>

<code>########## install gd ##########</code>

<code>yum </code><code>install</code> <code>gd freetype freetype-devel libpng libpng-devel zlib zlib-devel libjpeg* -y</code>

<code>########## install php ##########</code>

<code>phpdir=</code><code>/usr/local/php5</code><code>.4</code>

<code>phpconf=$phpdir</code><code>/etc/php</code><code>.ini</code>

<code>[ -f </code><code>"php-5.4.31.tar.gz"</code> <code>] || wget http:</code><code>//cn2</code><code>.php.net</code><code>/distributions/php-5</code><code>.4.31.</code><code>tar</code><code>.gz</code>

<code>tar</code> <code>zxvf php-5.4.31.</code><code>tar</code><code>.gz </code>

<code>cd</code> <code>php-5.4.31</code>

<code>.</code><code>/configure</code> <code>-prefix=$phpdir \</code>

<code>--with-config-</code><code>file</code><code>-path=$phpdir</code><code>/etc</code> <code>\</code>

<code>--with-apxs2=</code><code>/usr/local/apache2</code><code>.4</code><code>/bin/apxs</code> <code>\</code>

<code>--with-mysql=</code><code>/usr/local/mysql5</code><code>.5 \</code>

<code>--with-mysqli=</code><code>/usr/local/mysql5</code><code>.5</code><code>/bin/mysql_config</code> <code>\</code>

<code>--</code><code>enable</code><code>-soap --</code><code>enable</code><code>-bcmath --</code><code>enable</code><code>-zip --</code><code>enable</code><code>-</code><code>ftp</code> <code>\</code>

<code>--</code><code>enable</code><code>-mbstring --with-gd --with-libxml-</code><code>dir</code> <code>--with-jpeg-</code><code>dir</code> <code>\</code>

<code>--with-png-</code><code>dir</code> <code>--with-freetype-</code><code>dir</code> <code>--with-zlib \</code>

<code>--with-libxml-</code><code>dir</code><code>=</code><code>/usr</code> <code>--with-curl --with-xsl --with-openssl</code>

<code>    </code><code>cp</code> <code>php.ini-production $phpconf</code>

<code>    </code><code>echo</code> <code>"data.timezone = asia\shanghai"</code> <code>&gt;&gt; $phpconf</code>

<code>    </code><code>sed</code> <code>-i </code><code>'s/upload_max_filesize = 2m/ upload_max_filesize = 50m/g'</code> <code>$phpconf</code>

<code>    </code><code>sed</code> <code>-i </code><code>'s/display_errors = off/display_errors = on/g'</code> <code>$phpconf</code>

<code>    </code><code>echo</code> <code>"&lt;?php phpinfo();?&gt;"</code> <code>&gt; </code><code>/usr/local/apache2</code><code>.4</code><code>/htdocs/index</code><code>.php</code>

<code>    </code><code>/etc/init</code><code>.d</code><code>/httpd</code> <code>restart </code>

<code>    </code><code>/etc/init</code><code>.d</code><code>/mysqld</code> <code>restart &amp;&gt;</code><code>/dev/null</code>

<code>    </code><code>urlcode=`curl -o </code><code>/dev/null</code> <code>-s -w </code><code>"%{http_code}"</code> <code>$ip</code><code>/index</code><code>.php`</code>

<code>    </code><code>[ $urlcode -</code><code>eq</code> <code>200 ] &amp;&amp; </code><code>echo</code> <code>"php install success."</code> <code>|| </code><code>echo</code> <code>"php install failed."</code>

<code>    </code><code>echo</code> <code>"/usr/local/apache/bin/apachectl start"</code> <code>&gt;&gt; </code><code>/etc/rc</code><code>.</code><code>local</code>

<code>    </code><code>chkconfig mysqld on</code>

<code>    </code><code>echo</code> <code>"------ php make failed. ------"</code>

<code>*)</code>

<code>    </code><code>echo</code> <code>"please input number 1 2 3."</code>

<code>esac</code>

使用方法:

CentOS6.5自动化安装LAMP脚本

shell脚本能力薄弱,有错误之处,还望指正。谢谢!