天天看点

hell脚本分享:DebianLNMP一键安装服务器套件

DebianLNMP采用shell脚本快速安装Nginx MySQL PHP phpMyAdmin软件

该脚本适用于Debian6系统下安装LNMP服务器套件。

安装脚本采用的核心原理

1、通过apt-get命令安装。因此安装速度快,获取的软件是编译好的二进制文件。

2、采用最新的Debian开源软件库。脚本自动向系统添加dotdeb.gpg库key。

3、安装时自动向debian官方最快的debian CDN源获取所需的软件包,基础工具包。

4、快速update系统依赖的软件包,自动卸载与Nginx MySQL PHP组件冲突的其他工具包,保障正常安装。

5、可覆盖安装,可与官方软件库的最新稳定版本保持一致,Nginx MySQL PHP 可保持同步更新。

6、nginx默认配置一包含discuz、discuzx、sablog、wordpress、wp2、none、phpwind、supesite、typecho、uchome、dabr伪静态规则,伪静态规则直接可适用(添加新虚拟主机时用include引用,无需更改即可使用)。

总之DebianLNMP-Jimmyli.sh脚本的特色是“最快最新”一键安装包。

在Debian6系统下安装LNMP(Debian6 + Nginx1.2.x + PHP5.3.x + MySQL5.5.x 最省资源一键安装包)只需要简单两条命令。

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

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

<code>#Author: Jimmy Li </code>

<code># Created by http://jimmyli.blog.51cto.com/ </code>

<code>PATH=</code><code>/bin</code><code>:</code><code>/sbin</code><code>:</code><code>/usr/bin</code><code>:</code><code>/usr/sbin</code><code>:</code><code>/usr/local/bin</code><code>:</code><code>/usr/local/sbin</code><code>:~</code><code>/bin</code>

<code>export</code> <code>PATH</code>

<code>cur_dir=$(</code><code>pwd</code><code>)</code>

<code>source_dir=$cur_dir</code><code>/debian-lnmp</code>

<code>echo</code> <code>"$source_dir"</code>

<code>echo</code> <code>-e </code><code>"\033[47;30m Compiled by Jimmy Li http://jimmyli.blog.51cto.com \033[0m"</code>

<code>servername=</code><code>"www.jimmyli.com"</code>

<code>echo</code> <code>-e </code><code>"\033[41;37m Please enter the server domain name, the default is: $servername  &lt; \033[0m"</code>

<code>echo</code> <code>-e </code><code>"\033[41;37m Example: www.jimmyli.com \033[0m"</code>

<code>read</code> <code>-p </code><code>" --Enter: "</code> <code>hostname</code>

<code>if</code> <code>[ </code><code>"$hostname"</code> <code>= </code><code>""</code> <code>]; </code><code>then</code>

<code> </code><code>hostname</code><code>=</code><code>"$servername"</code>

<code>fi</code>

<code>echo</code> <code>""</code>

<code>echo</code> <code>-e </code><code>"\033[41;37m Server domain name: $hostname \033[0m"</code>

<code>get_char()</code>

<code>{</code>

<code>SAVEDSTTY=`stty -g`</code>

<code>stty -</code><code>echo</code>

<code>stty cbreak</code>

<code>dd</code> <code>if</code><code>=</code><code>/dev/tty</code> <code>bs=1 count=1 2&gt; </code><code>/dev/null</code>

<code>stty -raw</code>

<code>stty </code><code>echo</code>

<code>stty $SAVEDSTTY</code>

<code>}</code>

<code>echo</code> <code>-e </code><code>"\033[47;30m * Press any key to start installing DebianLNMP-Jimmyli ... \033[0m"</code>

<code>echo</code> <code>-e </code><code>"\033[47;30m * Or press Ctrl + C to cancel the installation and exit \033[0m"</code>

<code>char=`get_char`</code>

<code># Check if user is root</code>

<code>if</code> <code>[ $(</code><code>id</code> <code>-u) != </code><code>"0"</code> <code>]; </code><code>then</code>

<code>    </code><code>echo</code> <code>"Error: You must be root to run this script, please use root to install lnmp"</code>

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

<code>apt-get </code><code>install</code> <code>-y gcc g++ </code><code>make</code> <code>wget</code>

<code>wget -c http:</code><code>//sourceforge</code><code>.net</code><code>/projects/debian-lnmp/files/DebianLNMP/conf</code><code>.</code><code>tar</code><code>.gz</code>

<code>if</code> <code>[ -s conf.</code><code>tar</code><code>.gz ]; </code><code>then</code>

<code>  </code><code>echo</code> <code>"conf.tar.gz [found]"</code>

<code>  </code><code>else</code>

<code>  </code><code>echo</code> <code>"Error: conf.tar.gz not found!!!download now......"</code>

<code>  </code><code>wget -c http:</code><code>//sourceforge</code><code>.net</code><code>/projects/debian-lnmp/files/DebianLNMP/conf</code><code>.</code><code>tar</code><code>.gz</code>

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

<code>tar</code> <code>zxvf conf.</code><code>tar</code><code>.gz</code>

<code>if</code> <code>[ -s </code><code>/etc/selinux/config</code> <code>]; </code><code>then</code>

<code>sed</code> <code>-i </code><code>'s/SELINUX=enforcing/SELINUX=disabled/g'</code> <code>/etc/selinux/config</code>

<code>dpkg -l |</code><code>grep</code> <code>mysql | </code><code>awk</code> <code>-F </code><code>" "</code> <code>'{print $2}'</code> <code>| </code><code>xargs</code> <code>dpkg -P</code>

<code>dpkg -P libmysqlclient15off libmysqlclient15-dev mysql-common </code>

<code>dpkg -l |</code><code>grep</code> <code>apache | </code><code>awk</code> <code>-F </code><code>" "</code> <code>'{print $2}'</code> <code>| </code><code>xargs</code> <code>dpkg -P</code>

<code>dpkg -P apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2.2-common</code>

<code>dpkg -l |</code><code>grep</code> <code>php5 | </code><code>awk</code> <code>-F </code><code>" "</code> <code>'{print $2}'</code> <code>| </code><code>xargs</code> <code>dpkg -P</code>

<code>apt-get clean</code>

<code>apt-get autoclean</code>

<code>rm</code> <code>/var/lib/apt/lists/</code><code>* -vf</code>

<code>apt-get check</code>

<code>apt-get upgrade</code>

<code>apt-get update</code>

<code>apt-get autoremove -y</code>

<code>apt-get -fy </code><code>install</code>

<code>dpkg -P mysql-server mysql-client</code>

<code>dpkg -P nginx php5-fpm php5-gd php5-mysql</code>

<code>apt-get remove -y apache2 apache2-doc apache2-utils apache2.2-common apache2.2-bin apache2-mpm-prefork apache2-doc apache2-mpm-worker mysql-client mysql-server mysql-common</code>

<code>apt-get -y </code><code>install</code> <code>unzip</code>

<code>wget -N -t 0 http:</code><code>//www</code><code>.dotdeb.org</code><code>/dotdeb</code><code>.gpg</code>

<code>apt-key add dotdeb.gpg</code>

<code>cat</code> <code>&gt;&gt; </code><code>/etc/apt/sources</code><code>.list&lt;&lt;EOF</code>

<code>deb http:</code><code>//packages</code><code>.dotdeb.org oldstable all</code>

<code>deb-src http:</code><code>//packages</code><code>.dotdeb.org oldstable all</code>

<code>deb http:</code><code>//cdn</code><code>.debian.net</code><code>/debian/</code> <code>squeeze main</code>

<code>deb-src http:</code><code>//cdn</code><code>.debian.net</code><code>/debian/</code> <code>squeeze main</code>

<code>deb http:</code><code>//cdn</code><code>.debian.net</code><code>/debian/</code> <code>squeeze-updates main</code>

<code>deb-src http:</code><code>//cdn</code><code>.debian.net</code><code>/debian/</code> <code>squeeze-updates main</code>

<code>EOF</code>

<code>apt-get </code><code>install</code> <code>-y mysql-server mysql-client</code>

<code>apt-get </code><code>install</code> <code>-y nginx php5-fpm php5-gd php5-mysql</code>

<code>sed</code> <code>-i </code><code>"s#;cgi.fix_pathinfo=1#cgi.fix_pathinfo=0#g"</code> <code>/etc/php5/fpm/php</code><code>.ini</code>

<code>sed</code> <code>-i </code><code>"s#disable_functions =#disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,#g"</code> <code>/etc/php5/fpm/php</code><code>.ini</code>

<code>sed</code> <code>-i </code><code>'s/short_open_tag = Off/short_open_tag = On/g'</code> <code>/etc/php5/fpm/php</code><code>.ini</code>

<code>sed</code> <code>-i </code><code>"s#;open_basedir =#open_basedir = /tmp/:/home/www/:/proc/#g"</code> <code>/etc/php5/fpm/php</code><code>.ini</code>

<code>rm</code> <code>-rf </code><code>/etc/php5/fpm/pool</code><code>.d</code><code>/www</code><code>.conf</code>

<code>mv</code> <code>www.conf </code><code>/etc/php5/fpm/pool</code><code>.d</code><code>/www</code><code>.conf</code>

<code>rm</code> <code>-rf </code><code>/home/wwwlogs</code>

<code>rm</code> <code>-rf </code><code>/home/wwwroot</code>

<code>rm</code> <code>-rf </code><code>/home/www</code>

<code>mkdir</code> <code>/home/wwwlogs</code>

<code>mkdir</code> <code>/home/wwwroot</code>

<code>mkdir</code> <code>/home/www</code>

<code>mkdir</code> <code>/var/run/php5</code>

<code>mkdir</code> <code>/etc/nginx</code>

<code>mkdir</code> <code>/etc/nginx/host</code>

<code>rm</code> <code>-rf </code><code>/etc/nginx/sites-enabled/</code><code>*</code>

<code>rm</code> <code>-rf </code><code>/etc/nginx/nginx</code><code>.conf</code>

<code>rm</code> <code>-rf </code><code>/etc/nginx/fastcgi_params</code>

<code>mv</code> <code>nginx.conf </code><code>/etc/nginx/nginx</code><code>.conf</code>

<code>mv</code> <code>fastcgi_params </code><code>/etc/nginx/fastcgi_params</code>

<code>sed</code> <code>-i </code><code>"s,lnmp.jimmyli.com,$hostname,g"</code> <code>/etc/nginx/nginx</code><code>.conf</code>

<code>mv</code> <code>discuz.conf </code><code>/etc/nginx</code>

<code>mv</code> <code>discuzx.conf </code><code>/etc/nginx</code>

<code>mv</code> <code>sablog.conf </code><code>/etc/nginx</code>

<code>mv</code> <code>wordpress.conf </code><code>/etc/nginx</code>

<code>mv</code> <code>wp2.conf </code><code>/etc/nginx</code>

<code>mv</code> <code>none.conf </code><code>/etc/nginx</code>

<code>mv</code> <code>phpwind.conf </code><code>/etc/nginx</code>

<code>mv</code> <code>supesite.conf </code><code>/etc/nginx</code>

<code>mv</code> <code>typecho.conf </code><code>/etc/nginx</code>

<code>mv</code> <code>uchome.conf </code><code>/etc/nginx</code>

<code>mv</code> <code>dabr.conf </code><code>/etc/nginx</code>

<code>mv</code> <code>index.html </code><code>/home/www/index</code><code>.html</code>

<code>mv</code> <code>nginx_small.png </code><code>/home/www/nginx_small</code><code>.png</code>

<code>mv</code> <code>prober.php </code><code>/home/www/php</code><code>.php</code>

<code>wget -c http:</code><code>//nchc</code><code>.dl.sourceforge.net</code><code>/project/phpmyadmin/phpMyAdmin/3</code><code>.4.10.1</code><code>/phpMyAdmin-3</code><code>.4.10.1-all-languages.zip</code>

<code>unzip phpMyAdmin-3.4.10.1-all-languages.zip</code>

<code>mv</code> <code>phpMyAdmin-3.4.10.1-all-languages </code><code>/home/www/phpMyAdmin</code>

<code>rm</code> <code>-rf phpMyAdmin-3.4.10.1-all-languages.zip</code>

<code>chown</code> <code>-R www-data </code><code>/home/www</code>

<code>chown</code> <code>-R www-data </code><code>/home/wwwroot</code>

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

<code>/etc/init</code><code>.d</code><code>/php5-fpm</code> <code>start</code>

<code>/etc/init</code><code>.d</code><code>/php5-fpm</code> <code>restart</code>

<code>## info ##</code>

<code>echo</code> <code>-e </code><code>"\033[41;37m ******************************************************** \033[0m"</code>

<code>echo</code> <code>-e </code><code>"\033[41;37m *      LNMP Installer for Debian                       * \033[0m"</code>

<code>echo</code> <code>-e </code><code>"\033[41;37m *                                                      * \033[0m"</code>

<code>echo</code> <code>-e </code><code>"\033[41;37m *  apt-get install Nginx+PHP+MySql                     * \033[0m"</code>

<code>echo</code> <code>-e </code><code>"\033[41;37m *  Compiled by Jimmy Li http://jimmyli.blog.51cto.com  * \033[0m"</code>

<code>echo</code> <code>-e </code><code>"\033[41;37m *  Website: http://sourceforge.net/p/debian-lnmp       * \033[0m"</code>

<code>## END ##</code>

     本文转自jimmy_lixw 51CTO博客,原文链接:http://blog.51cto.com/jimmyli/1275678,如需转载请自行联系原作者

继续阅读