Shell脚本一键部署——源码编译安装LNMP加discuz论坛!

网友投稿 206 2022-11-03

Shell脚本一键部署——源码编译安装LNMP加discuz论坛!

一、将安装包全部拖入/opt目录下

二、写一个脚本文件,将以下内容复制进去,记住使用source或者. 执行脚本

#!/bin/bashecho -e "\033[31m =====正在验证当前为仅主机还是NAT模式===== \033[0m"ping -c1 -W1 baidu.com &> /dev/nullif [ $? -eq 0 ];then echo -e "\033[31m 检测当前为NAT模式,为您配置在线yum源 \033[0m"mkdir -p /etc/yum.repos.d/repo.bakmv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/nullwget -O /etc/yum.repos.d/CentOS-Base.repo &> /dev/nullyum clean all &> /dev/nullyum list &> /dev/nullecho -e "\033[31m 在线源已配置完成 \033[0m"elseecho -e "\033[31m 检测当前为仅主机模式,为您配置本地yum源 \033[0m"mount /dev/sr0 /mnt &> /dev/nullcd /etc/yum.repos.d/mkdir -p /etc/yum.repos.d/repo.bakmv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/nullecho '[local]name=localbaseurl=file:///mntenabled=1gpgcheck=0' > /etc/yum.repos.d/local.repoyum clean all &> /dev/nullyum makecache &> /dev/nulldf -h | grep "/mnt" if [ $? -ne 0 ];thenecho -e "\033[31m 检测当前为仅主机模式,但光盘未连接! \033[0m"elseecho -e "\033[31m 本地yum源已配置完成 \033[0m"fifiecho -e "\033[31m 接下来进入正式配置,请耐心等待 \033[0m"#关闭系统防火墙和安全机制systemctl stop firewalldsystemctl disable firewalldsetenforce 0#======编译安装nginx服务======#安装所需开发包和编译环境、编译器yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make#创建程序用户,便于准确控制访问useradd -M -s /sbin/nologin nginx#解压安装包cd /opttar zxvf nginx-1.12.0.tar.gz -C /opt/#指定安装路径、指定用户名、组名、启用模块以支持统计状态cd nginx-1.12.0/./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with---with-file-aio --with---with---with-&& make install#软链接便于系统识别nginx操作命令ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/#添加nginx系统服务echo '[Unit]Description=nginxAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStart=/usr/local/nginx/sbin/nginxExecrReload=/bin/kill -s HUP $MAINPIDExecrStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target' > /lib/systemd/system/nginx.service#赋权及开启服务、开启开机自启chmod 754 /lib/systemd/system/nginx.servicesystemctl start nginx.servicesystemctl enable nginx.service#=======编译安装mysql服务=======#安装Mysql环境依赖包yum -y install \ncurses \ncurses-devel \bison \cmake#创建程序用户,便于准确控制访问用户useradd -M -s /sbin/nologin mysql#编译安装cd /opttar xzvf mysql-boost-5.7.20.tar.gz -C /optcd /opt/mysql-5.7.20/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#编译及安装make && make install#修改mysql 配置文件echo '[client]port = 3306socket=/usr/local/mysql/mysql.sock[mysqld]user = mysqlbasedir=/usr/local/mysqldatadir=/usr/local/mysql/dataport = 3306character-set-server=utf8pid-file = /usr/local/mysql/mysqld.pidsocket=/usr/local/mysql/mysql.sockbind-address = 0.0.0.0skip-name-resolvemax_connections=2048default-storage-engine=INNODBmax_allowed_packet=16Mserver-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' > /etc/my.cnf#更改mysql安装目录和配置文件的属主属组chown -R mysql:mysql /usr/local/mysql/chown mysql:mysql /etc/my.cnf#设置路径环境变量echo "export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib">> /etc/profile source /etc/profile#初始化数据库cd /usr/local/mysql/bin/./mysqld \--initialize-insecure \--user=mysql \--basedir=/usr/local/mysql \--datadir=/usr/local/mysql/data#添加mysqld系统服务cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ systemctl daemon-reloadsystemctl start mysqld.servicesystemctl enable mysqldyum -y install expect#修改mysql 的登录密码function bcd {/usr/bin/expect <<-EOFpasswd=$1spawn mysqladmin -u root -p password $passwd expect "Enter password:" {send "\r"}EOF}bcd "abc123"function efg {/usr/bin/expect <<-EOFspawn mysql -u root -pabc123expect "mysql>" {send "quit\t"}EOF}#=====PHP=======#安装环境依赖包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#编译安装cd /opttar xjvf php-7.1.10.tar.bz2cd php-7.1.10./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-zipmake && make installln -s /usr/local/php/bin/* /usr/local/bin/#主配置文件:php.inicp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.inised -i '1170c mysqli.default_socket = /usr/local/mysql/mysql.sock' /usr/local/php/lib/php.inised -i '939c date.timezone = Asia/Shanghai' /usr/local/php/lib/php.ini#验证安装的模块php -m #进程服务配置文件:php-fpm.confcd /usr/local/php/etc/cp php-fpm.conf.default php-fpm.confsed -i '17c pid = run/php-fpm.pid' /usr/local/php/etc/php-fpm.conf#扩展配置文件:confcd /usr/local/php/etc/php-fpm.d/cp conf.default conf#启动php-fpmln -s /usr/local/php/sbin/* /usr/local/sbin/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ininetstat -anpt | grep 9000#配置 Nginx 支持 PHP 解析#--65行--取消注释,修改sed -i '65c location ~ \.php$ {' /usr/local/nginx/conf/nginx.confsed -i '66c root html;' /usr/local/nginx/conf/nginx.confsed -i '67c fastcgi_pass 127.0.0.1:9000;' /usr/local/nginx/conf/nginx.confsed -i '68c fastcgi_index index.php;' /usr/local/nginx/conf/nginx.confsed -i '69c fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;' /usr/local/nginx/conf/nginx.confsed -i '70c include fastcgi_params;' /usr/local/nginx/conf/nginx.confsed -i '71c }' /usr/local/nginx/conf/nginx.confsystemctl restart nginx.serviceecho '' > /usr/local/nginx/html/index.phpk=`ip a | grep "ens33" | awk 'NR==2{print$2}' | awk -F/ '{print$1}'`#验证数据库工作是否正常function hij {/usr/bin/expect <<-EOFspawn mysql -u root -pexpect "Enter" {send "\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 "quit\r"}EOF}hij#=====部署Discuz社区论坛=====cd /optunzip Discuz_X3.4_SC_UTF8.zip -d /opt/discd /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/echo -e "\033[31m 此时可访问:$k/index.php \033[0m"echo -e "\033[31m 此时可进入浏览器安装论坛:\033[0m"echo -e "\033[31m 数据库服务器:localhost \033[0m" echo -e "\033[31m 数据库名字:bbs \033[0m"echo -e "\033[31m 数据库用户名:bbsuser \033[0m"echo -e "\033[31m 数据库密码:admin123 \033[0m"echo -e "\033[31m 管理员账号:admin \033[0m"echo -e "\033[31m 管理员密码:admin123 \033[0m"echo -e "\033[31m 论坛内部页面:\033[0m"echo -e "\033[31m 论坛后台管理员页面:\033[0m"

三、等待安装结束即可浏览器访问验证

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解Java创建线程的五种常见方式
下一篇:Nginx网站服务配置
相关文章

 发表评论

暂时没有评论,来抢沙发吧~