以前的shell脚本,一键自动构建web环境及程序
- 共 599 次检阅

#!/bin/bash
##检查操作系统
check_sys(){
	if [[ -f /etc/redhat-release ]]; then
		release="centos"
	elif cat /etc/issue | grep -q -E -i "debian"; then
		release="debian"
	elif cat /etc/issue | grep -q -E -i "ubuntu"; then
		release="ubuntu"
	elif cat /etc/issue | grep -q -E -i "centos|red hat|redhat"; then
		release="centos"
	elif cat /proc/version | grep -q -E -i "debian"; then
		release="debian"
	elif cat /proc/version | grep -q -E -i "ubuntu"; then
		release="ubuntu"
	elif cat /proc/version | grep -q -E -i "centos|red hat|redhat"; then
		release="centos"
    fi
	bit=`uname -m`
}
clear
##检查是否root用户
[ $(id -u) != "0" ] && { echo -e " “\033[31m Error: 必须使用root用户执行此脚本!\033[0m”"; exit 1; }
##定义常用属性
Green_font_prefix="\033[32m" && Red_font_prefix="\033[31m" && Green_background_prefix="\033[42;37m" && Red_background_prefix="\033[41;37m" && Font_color_suffix="\033[0m"
Info="${Green_font_prefix}[信息]${Font_color_suffix}"
Error="${Red_font_prefix}[错误]${Font_color_suffix}"
Tip="${Green_font_prefix}[注意]${Font_color_suffix}"
clear
echo -e "感谢使用 “\033[32m 系统一键快速部署工具 \033[0m”"
echo "----------------------------------------------------------------------------"
stty erase '^?' && read -p "请输入系统使用的网站域名,(不带http/https)      :" website
stty erase '^?' && read -p "请输入系统使用的站点名称,(长度不要太长  )      :" webtitle
stty erase '^?' && read -p "请输入系统使用的MySQL管理目录 ,(长度不要太长)  :" websql
stty erase '^?' && read -p "请输入系统使用的MySQL用户(请使用字母开头)      :" mysqlusername
stty erase '^?' && read -p "请输入系统使用的MySQL库名(请使用字母开头)      :" mysqldatabase
stty erase '^?' && read -p "请输入系统使用的MySQL密码(字母+ 数字组合)      :" mysqlpassword
stty erase '^?' && read -p "请输入系统使用的mukey(webapi方式对接后端)      :" 系统mukey

sleep 1
echo -e "${Info} 请确认系统使用的网站域名     :http://$website"
echo -e "${Info} 请确认系统使用的网站名称     :$webtitle"
echo -e "${Info} 请确认系统使用的Mysql管理地址:http://$website/$websql"
echo -e "${Info} 请确认系统使用的MySQL用户名  :$mysqlusername"
echo -e "${Info} 请确认系统使用的MySQL数据库  :$mysqldatabase"
echo -e "${Info} 请确认系统使用的MySQL密码    :$mysqlpassword"
echo -e "${Info} 请确认系统使用的mukey        :$系统mukey"
stty erase '^?' && read -p " 请输入数字(1:继续;2:退出) [1/2]:" status
case "$status" in
	1)
	echo -e "${Info} 您选择了继续,开始安装程序!"
	;;
	2)
	echo -e "${Tip} 您选择了退出,请重新执行安装程序!" && exit 1
	;;
	*)
	echo -e  "${Error} 请输入正确值 [1/2],请重新执行安装程序" && exit 1
	;;
esac
echo -e "${Info} 请等待系统自动操作......"
wget -c http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --nginx_option 1 --php_option 6 --php_extensions sourceguardian,fileinfo,memcache --phpmyadmin  --db_option 4 --dbinstallmethod 1 --dbrootpwd $mysqlpassword
cd /data/wwwroot/default
rm -rf index.html 404.html
rm -rf /data/wwwroot/default/xprober.php
rm -rf /data/wwwroot/default/phpinfo.php
rm -rf /root/oneinstack-full.tar.gz
##安装git unzip crontab
echo -e "${Info} 正在检测安装git、unzip、crontab工具"
yum install git unzip crontab -y
echo -e "${Info} 检测安装git、unzip、crontab工具已完成"
sleep 1
echo -e "${Info} 正在检测安装libsodium工具"
yum -y groupinstall "Development Tools"
git clone https://github.com/jedisct1/libsodium.git
cd libsodium
./configure && make -j2 && make install
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig
echo -e "${Info} 检测安装libsodium工具已完成"
##下载解压拷贝源码
echo -e "${Info} 正在下载解压处理程序源码"
wget -N --no-check-certificate "188or.com/dev.zip"
unzip dev.zip
cd 系统-v3-mod_Uim-dev
mv * .[^.]* /data/wwwroot/default/
cd ..
rm -rf dev.zip 系统-v3-mod_Uim-dev/
echo -e "${Info} 下载解压处理程序源码已完成"
sleep 1
##处理php函数
echo -e "${Info} 正在处理LNMP环境内容"
sed -i 's/system,//g' /usr/local/php/etc/php.ini
sed -i 's/proc_open,//g' /usr/local/php/etc/php.ini
sed -i 's/proc_get_status,//g' /usr/local/php/etc/php.ini
sed -i 's/putenv,//g' /usr/local/php/etc/php.ini
sed -i 's/dynamic/static/g' /usr/local/php/etc/php-fpm.conf
sed -i 's/display_errors = On/display_errors = Off/g' /usr/local/php/etc/php.ini
echo -e "${Info} 处理LNMP环境内容已完成"
sleep 1
##导入数据库
echo -e "${Info} 正在创建系统数据库并导入数据库文件到数据库"
ln -s  /usr/local/mysql/bin/mysql    /usr/bin
mysql -uroot -p$mysqlpassword -e "create database $mysqldatabase;"
mysql -uroot -p$mysqlpassword -e "create user '$mysqlusername'@'%' identified by '$mysqlpassword';"
mysql -uroot -p$mysqlpassword -e "grant select,insert,update,delete,create on $mysqldatabase.* to $mysqlusername@'%';"
mysql -uroot -p$mysqlpassword -h127.0.0.1  $mysqldatabase< /data/wwwroot/default/系统.sql
mysql -uroot -p$mysqlpassword -e "flush  privileges;"
/bin/systemctl restart mysql.service
echo -e "${Info} 创建系统并导入数据库已完成"
sleep 1
##安装依赖
echo -e "${Info} 正在安装依赖"
cd ..
chown -R root:root *
chmod -R 755 *
chown -R www:www storage
export PATH=$PATH:/usr/local/php/bin
php composer.phar install
echo -e "${Info} 安装依赖已完成"
sleep 1
##处理nginx伪静态和运行目录
echo -e "${Info} 正在处理nginx内容"
sed -i "74i location / {try_files \$uri \$uri/ /index.php\$is_args\$args;}" /usr/local/nginx/conf/nginx.conf
sed -i "s/\/data\/wwwroot\/default/\/data\/wwwroot\/default\/public/g" /usr/local/nginx/conf/nginx.conf
echo -e "${Info} 处理nginx内容已完成"
sleep 1
##初始化站点信息
echo -e "${Info} 正在配置站点基本信息"
cd /data/wwwroot/default
cp config/.config.php.cocole config/.config.php
sed -i "s/websiteurl/$website/g" /data/wwwroot/default/config/.config.php
sed -i "s/系统title/$webtitle/g" /data/wwwroot/default/config/.config.php
sed -i "s/系统-mukey/$系统mukey/g" /data/wwwroot/default/config/.config.php
sed -i "s/系统-db-databasename/$mysqldatabase/g" /data/wwwroot/default/config/.config.php
sed -i "s/系统-db-username/$mysqlusername/g" /data/wwwroot/default/config/.config.php
sed -i "s/系统-db-password/$mysqlpassword/g" /data/wwwroot/default/config/.config.php
echo -e "${Info} 配置站点基本信息已完成"
sleep 1
echo -e "${Info} 正在配置Mysql管理地址面板"
mv /data/wwwroot/default/phpMyAdmin /data/wwwroot/default/$websql
mv /data/wwwroot/default/$websql /data/wwwroot/default/public/$websql
sed -i '388i\ return["phpMyAdmin"=>"public/$websql",];' /data/wwwroot/default/config/routes.php
echo -e "${Info} 配置Mysql管理地址面板已完成"
##下载IP解析库  下载ssr程式
echo -e "${Info} 正在下载ip解析库"
php xcat initQQWry
sleep 1
echo -e "${Info} 下载ip解析库已完成"
sleep 1
echo -e "${Info} 正在重置流量"
php xcat resetTraffic
echo -e "${Info} 重置流量已完成"
sleep 1
echo -e "${Info} 正在下载ssr程式"
sleep 3
echo -e "${Info} 下载ssr程式已完成"
sleep 1
##加入定时任务
echo -e "${Info} 正在添加定时任务"
echo "30 22 * * * php /data/wwwroot/default/xcat sendDiaryMail" >> /var/spool/cron/root
echo "0 0 * * * php -n /data/wwwroot/default/xcat dailyjob" >> /var/spool/cron/root
echo "*/1 * * * * php /data/wwwroot/default/xcat checkjob" >> /var/spool/cron/root
echo "*/1 * * * * php /data/wwwroot/default/xcat syncnode" >> /var/spool/cron/root
echo "0 */20 * * * php -n /data/wwwroot/default/xcat backup" >> /var/spool/cron/root
echo "5 0 * * * php /data/wwwroot/default/xcat sendFinanceMail_day" >> /var/spool/cron/root
echo "6 0 * * 0 php /data/wwwroot/default/xcat sendFinanceMail_week" >> /var/spool/cron/root
echo "7 0 1 * * php /data/wwwroot/default/xcat sendFinanceMail_month" >> /var/spool/cron/root
echo "*/1 * * * * php /data/wwwroot/default/xcat detectGFW" >> /var/spool/cron/root
echo "php /data/wwwroot/default/xcat sendDiaryMail" >> /var/spool/cron/root
chkconfig –level 35 crond on
/bin/systemctl restart crond.service
echo -e "${Info} 添加定时任务已完成"
sleep 1
##重启php和nginx
echo -e "${Info} 正在重启PHP"
/bin/systemctl restart php-fpm.service
echo -e "${Info} 重启PHP已完成"
sleep 1
echo -e "${Info} 正在重启NGINX"
/bin/systemctl restart nginx.service
echo -e "${Info} 重启NGINX已完成"
sleep 3
echo -e "${Tip} 安装即将完成!"
sleep 1
clear
cd /root
rm -rf /root/系统
rm -rf /data/wwwroot/default/系统.sql
echo "-------------------------------------------------------------------"
echo -e "${Info} --------------------系统一键快速部署完成------------"
echo "-------------------------------------------------------------------"
echo -e "${Info} 您的系统使用的网站域名   :http://$website"
echo -e "${Info} 您的系统 IP访问地址      :http://$IPAddress"
echo -e "${Info} 您的系统使用的数据库地址 :http://$website/$websql"
echo -e "${Info} 您的系统 IP访问数据库地址:http://$IPAddress/$websql"
echo -e "${Info} 您的系统使用的MySQL用户名:$mysqlusername"
echo -e "${Info} 您的系统使用的MySQL数据库:$mysqldatabase"
echo -e "${Info} 您的系统使用的MySQL密码  :$mysqlpassword"
echo -e "${Info} 您的系统的WebAPI对接mukey:$系统mukey"
echo -e "${Info} 您的系统使用管理账户密码皆为:admin请自行修改"
echo "-------------------------------------------------------------------"
echo -e "${Info} 注:需在线支付请修改文件/data/wwwroot/default/.config.php!"
echo "-------------------------------------------------------------------"

 

分享到:

这篇文章还没有评论

发表评论