shell脚本一键部署LNMP

运行该脚本前需要把安装所需要的压缩包放到/opt目录下

#!/bin/bash#关闭防火墙
systemctl stop firewalld
setenforce 0#挂载yum
mount /dev/sr0 /mnt &>/dev/null###############nginx安装与配置########yum -y install pcre-devel zlib-devel gcc gcc-c++ make &>/dev/nulluseradd -M -s /sbin/nologin nginxcd /opttar zxvf nginx-1.12.2.tar.gz -C /opt/ &>/dev/nullcd nginx-1.12.2/./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module &>/dev/nullmake -j 2 &>/dev/null
make install &>/dev/nullln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/tee /lib/systemd/system/nginx.service <<EOF
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOFchmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.serviceecho "nginx安装完成"#################配置安装MySQL#########3#yum -y install \
ncurses \
ncurses-devel \
bison \
cmake &>/dev/nulluseradd -M -s /sbin/nologin  mysqlcd /opt
tar zxvf mysql-boost-5.7.17.tar.gz
cd /opt/mysql-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1 &>/dev/nullmake -j2 &>/dev/null
make install &>/dev/nullecho "MySQL数据库编译安装完成"tee /etc/my.cnf <<EOF
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1sql_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
EOFchown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnfecho 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
source /etc/profilecd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data $>/dev/nullcp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.serviceyum -y install expect &> /dev/null/usr/bin/expect << EOF
spawn mysqladmin -u root -p password "123"
expect "Enter password:"
send "\r"
expect eof
EOF/usr/bin/expect <<EOF
spawn mysql -u root -p123
expect "mysql>" {send "grant all privileges on *.* to 'root'@'%' identified by '123';\r"}
ecpect "mysql>" {send "show databases;\r"}
expect "mysql>" {send "quit\r"}
expect eof
EOFecho"数据库完成"########33######php配置安装##333####yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel &>/dev/nullcd /opt
tar jxvf php-7.1.24.tar.bz2cd php-7.1.24
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip &>/dev/nullmake -j 2 &>/dev/null
make install &>/dev/nullln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/cp /opt/php-7.1.24/php.ini-development /usr/local/php/lib/php.ini sed -i '939s/;/ /' /usr/local/php/lib/php.ini
sed -i '939s/date.timezone =/date.timezone = Asia\/Shanghai/' /usr/local/php/lib/php.ini
sed -i '1170s#socket =#socket = /usr/local/mysql/mysql.sock#' /usr/local/php/lib/php.inicd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.confsed -i '17s/;/ /'  /usr/local/php/etc/php-fpm.concd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.inicd /opt/php-7.1.24/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl restart php-fpm.servicesed -i '65,71s/#/ /' /usr/local/nginx/conf/nginx.conf
sed -i '69s#scripts#/usr/local/nginx/html#' /usr/local/nginx/conf/nginx.conf
systemctl restart nginx.servicecat >  /usr/local/nginx/html/index.php <<EOF
<?php
phpinfo();
?>
EOFecho "php完成"####3333333333333##3#discuz社区论坛####33#3##/usr/bin/expect <<EOF
spawn mysql -u root -p
expect "Enter password:" {send "123\r"}
expect "mysql>" {send "CREATE DATABASE bbs;\r"}
expect "mysql>" {send "GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY '123';\r"}
expect "mysql>" {send "flush privileges;\r"}
expect "mysql>" {send "show databases;\r"}
expect "mysql>" {send "quit\r"}
expect eof
EOFcd /opt
unzip Discuz_X3.4_SC_UTF8.zip  -d /opt/dis
cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/cd /usr/local/nginx/html/bbs/
chown -R root:nginx ./config/
chown -R root:nginx ./data/
chown -R root:nginx ./uc_client/
chown -R root:nginx ./uc_server/chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/sed -i '45s/index.html/index.html index.php/' /usr/local/nginx/conf/nginx.conf
systemctl restart nginx.serviceecho "社区完成"

小白还在手动安装LNMP,大牛早已一键部署相关推荐

  1. LNMP介绍及一键部署LNMP架构

    目录 一.LNMP 1.LNMP介绍 ①LNMP工作原理 ②LAMP工作原理 2.LAMP和LNMP的区别 3.编译安装的优点 4.各组件的主要作用 二.脚本一键部署LNMP架构 一.LNMP 1.L ...

  2. docker mysql镜像连接不上_还在手动安装应用?试一下Docker

    Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器是完 ...

  3. 计算机安装过程突然断电怎么办,Win7系统重装到一半断电了怎么办?还能继续安装吗?该怎么补救?...

    有网友反应使用一键重装系统软件给电脑重装Win7系统的时候时间长,可突然断电了,或者其他各种原因导致没有将系统安装完成,重启后提示"计算机意外地重新启动或遇到错误,Windows安装无法继续 ...

  4. u启动PE一键装机工具-手动安装GHOST系统的功能

    u启动PE一键装机工具除了智能装机外还具有手动安装GHOST系统的功能,今天u启动小编就教大家如何使用u启动PE一键装机工具手动安装ghost系统的方法! 首先我们需要准备一下材料: ① u盘启动盘一 ...

  5. Debian手动安装LNMPA环境及相关配置

      LNMPA是指(Linux/Nginx/MySQL/PHP/Apache),是广泛使用的网站建站环境.以下将详细介绍手动安装上述环境的方式,如需要一键自动脚本安装,可参考https://lnmp. ...

  6. linux apache 手动安装教程,linux下手动安装apache

    下面是官方文档的要求,必须安装APR.APR-Util.PCRE,gcc-c++等包,文档URL地址http://httpd.apache.org/docs/2.4/install.html. 所以, ...

  7. 都9012年了,你还在手动部署代码吗(二)

    前言 在写完基于 Webhooks 的"第一篇<都9012年了,你还在手动部署代码吗>"之后,有同学评论到"至少你得用个 docker 啊"&quo ...

  8. 安装python步骤-小白入门:Python安装的10个步骤,极其细致!!

    原标题:小白入门:Python安装的10个步骤,极其细致!! 你有没有发现,在自学的时候去群里问大神python怎么安装,基本都不会有人理你,因为他们认为你这问题就跟踩死一只蚂蚁一样简单,都不屑于回答 ...

  9. CENTOS手动安装修复python ,YUM CENTOS手动安装修复YUM

    CENTOS手动安装修复YUM 2019年3月8日  杨宇 Comments 0 Comment 目录 [hide] 一.问题场景 二.手动修复 2.1 下载 rpm 包 2.2 安装 rpm 包 2 ...

最新文章

  1. 【swjtu】数据结构实验_二叉树的字符图形显示程序(半期)
  2. IE9浏览器更像一个互联网舞台
  3. 【Qt】2D绘图之窗口-视口转换
  4. AbstractListView源码分析9
  5. 前端和后端哪个工资高_嵌入式软硬件工程师哪个更有前途,工资还高
  6. 输入三个字符串,按由小到大的顺序输出 字符串排序-一种简单的方法
  7. Oauth2协议详解
  8. A summary of OpenGL ES 3.1 demos and samples
  9. 位置采集[置顶] iPhone手机上的GPS位置信息采集与分享应用
  10. c#中byte数组0x_数组指针和指针数组的区别
  11. 小D课堂 - 新版本微服务springcloud+Docker教程_4-05 微服务调用方式之feign 实战 订单调用商品服务...
  12. 2018年第九届 蓝桥杯 java B组 部分题解
  13. EasyRecovery14免费激活码序列号数据恢复软件 简体中文绿色直装版
  14. 网络规划设计师水平考试备考资料(1.前言及目录)
  15. python中sep是什么意思_python sep啥意思
  16. 如何判断一个网站地址是否可以安全访问?
  17. Word文档怎么删除html标签,word怎么清除所有格式
  18. 史玉柱的团队管理之道
  19. sql注入——布尔注入
  20. 用Java自动发邮件

热门文章

  1. [FOC-Simulink]使用Simulink代码生成工具基于STM32开发板对永磁同步电机进行开环控制
  2. 基于MATLAB Simulink的三相AC DC整流后的直流电机转速开环控制仿真模型
  3. application/x java applet_下列关于Java Application与Java Applet程序的差别描述正确的是______。...
  4. Geolocation模块管理设备位置信息,用于获取地理位置信息,如经度、纬度等。通过plus.geolocation可获取设备位置管理对象
  5. 全球十个知名APP增长策略大盘点
  6. RFID 资产管理系统
  7. Nginx通过二级目录映射不同的反向代理
  8. 直至现在,还是有很多人分不清登录与登陆
  9. 首次使用idea跑在线项目
  10. Python自学之路第十八步——异常