阅读 63

shell脚本 一键部署 ——LNMP 架构(Nginx Mysql PHP Discuz!论坛)含可复制代码

LNMP 架构(Nginx Mysql PHP Discuz!论坛)

使用前请检查yum仓库是否建立,能正常时候yum install安装软件即可,在编写脚本时,分模块进行编写并测试!

并把所需要的安装包全部放到/opt目录下,并确定源码编译时使用的核数

具体脚本如下(分模块):

 

  1 #!/bin/bash
  2 #安装nginx服务
  3 
  4 #########安装nginx服务################
  5 systemctl stop firewalld
  6 systemctl disable firewalld
  7 setenforce 0
  8 
  9 #安装依赖包
 10 yum -y install pcre-devel zlib-devel gcc gcc-c++ make &> /dev/null
 11 
 12 echo -e  "\033[34;1m Nginx依赖包安装完成! \033[0m"
 13 
 14 #创建运行用户
 15 useradd -M -s /sbin/nologin nginx
 16 
 17 #编译安装
 18 cd /opt
 19 tar zxvf nginx-1.12.2.tar.gz -C /opt/ &> /dev/null
 20 
 21 cd nginx-1.12.2/
 22 ./configure  23 --prefix=/usr/local/nginx  24 --user=nginx  25 --group=nginx  26 --with-http_stub_status_module &> /dev/null
 27 
 28 make -j $1 &> /dev/null
 29 make install &> /dev/null
 30 
 31 echo -e  "\033[34;1m Nginx编译安装完成! \033[0m"
 32 
 33 #优化路径
 34 ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
 35 
 36 #添加 Nginx 系统服务
 37 cat > /lib/systemd/system/nginx.service <<-EOF
 38 [Unit]
 39 Description=nginx
 40 After=network.target
 41 [Service]
 42 Type=forking
 43 PIDFile=/usr/local/nginx/logs/nginx.pid
 44 ExecStart=/usr/local/nginx/sbin/nginx
 45 ExecReload=/bin/kill -s HUP $MAINPID
 46 ExecStop=/bin/kill -s QUIT $MAINPID
 47 PrivateTmp=true
 48 [Install]
 49 WantedBy=multi-user.target
 50 EOF
 51 
 52 chmod 754 /lib/systemd/system/nginx.service
 53 systemctl daemon-reload
 54 systemctl start nginx.service
 55 systemctl enable nginx.service
 56 
 57 echo -e  "\033[34;1m Nginx安装完成,请前去浏览器访问测试! \033[0m"
 58 
 59 #!/bin/bash
 60 #安装Mysql
 61 
 62 #########安装Mysql###########
 63 #安装Mysql环境依赖包
 64 yum -y install  65 ncurses  66 ncurses-devel  67 bison  68 cmake &> /dev/null
 69 
 70 echo -e  "\033[34;1m Mysql环境依赖包安装完成! \033[0m"
 71 
 72 #创建运行用户
 73 useradd -M -s /sbin/nologin  mysql
 74 
 75 #编译安装
 76 cd /opt
 77 tar zxvf mysql-boost-5.7.20.tar.gz &> /dev/null
 78 
 79 cd /opt/mysql-5.7.20/
 80 cmake  81 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  82 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock  83 -DSYSCONFDIR=/etc  84 -DSYSTEMD_PID_DIR=/usr/local/mysql  85 -DDEFAULT_CHARSET=utf8   86 -DDEFAULT_COLLATION=utf8_general_ci  87 -DWITH_EXTRA_CHARSETS=all  88 -DWITH_INNOBASE_STORAGE_ENGINE=1  89 -DWITH_ARCHIVE_STORAGE_ENGINE=1  90 -DWITH_BLACKHOLE_STORAGE_ENGINE=1  91 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1  92 -DMYSQL_DATADIR=/usr/local/mysql/data  93 -DWITH_BOOST=boost  94 -DWITH_SYSTEMD=1 &> /dev/null
 95 
 96 make -j $1 &> /dev/null
 97 make install &> /dev/null
 98 
 99 echo -e  "\033[34;1m Mysql编译安装完成! \033[0m"
100 
101 #修改mysql 配置文件
102 cat > /etc/my.cnf <<-EOF
103 [client]
104 port = 3306
105 socket=/usr/local/mysql/mysql.sock
106 
107 [mysqld]
108 user = mysql
109 basedir=/usr/local/mysql
110 datadir=/usr/local/mysql/data
111 port = 3306
112 character-set-server=utf8
113 pid-file = /usr/local/mysql/mysqld.pid
114 socket=/usr/local/mysql/mysql.sock
115 bind-address = 0.0.0.0
116 skip-name-resolve
117 max_connections=2048
118 default-storage-engine=INNODB
119 max_allowed_packet=16M
120 server-id = 1
121 
122 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
123 EOF
124 
125 #更改mysql安装目录和配置文件的属主属组
126 chown -R mysql:mysql /usr/local/mysql/
127 chown mysql:mysql /etc/my.cnf
128 
129 #设置路径环境变量
130 echo export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH >> /etc/profile    
131 source /etc/profile
132 
133 #初始化数据库
134 cd /usr/local/mysql/bin/
135 ./mysqld 136 --initialize-insecure 137 --user=mysql 138 --basedir=/usr/local/mysql 139 --datadir=/usr/local/mysql/data &> /dev/null
140 
141 echo -e  "\033[34;1m Mysql初始化数据库成功! \033[0m"
142 
143 #添加mysqld系统服务
144 cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
145 systemctl daemon-reload
146 systemctl start mysqld.service
147 systemctl enable mysqld
148 
149 #修改mysql 的登录密码
150 yum -y install expect &> /dev/null
151 
152 /usr/bin/expect <<EOF
153 spawn mysqladmin -u root -p password "abc123"
154 expect "Enter password:"
155 send "\r"
156 expect eof
157 EOF
158 
159 #授权远程登录
160 /usr/bin/expect <<EOF
161 spawn mysql -u root -pabc123
162 expect "mysql>"  {send "grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘abc123‘;\r"}
163 expect "mysql>" {send "show databases;\r"}
164 expect "mysql>" {send "quit\r"}
165 expect eof
166 EOF
167 
168 echo -e  "\033[34;1m Mysql安装完成! \033[0m"
169 
170 #!/bin/bash
171 #安装配置 PHP 解析环境
172 
173 ##########安装配置 PHP 解析环境##########
174 #安装环境依赖包
175 yum -y install gd 176 libjpeg libjpeg-devel 177 libpng libpng-devel 178 freetype freetype-devel 179 libxml2 libxml2-devel 180 zlib zlib-devel 181 curl curl-devel 182 openssl openssl-devel &> /dev/null
183 
184 echo -e  "\033[34;1m PHP环境依赖包安装完成! \033[0m"
185 
186 #编译安装
187 cd /opt
188 tar jxvf php-7.1.10.tar.bz2 &> /dev/null
189 
190 cd php-7.1.10
191 ./configure 192 --prefix=/usr/local/php 193 --with-mysql-sock=/usr/local/mysql/mysql.sock 194 --with-mysqli 195 --with-zlib 196 --with-curl 197 --with-gd 198 --with-jpeg-dir 199 --with-png-dir 200 --with-freetype-dir 201 --with-openssl 202 --enable-fpm 203 --enable-mbstring 204 --enable-xml 205 --enable-session 206 --enable-ftp 207 --enable-pdo 208 --enable-tokenizer 209 --enable-zip &> /dev/null
210 
211 make -j $1 &> /dev/null
212 make install &> /dev/null
213 
214 echo -e  "\033[34;1m PHP编译安装完成! \033[0m"
215 
216 #路径优化
217 ln -s /usr/local/php/bin/* /usr/local/bin/
218 ln -s /usr/local/php/sbin/* /usr/local/sbin/
219 
220 #调整PHP三个配置文件
221 #调整主配置文件
222 cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini    
223 
224 sed -i ‘939s/;/ /‘ /usr/local/php/lib/php.ini
225 sed -i ‘939s/date.timezone =/date.timezone = Asia\/Shanghai/‘ /usr/local/php/lib/php.ini
226 sed -i ‘1170s#socket =#socket = /usr/local/mysql/mysql.sock#‘ /usr/local/php/lib/php.ini
227 
228 #调整进程服务配置文件
229 cd /usr/local/php/etc/
230 cp  php-fpm.conf.default php-fpm.conf
231 sed -i ‘17s/;/ /‘  /usr/local/php/etc/php-fpm.conf
232 
233 #调整扩展配置文件
234 cd /usr/local/php/etc/php-fpm.d/
235 cp www.conf.default www.conf
236 
237 echo -e  "\033[34;1m PHP配置文件调整完成! \033[0m"
238 
239 #启动php-fpm
240 /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
241 cd /opt/php-7.1.10/sapi/fpm
242 cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
243 systemctl restart php-fpm.service
244 
245 echo -e  "\033[34;1m php-fpm启动成功! \033[0m"
246 
247 #配置 Nginx 支持 PHP 解析
248 sed -i ‘65,71s/#/ /‘ /usr/local/nginx/conf/nginx.conf
249 sed -i ‘69s#scripts#/usr/local/nginx/html#‘ /usr/local/nginx/conf/nginx.conf
250 systemctl restart nginx.service
251 #并修改index.php的网页内容 
252 cat >  /usr/local/nginx/html/index.php <253 254 phpinfo();
255 ?>
256 EOF
257 
258 echo -e  "\033[34;1m PHP安装完成,请前往浏览器去访问! \033[0m"
259 
260 #!/bin/bash
261 #部署 Discuz!社区论坛 Web 应用
262 
263 ###########部署 Discuz!#############
264 #创建数据库,并进行授权
265 /usr/bin/expect <266 spawn mysql -u root -p
267 expect "Enter password:" {send "abc123\r"}
268 expect "mysql>" {send "CREATE DATABASE bbs;\r"}
269 expect "mysql>" {send "GRANT all ON bbs.* TO ‘bbsuser‘@‘%‘ IDENTIFIED BY ‘abc123‘;\r"}
270 expect "mysql>" {send "flush privileges;\r"}
271 expect "mysql>" {send "show databases;\r"}
272 expect "mysql>" {send "quit\r"}
273 expect eof
274 EOF
275 
276 echo -e  "\033[34;1m 数据库创建以及授权成功! \033[0m"
277 #解压论坛压缩包
278 cd /opt
279 unzip Discuz_X3.4_SC_UTF8.zip  -d /opt/dis &> /dev/null
280 cd /opt/dis/dir_SC_UTF8/
281 cp -r upload/ /usr/local/nginx/html/bbs/
282 
283 #调整论坛目录的权限
284 chmod -R 777 /usr/local/nginx/html/bbs/config/
285 chmod -R 777 /usr/local/nginx/html/bbs/data/
286 chmod -R 777 /usr/local/nginx/html/bbs/uc_client/
287 chmod -R 777 /usr/local/nginx/html/bbs/uc_server/
288 
289 #修改nginx配置文件,允许访问
290 sed -i ‘45s/index.html/index.html index.php/‘ /usr/local/nginx/conf/nginx.conf
291 systemctl restart nginx.service
292 
293 echo -e  "\033[34;1m  Discuz!论坛创建成功,请前往浏览器去安装并登录访问! \033[0m"

 

 

 

 脚本运行结果:

 

 

 

原文:https://www.cnblogs.com/weq0805/p/15136600.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐