Centos 上面用Shell脚本一键安装LAMP环境

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

   LAMP指的Linux(操作系统)、Apache(HTTP 服务器),MySQL(数据库软件)和PHP构建的web服务器。该网站架构是目前国际流行和通用的Web架构,LAMP跨平台、高性能等优势,是很多企业和公司搭建WEB服务的首选平台。

   1)系统环境介绍
     Centos 5.8 64位
     Apache:httpd-2.4.4.tar.gz
     PHP:   php-5.4.17.tar.gz 
     Mysql: mysql-5.6.12.tar.gz

   2)安装脚本

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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
#!/bin/bash
PATH= /usr/local/sbin : /usr/local/bin : /usr/sbin : /usr/bin : /sbin : /bin
export  PATH
#INFO函数定义输出字体颜色,echo -e 表示保持字符串的特殊含义,$1表示字体颜色编号,$2表示等待程序执行时间,$3表示echo输出内容。
function  INFO()
{
      echo  -e  "\e[$1;49;1m: $3 \033[39;49;0m"
      sleep  "$2"
      echo  ""
}
#非root用户不能执行该脚本
if   "$UID"  != 0 ];
         then
           echo  " "
                 INFO 35  "0"  "Must be root ro run this script."
         exit  1
fi
#USAGE函数定义脚本用法,可反复调用,basename其实就是脚本名,\n表示换行。
function  USAGE()
{
         INFO 35  "0.1"  "Please see the script of the usage:"
         basename =$( basename  "$0" )
         INFO \
           36  "0"  \
           "$(echo -e " Usage: \n\n./$ basename  (apache|mysql|php)  install  \n./$ basename  apache (start|stop|restart) \n./$ basename  mysql (start|stop|restart)\n ")"
}
#YUM_INSTALL函数安装依赖包,可反复调用,$@表示所有参数都分别被双引号引住"$1","$2",而$*表示所有这些参数都被双引号引住"$1$2"
function  YUM_INSTALL()
{
         for  in  $@;  do
           INFO 32 1  "Install depend on the [ $a ]"
                 yum -y  install  $a ||  exit  1
           if  [ $a =  "libXpm-devel"  ];  then
                ln  -s  /usr/lib/x86_64-linux-gnu/libXpm .so  /usr/lib/libXpm .so
           #elif [ $a = "libsasl2-dev" ]; then
           #     cp /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/
           fi
         done
}
#INSTALL函数定义安装程序,可一反复调用,安装apache程序的时候要先安装3个依赖包,在安装mysql的时候要用cmake编译。$1表示要安装的程序,$2表示yum安装对应的依赖包,$3表示程序解压后的目录,$4表示程序源码包。
function  INSTALL()
{
      YUM_INSTALL  "$2"  &&  cd  $SOURCE_PATH
      [ -d $3 ] &&  rm  -r $3; INFO 31 4  "Unpack the $4 installation package......"
      tar  zxvf $4;  cd  $3 ;  pwd  ; INFO 32 4  "Configure the $1......"
             if  [ $1 = apache ];
                 then
                         cp  -rf .. /apr-1 .4.8 srclib /apr
                         cp  -rf .. /apr-util-1 .5.2 srclib /apr-util
                . /configure  $5 ||  exit  1
      elif  [ $1 = mysql ];
           then
                cmake $5 ||  exit  1
      elif  [ $1 = openssl ];
           then
                . /config  $5 ||  exit  1
      elif  [ $1 = libpng ];
           then
                cp  scripts /makefile .linux makefile
      elif  [ $1 = jpegsrc.v6b. tar .gz ];
           then
                cp  /usr/share/libtool/config .guess  ./
                cp  /usr/share/libtool/config .sub ./
                . /configure  $5 ||  exit  1
                mkdir  -p   /usr/local/env/jpeg/bin
                mkdir  -p   /usr/local/env/jpeg/lib
                mkdir  -p   /usr/local/env/jpeg/include
                mkdir  -p  /usr/local/env/jpeg/man/man1
                  else
                . /configure  $5 ||  exit  1
             fi
      INFO 36 3  "Compile $1......"
             make  ||  exit  1 && INFO 34 4  "Install $1......"  make  install  && INFO 33 4  "$1 installation is successful......"
                                                                                                                                                                                                                                                                                
      if  [ $1 = mysql ];
           then
                echo  $INSTALL_PATH /mysql/lib/mysql  >>  /etc/ld .so.conf
                /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = libiconv ];
           then
                echo  "/usr/local/env/libiconv/lib"  >>  /etc/ld .so.conf
                /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = libxml2 ];
           then
                echo  "/usr/local/env/libxml2/lib"  >>  /etc/ld .so.conf
                         /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = libmcrypt ];
           then
                echo  "/usr/local/env/libmcrypt/lib"  >>  /etc/ld .so.conf
                         /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = mhash ];
           then
                echo  "/usr/local/lib"  >>  /etc/ld .so.conf
                echo  "/usr/local/lib64"  >>  /etc/ld .so.conf
                         /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = gettext ];
           then
                         echo  "/usr/local/env/gettext/lib"  >>  /etc/ld .so.conf
                         /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = gd ];
           then
                sed  -i  '27 a void (*data);'  /usr/local/env/gd/include/gd_io .h
                echo  "/usr/local/env/gd/lib"  >>  /etc/ld .so.conf
                         /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = freetype ];
           then
                echo  "/usr/local/env/freetype/lib"  >>  /etc/ld .so.conf
                         /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = jpegsrc.v6b. tar .gz ];
                 then
                         echo  "/usr/local/env/jpeg/lib"  >>  /etc/ld .so.conf
                         /sbin/ldconfig  && INFO 33 4  "Add jpeg library file to ld.so.conf......"
      fi
}
#SERVICE函数定义程序启动,关闭,重启。
function  SERVICE()
{
      if  [ $1 = apache -a $2 = start ];  then
           $INSTALL_PATH/$1 /bin/apachectl  -k start && \
           INFO 33  "2.5"  "Apache startup success......"
           exit
      elif  [ $1 = apache -a $2 = stop ];  then
           $INSTALL_PATH/$1 /bin/apachectl  -k stop && \
           INFO 31  "2.5"  "Apache has stopped......"
           exit
      elif  [ $1 = apache -a $2 = restart ];  then
           $INSTALL_PATH/$1 /bin/apachectl  -k stop ;  sleep  2
           INFO 31  "2.5"  "Apache has stopped......"
           $INSTALL_PATH/$1 /bin/apachectl  -k start && \
           INFO 34  "2.5"  "Apache has restarted......"
           exit
      elif  [ $1 = mysql -a $2 = start ];  then
           /bin/bash  $INSTALL_PATH/$1 /bin/mysqld_safe  --defaults- file =$INSTALL_PATH/$1 /my .cnf 2>&1 >  /dev/null  &
           INFO 33  "2.5"  "Mysql startup success......"
           echo  -e  "$(netstat -ntpl|grep " /:::3306 ")"
           exit
      elif  [ $1 = mysql -a $2 = stop ];  then
           kill  $( netstat  -ntpl| awk  '/:::3306/{print $NF}' | awk  -F  '/'  '{print $1}' ) && \
           INFO 31  "2.5"  "Mysql has stopped......"
           exit
      elif  [ $1 = mysql -a $2 = restart ];  then
           kill  $( netstat  -ntpl| awk  '/:::3306/{print $NF}' | awk  -F  '/'  '{print $1}' ) && \
           INFO 31  "3"  "Mysql has stopped......"
           /bin/bash  $INSTALL_PATH/$1 /bin/mysqld_safe  --defaults- file =$INSTALL_PATH/$1 /my .cnf 2>&1 >  /dev/null  &
           INFO 34  "2.5"  "Mysql has restarted......"
           exit
      fi
}
#CONFIG_MYSQL函数用来定义mysql的配置。
function  CONFIG_MYSQL()
{
      INFO 32 3  "Configure the mysql......"
         groups  mysql || groupadd mysql &&  id  mysql ||  useradd  -g mysql mysql
         cd  $INSTALL_PATH /mysql  pwd
                 . /scripts/mysql_install_db  \
                         --user=mysql \
                         --basedir=$INSTALL_PATH /mysql/  \
                         --datadir=$INSTALL_PATH /mysql/data/  \
                         --defaults- file =$INSTALL_PATH /mysql/my .cnf
         echo  "" sleep  3
         cp  $( dirname  $SOURCE_PATH) /conf/my .cnf ./
      INFO 35 2  "Mysql configuration is complete......"
}
#CONFIG_HTTPD函数用来配置apache。
function  CONFIG_HTTPD()
{
      INFO 32 3  "Configure the apache......"
      echo  -e  "<?php\nphpinfo();\n?>"  > $INSTALL_PATH /apache/htdocs/phpinfo .php
      sed  -i  's/^\ \ \ \ AddType application\/x-gzip .gz .tgz$/&\n\ \ \ \ AddType application\/x-httpd-php .php/'  \
      $INSTALL_PATH /apache/conf/httpd .conf
      sed  -i  's/^#ServerName www.example.com:80$/&\nServerName 127.0.0.1:80/'  $INSTALL_PATH /apache/conf/httpd .conf
      INFO 35 2  "Apache configuration is complete......"
}
#CONFIG_PHP函数用来配置php。
function  CONFIG_PHP()
{
      INFO 32 3  "Configure the php......"
      cp  $SOURCE_PATH/$1 /php .ini-development $INSTALL_PATH /php5/etc/php .ini
      INFO 35 2  "Php configuration is complete......"
}
#INSTALL_BRANCH函数定义程序安装,${TAR_NAME[@]}是shell脚本中数组写法,即取全部元素,即TAR_NAME里面的所有包,SERVER_NAME表示包的名称,COMPILE_DIR表示包名+版本后,即解压后的目录名。
function  INSTALL_BRANCH()
{
      for  in  ${TAR_NAME[@]};  do
              SERVER_NAME=$( echo  $i| awk  -F  "-[0-9]"  '{print $1}' )
              COMPILE_DIR=$( echo  $i| awk  -F  ".tar.gz"  '{print $1}' )
           if  [ $1 = $SERVER_NAME -a $1 = apr ];  then
                INSTALL apr  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/apr"
           elif  [ $1 = $SERVER_NAME -a $1 = apr-util ]; then
                INSTALL apr-util  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/apr-util --with-apr=/usr/local/env/apr"
           elif  [ $1 = $SERVER_NAME -a $1 = pcre ];  then
                INSTALL pcre  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/pcre"
           elif  [ $1 = $SERVER_NAME -a $1 = httpd ];  then
                INSTALL apache  "$HTTP_YUM"  "$COMPILE_DIR"  "$i"  "$HTTP_PARAMETERS"
                CONFIG_HTTPD
           elif  [ $1 = $SERVER_NAME -a $1 = mysql ];  then
                INSTALL mysql  "$MYSQL_YUM"  "$COMPILE_DIR"  "$i"  "$MYSQL_PARAMETERS"
                CONFIG_MYSQL
           elif  [ $1 = $SERVER_NAME -a $1 = libiconv ];  then
                INSTALL libiconv  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/libiconv"
           elif   [ $1 = $SERVER_NAME -a $1 = libxml2 ];  then
                INSTALL libxml2  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/libxml2 --with-iconv=/usr/local/env/libiconv"
           elif   [ $1 = $SERVER_NAME -a $1 = curl ];  then       
                INSTALL curl  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/curl --enable-utf8"
           elif   [ $1 = $SERVER_NAME -a $1 = libmcrypt ];  then                                  
                INSTALL libmcrypt  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/libmcrypt"
           elif   [ $1 = $SERVER_NAME -a $1 = mhash ];  then
                INSTALL mhash  " "  "$COMPILE_DIR"  "$i"  " "
           elif   [ $1 = $SERVER_NAME -a $1 = mcrypt ];  then
                INSTALL mcrypt  " "  "$COMPILE_DIR"  "$i"  "--prefix= /usr/local/env/mcrypt  \
                --with-libmcrypt-prefix= /usr/local/env/libmcrypt  \
                --with-libiconv-prefix= /usr/local/env/libiconv "
           elif    [ $1 = $SERVER_NAME -a $1 = gettext ];  then
                         INSTALL gettext  " "  "$COMPILE_DIR"  "$i"  "--prefix= /usr/local/env/gettext  \
                         --with-libiconv-prefix= /usr/local/env/libiconv  \
                --with-libxml2-prefix= /usr/local/env/libxml2 "
           elif   [ $1 = $SERVER_NAME -a $1 = freetype ];  then
                         INSTALL freetype  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/freetype"
           elif   [ $1 = $SERVER_NAME -a $1 = jpegsrc.v6b. tar .gz ];  then
                COMPILE_DIR= "jpeg-6b"
                         INSTALL jpegsrc.v6b. tar .gz  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/jpeg --enable-shared --enable-static"
           elif   [ $1 = $SERVER_NAME -a $1 = libpng ];  then
                         INSTALL libpng  " "  "$COMPILE_DIR"  "$i"  " "
           elif   [ $1 = $SERVER_NAME -a $1 = gd ];  then
                INSTALL gd  " "  "$COMPILE_DIR"  "$i"  "--prefix= /usr/local/env/gd  --with-png= /usr  \
                --with-freetype= /usr/local/env/freetype  \
                --with-jpeg= /usr/local/env/jpeg   --with-fontconfig= /usr  --with-xpm= /usr "
           elif   [ $1 = $SERVER_NAME -a $1 = openssl ];  then
                INSTALL openssl  " "  "$COMPILE_DIR"  "$i"  "-fPIC --prefix=/usr/local/env/openssl shared"
           elif   [ $1 = $SERVER_NAME -a $1 = php ];  then
                INSTALL php5  "$PHP5_YUM"  "$COMPILE_DIR"  "$i"  "$PHP5_PARAMETERS"
                CONFIG_PHP  "$COMPILE_DIR"
                break
           else
                continue
           fi
      done
}
#MOD_CASE函数用KASE定义选择安装程序。
function  MOD_CASE()
{
      if  [[ $1 =~ apache|mysql|php ]] && [[ $2 =~  install |start|stop|restart ]];  then
           INFO 32  "1.5"  "Input the correct,according to the option to perform related operations......"
           echo  ""
           if  [ $2 =  install  ];  then
                case  "$1 $2"  in
                     "apache install" )
                          INFO 35  "2.5"  "Start to $1 the $2......"
                          INSTALL_BRANCH apr
                          INSTALL_BRANCH apr-util
                          INSTALL_BRANCH pcre
                          INSTALL_BRANCH httpd
                          ;;
                     "mysql install" )
                          INFO 35  "2.5"  "Start to $1 the $2......"
                          INSTALL_BRANCH mysql
                          ;;
                     "php install" )
                          INFO 35  "2.5"  "Start to $1 the $2......"
                          export  LD_LIBRARY_PATH= /lib/ : /usr/lib/ : /usr/local/lib : /usr/local/lamp/mysql/lib
                          INSTALL_BRANCH libiconv
                          INSTALL_BRANCH libxml2
                          INSTALL_BRANCH curl
                          INSTALL_BRANCH libmcrypt
                          INSTALL_BRANCH mhash
                          INSTALL_BRANCH mcrypt
                          INSTALL_BRANCH gettext
                          INSTALL_BRANCH freetype
                          INSTALL_BRANCH jpegsrc.v6b. tar .gz
                          INSTALL_BRANCH libpng
                          INSTALL_BRANCH gd
                          INSTALL_BRANCH openssl
                          #INSTALL_BRANCH httpd && INSTALL_BRANCH mysql && INSTALL_BRANCH php
                          INSTALL_BRANCH php
                          ;;
                esac
           else
                SERVICE $1 $2
           fi
      else
                INFO 31 1  "Input error, please try again!"
                INPUT
      fi
}
#LAMP程序安装的目录
INSTALL_PATH= "/usr/local/lamp"
#源码包存放目录
SOURCE_PATH= "$(cd $(dirname $0); pwd)/install_tar"
#源码包列表
TAR_NAME=(httpd-2.4.4. tar .gz mysql-5.6.12. tar .gz php-5.4.17. tar .gz apr-1.4.8. tar .gz apr-util-1.5.2. tar .gz pcre-8.10. tar .gz freetype-2.4.0. tar .gz jpegsrc.v6b. tar .gz libxml2-2.7.2. tar .gz mhash-0.9.9.9. tar .gz mcrypt-2.6.8. tar .gz gd-2.0.35. tar .gz libiconv-1.14. tar .gz gettext-0.18. tar .gz libmcrypt-2.5.8. tar .gz openssl-0.9.8p. tar .gz curl-7.32.0. tar .gz libpng-1.2.33. tar .gz)
#Apache,Mysql,PHP yum安装依赖包
HTTP_YUM= "build-essential libapr1 libapr1-dev libaprutil1 libaprutil1-dev gettext gettext-devel"
MYSQL_YUM= "cmake libncurses5 libncurses5-dev bison"
PHP5_YUM= "libxml2 libxml2-devel openssl libjpeg-devel bzip2 libXpm-devel libmcrypt-devel"
#Apache编译参数
HTTP_PARAMETERS="\
--prefix=$INSTALL_PATH /apache  \
-- enable -module=so \
-- enable -module=rewrite \
-- enable -shard=rewrite \
-- enable -shared=max \
--with-apr= /usr/local/env/apr  \
--with-apr-util= /usr/local/env/apr-util  \
--with-pcre= /usr/local/env/pcre  \
--with-included-apr \
"
#mysql编译参数
MYSQL_PARAMETERS="\
-DCMAKE_INSTALL_PREFIX=$INSTALL_PATH /mysql  \
-DYSQL_TCP_PORT=3306 \
-DMYSQL_DATADIR=$INSTALL_PATH /mysql/data  \
-DMYSQL_UNIX_ADDR=$INSTALL_PAHT /mysql/mysql .sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_DEBUG=0 \
"
#PHP编译参数
PHP5_PARAMETERS="\
--prefix=$INSTALL_PATH /php5  \
--with-config- file -path=$INSTALL_PATH /php5/etc  \
--with-mysql=$INSTALL_PATH /mysql  \
--with-apxs2=$INSTALL_PATH /apache/bin/apxs  \
--with-mysqli=$INSTALL_PATH /mysql/bin/mysql_config  \
--with-iconv= /usr/local/env/libiconv  \
--with-jpeg- dir = /usr/local/env/jpeg   \
--with-png- dir = /usr  \
--with-libxml- dir = /usr/local/env/libxml2   \
--with-pdo-mysql \
--with-zlib \
--with-curl= /usr/local/env/curl  \
--with-curlwrappers \
--with-mcrypt= /usr/local/env/libmcrypt  \
--with-gd= /usr/local/env/gd   \
--with-openssl= /usr/local/env/openssl  \
--with-mhash= /usr  \
--with-xmlrpc \
--with-xpm- dir  \
--with-freetype- dir = /usr/local/env/freetype  \
--with-zlib- dir  \
--with-ldap \
--with-ldap-sasl \
--with-pcre-regex \
--with-gettext= /usr/local/env/gettext  \
--with-ncurses \
-- enable -shared \
-- enable -xml \
-- enable -safe-mode \
-- enable -track-vars \
-- enable -magic-quotes \
-- enable -bcmath \
-- enable -sysvsem \
-- enable -sysshm \
-- enable -inline-optimization \
-- enable -mbregex \
-- enable -mbstring \
-- enable -gd-native-ttf \
-- enable -pcntl \
-- enable -sockets \
-- enable -zip \
-- enable -soap \
-- enable -discard-path \
-- enable -force-cgi-redirect \
-- enable -pdo \
-- enable -calendar \
-- enable -exif \
-- enable -zend-multibyte \
"
#--disable-rpath
#脚本调用帮助程序
if  [ $ # = 2 ]
      then
           INFO 33  "1.5"  "please wait......"
           echo  ""
           MOD_CASE  "$1"  "$2"
      else
           USAGE
           exit  1
fi

   3)脚本的用法

1
2
3
4
5
6
7
8
9
10
11
12
#下载安装脚本和源码包
wget https: //sourceforge .net /projects/opensourcefile/files/
Install_Centos_LAMP_v.0.1.zip /download  --no-check-certificate
unzip Install_Centos_LAMP_v.0.1.zip
chmod  +x Install_Centos_LAMP_v.0.1.sh
#查看脚本的用法,可通过该脚本安装apache,mysql,php,启动,关闭和重启apache和mysql。
. /Install_Centos_LAMP_v .0.1.sh
: Please see the script of the usage:
: Usage:
. /Install_Centos_LAMP_v .0.1.sh (apache|mysql|php)  install
. /Install_Centos_LAMP_v .0.1.sh apache (start|stop|restart)
. /Install_Centos_LAMP_v .0.1.sh mysql (start|stop|restart)


    本脚本应用了Shell编程里面的函数,数组,流程控制,变量,字体的加亮等功能,希望对学习WEB和Shell编程的同学有所帮助,最后非常感谢我的同学宝宝的支持。










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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
10月前
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
1620 69
|
9月前
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
4151 3
|
10月前
|
Ubuntu Linux 索引
Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
921 78
|
11月前
|
Linux 网络安全 Apache
针对在Centos/Linux安装Apache过程中出现的常见问题集锦
以上每个问题的解决方案应深入分析错误日志、系统消息和各种配置文件,以找到根本原因并加以解决。务必保持系统和Apache软件包更新到最新版本,以修复已知的bugs和安全漏洞。安装和管理Web服务器是一项需要细致关注和不断学习的任务。随着技术的发展,推荐定期查看官方文档和社区论坛,以保持知识的更新。
421 80
|
9月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
2313 16
|
10月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
760 10
|
11月前
|
人工智能 数据挖掘 Linux
Centos安装Python3.7(亲测可用)
本指南详细介绍了在基于Linux(以CentOS系统为例,使用yum包管理器)的系统上安装Python 3.7版本的完整流程。Python是一种广泛使用的高级编程语言,在各种领域如软件开发、数据分析、人工智能和区块链开发等都有着重要的应用。
897 2
|
10月前
|
运维 网络协议 Linux
CentOS下Bind服务的安装与故障排查
通过以上的步骤,您应该能够在CentOS系统上安装并配置BIND DNS服务,并进行基本的故障排查。
785 0
|
10月前
|
存储 Ubuntu Linux
安卓手机免root安装各种Linux系统:Ubuntu, Centos,Kali等
此外还可以安装Slackware、Archstrike等系统,还可以通过github查找方法安装更多有趣的东西。 昨日小编就是通过Termux安装的Kali Linux工具包。