一键部署LNMP架构和Discuz论坛脚本

#!/bin/bash
#软件包:apr-1.6.2.tar、apr-util-1.6.0.tar、 boost_1_59_0.tar、 Discuz_X3.4_SC_UTF8、 mysql-5.7.17.tar、 nginx-1.12.2.tar、 php-7.1.24.tar
#数据库服务器: localhost   #本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号
#数据库名字: bbs
#数据库用户名: bbsuser
#数据库密码: admin123
#管理员账号: admin
#管理员密码: admin123
#论坛安装网址:http://192.168.40.100/bbs/install/index.php
#访问论坛网址:http://192.168.40.100/bbs/index.php
nginxfuwu () {
systemctl stop firewalld
systemctl disable firewalld &>/dev/null
setenforce 0
#安装依赖包
yum -y install pcre-devel zlib-devel gcc gcc-c++ make &>/dev/null
 
#创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)
useradd -M -s /sbin/nologin nginx
#编译安装Nginx
cd /opt
tar zxvf nginx-1.12.2.tar.gz &>/dev/null
cd nginx-1.12.2/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module 
echo "nginx服务正在编译安装中"
make && make install 
echo "nginx服务编译安装完成"
#让系统识别nginx的操作命令
ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
#添加 Nginx 系统服务
cat > /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
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service &>/dev/null
}
 
mysqlfuwu ()  {
#安装依赖包
cd /opt
yum -y install ncurses ncurses-devel bison cmake &>/dev/null
 
#创建运行用户
useradd -M -s /sbin/nologin  mysql
#解压压缩包
tar zxvf mysql-5.7.17.tar.gz -C /opt &>/dev/null
tar zxvf boost_1_59_0.tar.gz -C /usr/local/ &>/dev/null
mv /usr/local/boost_1_59_0 /usr/local/boost
echo "mysql服务正在编译安装中,请等待"
 
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=/usr/local/boost -DWITH_SYSTEMD=1 
 
make -j4 
make install 
echo "mysql服务编译安装完成"
#配置mysql文件
cat > /etc/my.cnf<<EOF
[client]                                    
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock    
 
[mysql]                                    
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
auto-rehash
 
[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 = 1
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
EOF
#更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
#设置软链接,方便系统识别
ln -s /usr/local/mysql/bin/* /usr/local/bin
ln -s /usrlocal/mysql/sbin/* /usr/local/sbin
#初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data &>/dev/null
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld &>/dev/null
#下载expect命令软件包
yum install -y expect
#修改mysql 的登录密码
function abc {
passwd=$1
/usr/bin/expect <<-EOF
spawn mysqladmin -u root -p password $passwd
expect "Enter password:" 
send "\r"
expect eof
EOF
}
abc "123456"
#登陆数据库创建用户
function bcd {
/usr/bin/expect <<-EOF
spawn mysql -u root -p
expect "Enter password:" {send "123456\r"}
expect "mysql>" {send "CREATE DATABASE bbs;\r"}
expect "mysql>" {send "GRANT all ON bbs.* TO 'bbsuser'@'%'IDENTIFIED BY 'admin123';\r"}
expect "mysql>" {send "GRANT all ON bbs.* TO 'bbsuser'@'localhost'IDENTIFIED BY 'admin123';\r"}
expect "mysql>" {send "flush privileges;\r"}
expect "mysql>" {send "exit\r"}
expect eof
EOF
}
bcd
}
#安装配置 PHP 解析环境
phpfuwu () {
#安装环境依赖包
cd /opt
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/null
 
cd /opt
tar zxvf php-7.1.24.tar.gz &>/dev/null
cd /opt/php-7.1.24/
echo "php服务正在编译安装,请稍后"
./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/null
make && make install &>/dev/null
echo "php服务编译安装完成"
#路径优化
ln -s /usr/local/php/bin/* /usr/local/bin/
#调整PHP配置文件
#php有三个配置文件: 
#php.ini			主配置文件  
#php-fpm.conf	进程服务配置文件 
#www.conf		扩展配置文件
 
#调整主配置文件
cd /usr/local/
mkdir php
cd php
cp /opt/php-7.1.24/php.ini-development /usr/local/php/php.ini
#删除第1170行
sed -i '1170d' /usr/local/php/php.ini
#在第1170行插入内容
sed -i "1169a mysqli.default_socket = /usr/local/mysql/mysql.sock" /usr/local/php/php.ini
sed -i '939d' /usr/local/php/php.ini
sed -i "938a date.timezone = Asia/Shanghai" /usr/local/php/php.ini
#调整进程服务配置文件
cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf
#将17行内容替换
sed -i '17c pid = run/php-fpm.pid' /usr/local/php/etc/php-fpm.conf
 
#调整扩展配置文件
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
 
#启动php-fpm
/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
 
#配置 Nginx 支持 PHP 解析
#将65到71开头的#去掉
sed -i '65,71s/#//' /usr/local/nginx/conf/nginx.conf
#将69行的script替换成usr/local/nginx/html
sed -i '69s/scripts/usr\/local\/nginx\/html/' /usr/local/nginx/conf/nginx.conf
 
#安装nginx已修改好
 
systemctl restart nginx.service
 
#验证PHP 测试页
cat > /usr/local/nginx/html/index.php<<EOF
<?php
phpinfo();
?>
EOF
}
#部署Discuz!社区论坛 web应用
discuzfuwu () {
cd /opt
unzip Discuz_X3.4_SC_UTF8.zip -d /opt/dis &>/dev/null
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
}
nginxfuwu
mysqlfuwu
phpfuwu
discuzfuwu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值