shell脚本:一键部署网站含内容管理器
真正的小白可操作,让搭建网站一部成功!
环境:
系统:CentOS Linux release 7.9.2009 (Core)
网络:外网通讯良好
安装包下载链接(不用wget,防止版本问题)
https://www.huoshichong.cn/index.php/download.html
具体需要下载的包请看截图:
总共7个包哦
用Scrt或者Xshell连接centos7服务器,将上述7个包上传到/usr/src
然后在root目录下用vim创建如下脚本:
#!/bin/bash
#function:install apache mysql php
#author:tommypeng 20220701 final version
##########################################if[ "$USER" != "root" ]
thenecho "错误:非root用户,权限不足!"exit 0
fi
###############防火墙及SElinux############
systemctl stop firewalld && systemctl disable firewalld && echo "防火墙已经关闭"
sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config && echo "关闭selinux"
sleep 10
echo "###########清理旧版本###########"
rpm -qa | grep mariadb > /root/888.txt
rpm -qa | grep mysql >> /root/888.txt
PLIST=$(cat /root/888.txt)
for PKGNAME in $PLIST
dorpm -e --nodeps $PKGNAME && echo "老旧包已经清理完毕"
done
rm -rf /root/888.txt && echo "临时文件已删除"
sleep 8
tarbagp=/usr/src#判断文件是否存在,如果存在就不用下载了
function is_exist()
{if [ ! -f $tarbagp/$1 ];thenecho "请上传$1到/usr/src" return 2fi
}#Install httpd web serverfunction httpd_install()
{if [[ "$1" -eq "1" ]];thencd $tarbagp;#判断文件是否存在is_exist httpd-2.4.25.tar.gzif [ $? -eq "2" ] ;thenecho "请上传httpd-2.4.25.tar.gz到$tarbagp"exit 0fiif [ $? -eq 0 ];thenyum -y install gcc* apr-devel apr-util-devel pcre-develsleep 10 tar zxvf $tarbagp/httpd-2.4.25.tar.gz -C $tarbagp && cd $tarbagp/httpd-2.4.25
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi if [ $? -eq 0 ];thenmake && make installif [ $? -eq 0 ];thenecho "#chkconfig:35 85 21" >> /etc/init.d/httpd && echo "http安装成功"fifielse echo "遇到致命错误,即将退出"exit 1fi
fi
}#Install Mysql serverfunction mysql_install(){if [[ "$1" -eq "2" ]];thencd $tarbagp;#判断文件是否存在is_exist mysql-5.5.62.tar.gzif [ $? -eq "0" ] ;then###########安装依赖包##############
yum -y install make gcc-c++ cmake bison-devel ncurses-devel perl openssl-devel autoconf ############添加用户及组###########
groupadd mysql && useradd mysql -g mysql -M -s /sbin/nologin
#########解压安装包##########
cd $tarbagp && tar -zxvf mysql-5.5.62.tar.gz && cd mysql-5.5.62
############开始编译##########
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci ##########开始安装#############make && make install #########账户权限配置###########chown mysql:mysql /usr/local/mysql###########安全初始化##########yum -y install autoconf && echo "Dumper模块安装成功"cd /usr/local/mysql && ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data elseecho "请上传mysql-5.5.62.tar.gz到$tarbagp"exit 1fifi}####mysql_conf#########function mysql_conf(){############重建my-default.cnf#############
cat >> /usr/local/mysql/support-files/my-default.cnf << EOF
# Example MySQL config file for medium systems. [client]
default-character-set=utf8
#password = your_password
port = 3306
socket = /tmp/mysql.sock
##################socket=/var/lib/mysql/mysql.sock
[mysqld]
character-set-server=utf8
init_connect='SET NAMES utf8
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
character-set-server=utf8
init_connect='SET NAMES utf8'
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
default-character-set=utf8
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
EOF############配置文件#############cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf ##/usr/local/mysql/support-files/my-default.cnf###cat >> /root/mysql.txt << EOF
datadir=/usr/local/mysql/data
default-storage-engine=InnoDB
lower_case_table_names=1
EOF
sed -i '/\[mysqld\]/r /root/mysql.txt' /etc/my.cnf
sed -i 's#PATH=\$PATH:\$HOME/bin#PATH=\$PATH:\$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib#g' /root/.bash_profile
sleep 10
rm -rf /usr/bin/mysql*
source /root/.bash_profile
source /root/.bash_profile
#############删除临时文件##############
rm -rf mysql.txt && echo "临时文件已经删除"
##########启动数据库################
/usr/local/mysql/support-files/mysql.server start && echo "数据库配置成功,并且已启动"
ln -s /usr/local/mysql/bin/mysql* /usr/bin && echo "完成,请使用mysql -u root 登录(无密码)"
sleep 10
}#install phpex
function install_phpex(){cd $tarbagp;#判断文件是否存在is_exist libmcrypt-2.5.8.tar.gzif [ $? -ne "0" ] ;thenecho "请上传libmcrypt-2.5.8.tar.gz到$tarbagp"exit 0fiif [ $? -eq 0 ];thenyum –y install zlib* libxml2*sleep 10 tar zxvf $tarbagp/libmcrypt-2.5.8.tar.gz -C $tarbagp && cd $tarbagp/libmcrypt-2.5.8 && ./configureif [ $? -eq 0 ];thenmake && make installif [ $? -eq 0 ];thenecho "libmcrypt安装成功"fielse echo "遇到致命错误,即将退出"exit 1fi
fi
##################cd $tarbagp;#判断文件是否存在is_exist mhash-0.9.9.9.tar.gzif [ $? -ne "0" ] ;thenecho "请上传mhash-0.9.9.9.tar.gz到$tarbagp"exit 0fiif [ $? -eq 0 ];thentar zxvf $tarbagp/mhash-0.9.9.9.tar.gz -C $tarbagp && cd $tarbagp/mhash-0.9.9.9 && ./configureif [ $? -eq 0 ];thenmake && make installfiif [ $? -eq 0 ];thenln -s /usr/local/lib/libmhash* /usr/lib/ && echo "mhash安装成功"fielse echo "遇到致命错误,即将退出"exit 1fi################################cd $tarbagp;#判断文件是否存在is_exist mcrypt-2.6.8.tar.gzif [ $? -ne "0" ] ;thenecho "请上传mcrypt-2.6.8.tar.gz到$tarbagp"exit 0fiif [ $? -eq 0 ];thentar zxvf $tarbagp/mcrypt-2.6.8.tar.gz -C $tarbagp && cd $tarbagp/mcrypt-2.6.8 && export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH && ./configureif [ $? -eq 0 ];thenmake && make installif [ $? -eq 0 ];thenecho "mcrypt安装成功"fifielse echo "遇到致命错误,即将退出"exit 14fi
}
#Install PHP serverfunction php_install()
{
yum install -y gcc libxml2 libxml2-devel
mysql_conf
sleep 15
install_phpex
sleep 15
cd $tarbagp
if [ ! -f $tarbagp/php-5.5.38.tar.gz ];thenecho "请上传php-5.5.38.tar.gz到$tarbagp"exit 1
elseif [[ "$1" -eq "3" ]];thentar zxf $tarbagp/php-5.5.38.tar.gz -C $tarbagp && cd $tarbagp/php-5.5.38 sleep 10
#mkdir /usr/local/php5
./configure \
--prefix=/usr/local/php5 \
--with-mcrypt \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-config-file-path=/usr/local/php5 \
--enable-mbstringif [ $? -eq 0 ];thenmake && make installecho -e "\n\033[32m-----------------------------------------------\033[0m"echo -e "\033[32mThe php Server Install Success !\033[0m"elseecho -e "\033[32mThe Make or Make install ERROR,Please Check......"exit 0fifi
fi
}function lamp_config()
{
if [[ "$1" -eq "4" ]];thensed -i '/ AddType application\/x-gzip .gz .tgz/a\\ AddType application\/x-httpd-php-source .phps' /usr/local/httpd/conf/httpd.confsed -i '/ AddType application\/x-gzip .gz .tgz/a\\ AddType application\/x-httpd-php .php' /usr/local/httpd/conf/httpd.confsed -i '/DirectoryIndex/s/index.html/index.php index.html/g' /usr/local/httpd/conf/httpd.conf/usr/local/httpd/bin/apachectl start/usr/local/mysql/support-files/mysql.server start###echo "AddType application/x-httpd-php .php" >>/usr/local/httpd/conf/httpd.confecho "ServerName localhost:80" >> /usr/local/httpd/conf/httpd.conf/usr/local/mysql/bin/mysql -u root -e "grant all on *.* to 'youdian'@'%' identified by 'pwd@123';"/usr/local/mysql/bin/mysql -u root -e "flush privileges;"/usr/local/mysql/bin/mysql -u root -e "flush privileges;"#chmod 777 -R /usr/local/httpd/htdocssleep 5sed -i 's/#password = your_password/password = your_password/g' /etc/my.cnfIP=$(ip a | grep "inet "|grep "ens33" | awk '{print $2}' | awk -F / '{print $1}')echo "通过如下地址访问 http://$IP/ 数据库已创建用户youdian,密码为pwd@123 "cat >/usr/local/httpd/htdocs/index.php <<EOF
<?php
phpinfo();
?>
EOF
fi
}############cms####
function cms_install(){
if [[ "$1" -eq "5" ]];thenif [ ! -f $tarbagp/youdiancms9.3.0.zip ];thenecho "请上传youdiancms9.3.0.zip到$tarbagp"exit 1
elserm -rf /usr/local/httpd/htdocs/*cp /usr/src/youdiancms9.3.0.zip /usr/local/httpd/htdocs/ cd /usr/local/httpd/htdocs/ && unzip youdiancms9.3.0.zip && chmod 777 -R /usr/local/httpd/htdocsIP=$(ip a | grep "inet "|grep "ens33" | awk '{print $2}' | awk -F / '{print $1}')echo "通过如下地址访问友点CMS http://$IP/ 数据库默认已创建用户youdian,密码为pwd@123 "fi
fi
}
#select choicePS3="请你选择需要安装的服务,无人值守请按6:"
select i in http mysql php config cms all exit
docase $i inhttp)httpd_install 1;;mysql)mysql_install 2;;php)php_install 3;;config)lamp_config 4;; cms)cms_install 5;; all)httpd_install 1mysql_install 2php_install 3lamp_config 4cms_install 5;;exit)echo "The system exit"exit
esacdone
具体操作如下:
脚本名称可自行定义。
按i键进入编辑模式,右键粘贴脚本文本,最后输入:wq (注意冒号不能丢),回车后就保存好了
sh 66.sh开始运行脚本,无人值守安装请按6。
等待即可。
安装完成页面会提示数据库账号和密码,以及登录地址,用浏览器打开登录地址完成cms设置。
现在你需要的就是更改网站的内容了,赶紧部署你自己的网站吧!!!
shell脚本:一键部署网站含内容管理器相关推荐
- shell脚本 一键部署 Lnmp 及社区论坛 服务架构
shell脚本 一键部署 Lnmp 一键部署 Lnmp 一键部署 注:亲,记得把所需要的软件包,先放到/opt目录中:以及该机子的内存大小.核数先设置好! #!/bin/bash #先配置好yum e ...
- shell脚本一键部署lnmp架构
shell脚本一键部署lnmp架构 1. 创建存放脚本的目录 2. 创建脚本文件 3. 编写脚本 4. 通过IP地址直接访问PHP界面 1. 创建存放脚本的目录 [root@localhost ~]# ...
- shell脚本一键部署LNMP
前言 使用shell脚本一键部署LNMP需要的安装包 nginx-1.15.9.tar.gz mysql-boost-5.7.20.tar.gz php-7.1.10.tar.bz2 Discuz_X ...
- centos7 ssr一键脚本_RHEL7(Centos7)下使用shell脚本一键部署服务
今天配置服务觉得有些麻烦,想着写一个能一键配置nfs服务端的shell脚本,当然在安装之前需要配置一个yum源,所以我一并将这些功能写在了一个shell脚本里. 脚本如下: #author:Roya ...
- 使用shell脚本一键部署LNMP架构
#/bin/bash##将需要的安装包传到/opt目录下,并关闭防火墙 systemctl stop firewalld systemctl disable firewalld &>/d ...
- 使用shell脚本一键部署DNS正向解析
#!/bin/bash#先判断是否挂载,并检查bind软件包是否安装 yum -y install bind &>/dev/null if [ $? -ne 0 ];then mount ...
- php批量替换文件内容,Shell脚本实现批量替换文件内容
Shell脚本实现批量替换文件内容 今天同事发现内部服务器的硬盘空间不够了,上面有很多备份,我又不能删除,重新找了个320g的硬盘挂载了上,想以后shell脚本下的备份都转移到新硬盘上,给老硬盘腾出空 ...
- SHELL脚本自动化部署MFS分布式文件系统
前言:在我们运维中,最常见的文件存储系统大概就是NFS了,但是随着网站压力不断增加,NFS渐渐不能满足企业数据增长需求,有木有自动扩展.高效.部署.实施方便快捷的分布式存储供我们使用呢?那我们来看一下 ...
- shell脚本一键装机(pxe配合kickstart无人值守)
shell脚本一键装机(pxe配合kickstart无人值守) shell脚本实现无人值守安装 图文详细步骤可以参前期博文: PXE批量网络装机(超详细实验教程)教会你自动化批量安装linux 系统 ...
最新文章
- 如何发布ActiveX 控件
- 从linux小白到进大厂,我是怎么做到的?
- 稳压源 GPD-3303系列 控制指令笔记
- wukong引擎源码分析之索引——part 2 持久化 直接set(key,docID数组)在kv存储里...
- Ganglia 应用实践
- 12/7个人站立会议
- php编程怎么和mysql链接_php编程怎么和mysql连接
- appweb ejs_EJS部分
- springboot整合elasticjob
- Windows下学习Objective-C 2.0
- mysql top virt_linux top命令VIRT,RES,SHR,DATA的含义
- 说说你对工厂模式的理解
- 指标的检测及检测仪器
- 《深入剖析Tomcat》一3.3 小结
- “DropDownList1”有一个无效 SelectedIndex,因为它不在项目列表中。
- 提高linux运行速度,教你如何提高Linux操作系统的运行速度
- 记一次 “HTTP 405 Method Not Allowed”的解决方法
- 意法半导体终于拥抱Cortex-A架构发布STM32MP1 MPU
- 一个Java开发h5牌九棋牌网站开发细节
- 修改mp3图片和信息——BesMp3Editor
热门文章
- 一文带你识别移动端主流加固的方案
- M3DGIS全息裸眼三维电子沙盘数字沙盘大数据系统开发教程视频第6课
- 中国移动MobileMarket重点支持机型信息
- 【M365运维】扩充OneDrive存储空间
- springboot jar包 一键部署,开机自动启动
- 当安全遇上AI 阿里聚安全算法挑战赛 队伍经验分享
- LPDDR4特点和基本概念--基于Hynix H9HCNNNBPUMLHR系列
- 秒懂云通信:短信也能玩出新花样?听阿里云产品运营畅聊“智能消息”服务
- 最新!国产操作系统大盘点(附链接)
- display:Wayland Architecture