mirror of
https://github.com/aaPanel/aaPanel.git
synced 2026-08-17 21:25:47 +02:00
Fixed an issue where bt default could not be used correctly to get the panel protocol after opening the panel SSL.
This commit is contained in:
@@ -1,226 +1,637 @@
|
||||
#!/bin/bash
|
||||
# chkconfig: 2345 55 25
|
||||
# description: bt Cloud Service
|
||||
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
|
||||
export PATH
|
||||
LANG=en_US.UTF-8
|
||||
is64bit=`getconf LONG_BIT`
|
||||
|
||||
if [ -f "/usr/bin/apt-get" ];then
|
||||
isDebian=`cat /etc/issue|grep Debian`
|
||||
if [ "$isDebian" != "" ];then
|
||||
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh
|
||||
exit;
|
||||
else
|
||||
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh
|
||||
exit;
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$is64bit" != '64' ];then
|
||||
echo "====================================="
|
||||
echo "Sorry, 6.0 Does not support 32-bit systems, Use 64-bit system Please!";
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
### BEGIN INIT INFO
|
||||
# Provides: bt
|
||||
# Required-Start: $all
|
||||
# Required-Stop: $all
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: starts bt
|
||||
# Description: starts the bt
|
||||
### END INIT INFO
|
||||
panel_path=/www/server/panel
|
||||
pidfile=$panel_path/logs/panel.pid
|
||||
cd $panel_path
|
||||
py26=$(python -V 2>&1|grep '2.6.')
|
||||
if [ "$py26" != "" ];then
|
||||
pythonV=python3
|
||||
echo "====================================="
|
||||
echo "Sorry, 6.0 Does not support Centos6.x, Please install Centos7";
|
||||
exit 0;
|
||||
fi
|
||||
panel_start()
|
||||
{
|
||||
isStart=`ps aux|grep 'runserver:app'|grep -v grep|awk '{print $2}'`
|
||||
if [ "$isStart" == '' ];then
|
||||
echo -e "Starting Bt-Panel.\c"
|
||||
rm -f $pidfile
|
||||
gunicorn -c runconfig.py runserver:app
|
||||
port=$(cat /www/server/panel/data/port.pl)
|
||||
isStart=""
|
||||
n=0
|
||||
while [[ "$isStart" == "" ]];
|
||||
do
|
||||
echo -e ".\c"
|
||||
sleep 0.5
|
||||
isStart=$(lsof -n -P -i:$port|grep LISTEN|grep -v grep|awk '{print $2}'|xargs)
|
||||
let n+=1
|
||||
if [ $n -gt 8 ];then
|
||||
break;
|
||||
fi
|
||||
done
|
||||
if [ "$isStart" == '' ];then
|
||||
echo -e "\033[31mfailed\033[0m"
|
||||
echo '------------------------------------------------------'
|
||||
tail -n 20 $panel_path/logs/error.log
|
||||
echo '------------------------------------------------------'
|
||||
echo -e "\033[31mError: aaPanel service startup failed.\033[0m"
|
||||
fi
|
||||
echo -e " \033[32mdone\033[0m"
|
||||
else
|
||||
echo "Starting aaPanel... aaPanel (pid $(echo $isStart)) already running"
|
||||
fi
|
||||
|
||||
isStart=$(ps aux |grep 'task.py'|grep -v grep|awk '{print $2}')
|
||||
if [ "$isStart" == '' ];then
|
||||
echo -e "Starting Bt-Tasks... \c"
|
||||
nohup python task.py >> /www/server/panel/logs/task.log 2>&1 &
|
||||
sleep 0.2
|
||||
isStart=$(ps aux |grep 'task.py'|grep -v grep|awk '{print $2}')
|
||||
if [ "$isStart" == '' ];then
|
||||
echo -e "\033[31mfailed\033[0m"
|
||||
echo '------------------------------------------------------'
|
||||
tail -n 20 /www/server/panel/logs/task.log
|
||||
echo '------------------------------------------------------'
|
||||
echo -e "\033[31mError: aaTask service startup failed.\033[0m"
|
||||
return;
|
||||
fi
|
||||
echo -e " \033[32mdone\033[0m"
|
||||
else
|
||||
echo "Starting aaTasks... aaTasks (pid $isStart) already running"
|
||||
fi
|
||||
|
||||
CN='http://125.88.182.172:5880'
|
||||
|
||||
Install_Check(){
|
||||
while [ "$yes" != 'yes' ] && [ "$yes" != 'n' ]
|
||||
do
|
||||
echo -e "----------------------------------------------------"
|
||||
echo -e "Web service is alreday installed,installing aaPanel may affect existing sites."
|
||||
echo -e "----------------------------------------------------"
|
||||
read -p "Enter yes to force installation (yes/n): " yes;
|
||||
done
|
||||
if [ "$yes" == 'n' ];then
|
||||
exit;
|
||||
fi
|
||||
}
|
||||
|
||||
panel_stop()
|
||||
{
|
||||
echo -e "Stopping aaTasks...\c";
|
||||
pids=$(ps aux | grep 'task.py'|grep -v grep|awk '{print $2}')
|
||||
arr=($pids)
|
||||
|
||||
for p in ${arr[@]}
|
||||
do
|
||||
kill -9 $p
|
||||
done
|
||||
echo -e " \033[32mdone\033[0m"
|
||||
|
||||
echo -e "Stopping aaPanel...\c";
|
||||
arr=`ps aux|grep 'runserver:app'|grep -v grep|awk '{print $2}'`
|
||||
for p in ${arr[@]}
|
||||
do
|
||||
kill -9 $p &>/dev/null
|
||||
done
|
||||
|
||||
if [ -f $pidfile ];then
|
||||
rm -f $pidfile
|
||||
Web_Service_Check(){
|
||||
if [ -f "/etc/init.d/nginx" ]; then
|
||||
nginxV=$(cat /etc/init.d/nginx|grep /www/server/nginx)
|
||||
if [ "${nginxV}" = "" ];then
|
||||
Install_Check
|
||||
fi
|
||||
fi
|
||||
echo -e " \033[32mdone\033[0m"
|
||||
}
|
||||
|
||||
panel_status()
|
||||
{
|
||||
port=$(cat /www/server/panel/data/port.pl)
|
||||
isStart=$(lsof -i:$port|grep LISTEN|grep -v grep|awk '{print $2}'|xargs)
|
||||
if [ "$isStart" != '' ];then
|
||||
echo -e "\033[32maaPanel (pid $(echo $isStart)) already running\033[0m"
|
||||
else
|
||||
echo -e "\033[31maaPanel not running\033[0m"
|
||||
if [ -f "/etc/init.d/httpd" ]; then
|
||||
httpdV=$(cat /etc/init.d/httpd|grep /www/server/apache)
|
||||
if [ "${httpdV}" = "" ];then
|
||||
Install_Check
|
||||
fi
|
||||
|
||||
isStart=$(ps aux |grep 'task.py'|grep -v grep|awk '{print $2}')
|
||||
if [ "$isStart" != '' ];then
|
||||
echo -e "\033[32maaTask (pid $isStart) already running\033[0m"
|
||||
else
|
||||
echo -e "\033[31maaTask not running\033[0m"
|
||||
fi
|
||||
}
|
||||
fi
|
||||
|
||||
panel_reload()
|
||||
{
|
||||
isStart=$(ps aux|grep 'runserver:app'|grep -v grep|awk '{print $2}')
|
||||
|
||||
if [ "$isStart" != '' ];then
|
||||
echo -e "Reload aaPanel.\c";
|
||||
arr=`ps aux|grep 'runserver:app'|grep -v grep|awk '{print $2}'`
|
||||
for p in ${arr[@]}
|
||||
do
|
||||
kill -9 $p
|
||||
done
|
||||
rm -f $pidfile
|
||||
gunicorn -c runconfig.py runserver:app
|
||||
port=$(cat /www/server/panel/data/port.pl)
|
||||
isStart=""
|
||||
n=0
|
||||
while [[ "$isStart" == "" ]];
|
||||
do
|
||||
echo -e ".\c"
|
||||
sleep 0.5
|
||||
isStart=$(lsof -n -P -i:$port|grep LISTEN|grep -v grep|awk '{print $2}'|xargs)
|
||||
let n+=1
|
||||
if [ $n -gt 8 ];then
|
||||
break;
|
||||
fi
|
||||
done
|
||||
if [ "$isStart" == '' ];then
|
||||
echo -e "\033[31mfailed\033[0m"
|
||||
echo '------------------------------------------------------'
|
||||
tail -n 20 $panel_path/logs/error.log
|
||||
echo '------------------------------------------------------'
|
||||
echo -e "\033[31mError: aaPanel service startup failed.\033[0m"
|
||||
return;
|
||||
if [ -f "/etc/init.d/mysqld" ]; then
|
||||
mysqlV=$(cat /etc/init.d/mysqld|grep /www/server/mysql)
|
||||
if [ "${mysqlV}" = "" ];then
|
||||
Install_Check
|
||||
fi
|
||||
echo -e " \033[32mdone\033[0m"
|
||||
else
|
||||
echo -e "\033[31maaPanel not running\033[0m"
|
||||
panel_start
|
||||
fi
|
||||
}
|
||||
|
||||
install_used()
|
||||
Web_Service_Check
|
||||
|
||||
echo "
|
||||
+----------------------------------------------------------------------
|
||||
| aaPanel 6.0 FOR CentOS
|
||||
+----------------------------------------------------------------------
|
||||
| Copyright © 2015-2099 aaPanel(http://www.aapanel.com) All rights reserved.
|
||||
+----------------------------------------------------------------------
|
||||
| The WebPanel URL will be http://SERVER_IP:8888 when installed.
|
||||
+----------------------------------------------------------------------
|
||||
"
|
||||
get_node_url(){
|
||||
nodes=(http://125.88.182.172:5880 http://183.235.223.101:3389 http://103.224.251.67 http://128.1.164.196);
|
||||
i=1;
|
||||
if [ ! -f /bin/curl ];then
|
||||
if [ -f /usr/local/curl/bin/curl ];then
|
||||
ln -sf /usr/local/curl/bin/curl /bin/curl
|
||||
else
|
||||
yum install curl -y
|
||||
fi
|
||||
fi
|
||||
for node in ${nodes[@]};
|
||||
do
|
||||
start=`date +%s.%N`
|
||||
result=`curl -sS --connect-timeout 3 -m 60 $node/check.txt`
|
||||
if [ $result = 'True' ];then
|
||||
end=`date +%s.%N`
|
||||
start_s=`echo $start | cut -d '.' -f 1`
|
||||
start_ns=`echo $start | cut -d '.' -f 2`
|
||||
end_s=`echo $end | cut -d '.' -f 1`
|
||||
end_ns=`echo $end | cut -d '.' -f 2`
|
||||
time_micro=$(( (10#$end_s-10#$start_s)*1000000 + (10#$end_ns/1000 - 10#$start_ns/1000) ))
|
||||
time_ms=$(($time_micro/1000))
|
||||
values[$i]=$time_ms;
|
||||
urls[$time_ms]=$node
|
||||
i=$(($i+1))
|
||||
fi
|
||||
done
|
||||
j=5000
|
||||
for n in ${values[@]};
|
||||
do
|
||||
if [ $j -gt $n ];then
|
||||
j=$n
|
||||
fi
|
||||
done
|
||||
if [ $j = 5000 ];then
|
||||
NODE_URL='http://download.bt.cn';
|
||||
else
|
||||
NODE_URL=${urls[$j]}
|
||||
fi
|
||||
|
||||
}
|
||||
echo '---------------------------------------------';
|
||||
echo "Selected download node...";
|
||||
get_node_url
|
||||
download_Url=$NODE_URL
|
||||
echo "Download node: $download_Url";
|
||||
echo '---------------------------------------------';
|
||||
setup_path=/www
|
||||
port='8888'
|
||||
if [ -f $setup_path/server/panel/data/port.pl ];then
|
||||
port=`cat $setup_path/server/panel/data/port.pl`
|
||||
fi
|
||||
|
||||
while [ "$go" != 'y' ] && [ "$go" != 'n' ]
|
||||
do
|
||||
read -p "Do you want to install aaPanel to the $setup_path directory now?(y/n): " go;
|
||||
done
|
||||
|
||||
if [ "$go" == 'n' ];then
|
||||
exit;
|
||||
fi
|
||||
|
||||
path=/etc/yum.conf
|
||||
isExc=`cat $path|grep httpd`
|
||||
if [ "$isExc" = "" ];then
|
||||
echo "exclude=httpd nginx php mysql mairadb python-psutil python2-psutil" >> $path
|
||||
fi
|
||||
|
||||
#自动挂载Swap
|
||||
autoSwap()
|
||||
{
|
||||
if [ ! -f $panel_path/aliyun.pl ];then
|
||||
return;
|
||||
fi
|
||||
password=$(cat /dev/urandom | head -n 16 | md5sum | head -c 12)
|
||||
username=$($pythonV $panel_path/tools.py panel $password)
|
||||
echo "$password" > $panel_path/default.pl
|
||||
rm -f $panel_path/aliyun.pl
|
||||
swap=`free |grep Swap|awk '{print $2}'`
|
||||
if [ $swap -gt 1 ];then
|
||||
echo "Swap total sizse: $swap";
|
||||
return;
|
||||
fi
|
||||
if [ ! -d /www ];then
|
||||
mkdir /www
|
||||
fi
|
||||
swapFile='/www/swap'
|
||||
dd if=/dev/zero of=$swapFile bs=1M count=1025
|
||||
mkswap -f $swapFile
|
||||
swapon $swapFile
|
||||
echo "$swapFile swap swap defaults 0 0" >> /etc/fstab
|
||||
swap=`free |grep Swap|awk '{print $2}'`
|
||||
if [ $swap -gt 1 ];then
|
||||
echo "Swap total sizse: $swap";
|
||||
return;
|
||||
fi
|
||||
|
||||
sed -i "/\/www\/swap/d" /etc/fstab
|
||||
rm -f $swapFile
|
||||
}
|
||||
autoSwap
|
||||
|
||||
#判断kernel-headers组件是否安装
|
||||
rpm -qa | grep kernel-headers > kernel-headers.pl
|
||||
kernelStatus=`cat kernel-headers.pl`
|
||||
#判断华为云
|
||||
huaweiLogin=`cat /etc/motd |grep 4000-955-988`
|
||||
huaweiSys=`cat /etc/redhat-release | grep ' 7.'`
|
||||
if [ "$kernelStatus" = "" ]; then
|
||||
if [ "$huaweiLogin" != "" ] && [ "$huaweiSys" != "" ]; then
|
||||
wget $download_Url/src/kernel-headers-3.10.0-514.el7.x86_64.rpm
|
||||
rpm -ivh kernel-headers-3.10.0-514.el7.x86_64.rpm
|
||||
rm -f kernel-headers-3.10.0-514.el7.x86_64.rpm
|
||||
else
|
||||
yum install kernel-headers -y
|
||||
fi
|
||||
fi
|
||||
rm -f kernel-headers.pl
|
||||
|
||||
#try sync time from bt.cn
|
||||
echo 'Synchronizing system time...'
|
||||
v1=$(curl http://www.bt.cn/api/index/get_time)
|
||||
date -s "$(date -d @$v1 +"%Y-%m-%d %H:%M:%S")"
|
||||
|
||||
yum install ntp chrony -y
|
||||
systemctl restart chrony
|
||||
timedatectl set-ntp 1
|
||||
#rm -rf /etc/localtime
|
||||
#ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||
|
||||
#echo 'Synchronizing system time...'
|
||||
#ntpdate 0.asia.pool.ntp.org
|
||||
startTime=`date +%s`
|
||||
setenforce 0
|
||||
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
|
||||
for pace in python-devel python-imaging zip unzip openssl openssl-devel gcc libxml2 libxml2-devel libxslt* zlib zlib-devel libjpeg-devel libpng-devel libwebp libwebp-devel freetype freetype-devel lsof pcre pcre-devel vixie-cron crontabs icu libicu-devel c-ares;
|
||||
do
|
||||
yum -y install ${pace};
|
||||
done
|
||||
|
||||
if [ -f "/usr/bin/dnf" ]; then
|
||||
dnf install -y redhat-rpm-config
|
||||
fi
|
||||
yum install python-devel -y
|
||||
|
||||
py26=$(python -V 2>&1|grep '2.6.')
|
||||
if [ "$py26" != "" ];then
|
||||
if [ ! -f /etc/yum.repos.d/epel.repo ];then
|
||||
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
|
||||
fi
|
||||
if [ ! -f /usr/bin/python3 ];then
|
||||
yum install python34 python34-devel -y
|
||||
if [ ! -f /usr/bin/python3 ];then
|
||||
echo "python3.4 install error!"
|
||||
exit 0;
|
||||
fi
|
||||
isSed=$(cat /usr/bin/yum|grep /usr/bin/python2.6)
|
||||
if [ "$isSed" == "" ];then
|
||||
sed -i "s#/usr/bin/python#/usr/bin/python2.6#" /usr/bin/yum
|
||||
fi
|
||||
#rm -f /usr/bin/python2
|
||||
mv -f /usr/bin/python /usr/bin/python2_backup
|
||||
ln -sf /usr/bin/python3 /usr/bin/python
|
||||
fi
|
||||
if [ ! -f /usr/bin/pip3 ];then
|
||||
wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
|
||||
python3 get-pip.py
|
||||
mv -f /usr/bin/pip /usr/bin/pip_backup
|
||||
ln -sf /usr/bin/pip3.4 /usr/bin/pip
|
||||
fi
|
||||
fi
|
||||
|
||||
tmp=`python -V 2>&1|awk '{print $2}'`
|
||||
pVersion=${tmp:0:3}
|
||||
|
||||
Install_setuptools()
|
||||
{
|
||||
if [ ! -f "/usr/bin/easy_install" ];then
|
||||
wget -O setuptools-33.1.1.zip $download_Url/install/src/setuptools-33.1.1.zip -T 10
|
||||
unzip setuptools-33.1.1.zip
|
||||
rm -f setuptools-33.1.1.zip
|
||||
cd setuptools-33.1.1
|
||||
python setup.py install
|
||||
cd ..
|
||||
rm -rf setuptools-33.1.1
|
||||
fi
|
||||
|
||||
if [ ! -f "/usr/bin/easy_install" ];then
|
||||
echo '=================================================';
|
||||
echo -e "\033[31msetuptools installation failed. \033[0m";
|
||||
exit;
|
||||
fi
|
||||
}
|
||||
|
||||
error_logs()
|
||||
Install_pip()
|
||||
{
|
||||
tail -n 100 $panel_path/logs/error.log
|
||||
ispip=`pip -V |grep from`
|
||||
if [ "$ispip" == "" ];then
|
||||
if [ ! -f "/usr/bin/easy_install" ];then
|
||||
Install_setuptools
|
||||
fi
|
||||
wget -O pip-9.0.1.tar.gz $download_Url/install/src/pip-9.0.1.tar.gz -T 10
|
||||
tar xvf pip-9.0.1.tar.gz
|
||||
rm -f pip-9.0.1.tar.gz
|
||||
cd pip-9.0.1
|
||||
python setup.py install
|
||||
cd ..
|
||||
rm -rf pip-9.0.1
|
||||
fi
|
||||
ispip=`pip -V |grep from`
|
||||
if [ "$ispip" = "" ];then
|
||||
echo '=================================================';
|
||||
echo -e "\033[31m Python-pip installation failed. \033[0m";
|
||||
exit;
|
||||
fi
|
||||
|
||||
pip install -U pip
|
||||
}
|
||||
|
||||
Install_Pillow()
|
||||
{
|
||||
isSetup=`python -m PIL 2>&1|grep package`
|
||||
if [ "$isSetup" = "" ];then
|
||||
isFedora = `cat /etc/redhat-release |grep Fedora`
|
||||
if [ "$isFedora" != "" ];then
|
||||
pip install Pillow
|
||||
return;
|
||||
fi
|
||||
wget -O Pillow-3.2.0.zip $download_Url/install/src/Pillow-3.2.0.zip -T 10
|
||||
unzip Pillow-3.2.0.zip
|
||||
rm -f Pillow-3.2.0.zip
|
||||
cd Pillow-3.2.0
|
||||
python setup.py install
|
||||
cd ..
|
||||
rm -rf Pillow-3.2.0
|
||||
fi
|
||||
|
||||
isSetup=`python -m PIL 2>&1|grep package`
|
||||
if [ "$isSetup" = "" ];then
|
||||
echo '=================================================';
|
||||
echo -e "\033[31mPillow installation failed. \033[0m";
|
||||
exit;
|
||||
fi
|
||||
}
|
||||
|
||||
Install_psutil()
|
||||
{
|
||||
isSetup=`python -m psutil 2>&1|grep package`
|
||||
if [ "$isSetup" = "" ];then
|
||||
wget -O psutil-5.2.2.tar.gz $download_Url/install/src/psutil-5.2.2.tar.gz -T 10
|
||||
tar xvf psutil-5.2.2.tar.gz
|
||||
rm -f psutil-5.2.2.tar.gz
|
||||
cd psutil-5.2.2
|
||||
python setup.py install
|
||||
cd ..
|
||||
rm -rf psutil-5.2.2
|
||||
fi
|
||||
isSetup=`python -m psutil 2>&1|grep package`
|
||||
if [ "$isSetup" = "" ];then
|
||||
echo '=================================================';
|
||||
echo -e "\033[31mpsutil installation failed. \033[0m";
|
||||
exit;
|
||||
fi
|
||||
}
|
||||
|
||||
Install_mysqldb()
|
||||
{
|
||||
isSetup=`python -m MySQLdb 2>&1|grep package`
|
||||
if [ "$isSetup" = "" ];then
|
||||
wget -O MySQL-python-1.2.5.zip $download_Url/install/src/MySQL-python-1.2.5.zip -T 10
|
||||
unzip MySQL-python-1.2.5.zip
|
||||
rm -f MySQL-python-1.2.5.zip
|
||||
cd MySQL-python-1.2.5
|
||||
python setup.py install
|
||||
cd ..
|
||||
rm -rf MySQL-python-1.2.5
|
||||
fi
|
||||
}
|
||||
|
||||
Install_chardet()
|
||||
{
|
||||
isSetup=`python -m chardet 2>&1|grep package`
|
||||
if [ "$isSetup" = "" ];then
|
||||
wget -O chardet-2.3.0.tar.gz $download_Url/install/src/chardet-2.3.0.tar.gz -T 10
|
||||
tar xvf chardet-2.3.0.tar.gz
|
||||
rm -f chardet-2.3.0.tar.gz
|
||||
cd chardet-2.3.0
|
||||
python setup.py install
|
||||
cd ..
|
||||
rm -rf chardet-2.3.0
|
||||
fi
|
||||
|
||||
isSetup=`python -m chardet 2>&1|grep package`
|
||||
if [ "$isSetup" = "" ];then
|
||||
echo '=================================================';
|
||||
echo -e "\033[31mchardet installation failed. \033[0m";
|
||||
exit;
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
'start')
|
||||
install_used
|
||||
panel_start
|
||||
;;
|
||||
'stop')
|
||||
panel_stop
|
||||
;;
|
||||
'restart')
|
||||
panel_stop
|
||||
panel_start
|
||||
;;
|
||||
'reload')
|
||||
panel_reload
|
||||
;;
|
||||
'status')
|
||||
panel_status
|
||||
;;
|
||||
'logs')
|
||||
error_logs
|
||||
;;
|
||||
'panel')
|
||||
python $panel_path/tools.py cli $2
|
||||
;;
|
||||
'default')
|
||||
port=$(cat $panel_path/data/port.pl)
|
||||
password=$(cat $panel_path/default.pl)
|
||||
if [ -f $panel_path/data/domain.conf ];then
|
||||
address=$(cat $panel_path/data/domain.conf)
|
||||
fi
|
||||
if [ -f $panel_path/data/admin_path.pl ];then
|
||||
auth_path=$(cat $panel_path/data/admin_path.pl)
|
||||
fi
|
||||
if [ "$address" = "" ];then
|
||||
address=$(curl -sS --connect-timeout 10 -m 60 https://www.bt.cn/Api/getIpAddress)
|
||||
fi
|
||||
echo -e "=================================================================="
|
||||
echo -e "\033[32maaPanel default info!\033[0m"
|
||||
echo -e "=================================================================="
|
||||
echo "aaPanel-URL: http://$address:$port$auth_path"
|
||||
echo -e `python $panel_path/tools.py username`
|
||||
echo -e "password: $password"
|
||||
echo -e "\033[33mWarning:\033[0m"
|
||||
echo -e "\033[33mIf you cannot access the panel, \033[0m"
|
||||
echo -e "\033[33mrelease the following port (8888|888|80|443|20|21) in the security group\033[0m"
|
||||
echo -e "=================================================================="
|
||||
;;
|
||||
*)
|
||||
python $panel_path/tools.py cli $2
|
||||
;;
|
||||
esac
|
||||
Install_setuptools
|
||||
Install_pip
|
||||
|
||||
if [ "${download_Url}" = "$CN" ]; then
|
||||
if [ ! -d "/root/.pip" ];then
|
||||
mkdir ~/.pip
|
||||
fi
|
||||
cat > ~/.pip/pip.conf <<EOF
|
||||
[global]
|
||||
index-url = https://pypi.doubanio.com/simple/
|
||||
|
||||
[install]
|
||||
trusted-host=pypi.doubanio.com
|
||||
EOF
|
||||
fi
|
||||
|
||||
isPsutil=`python -m psutil 2>&1|grep package`
|
||||
if [ "$isPsutil" != "" ];then
|
||||
psutil_version=`python -c 'import psutil;print psutil.__version__;' |grep '5.'`
|
||||
if [ "$psutil_version" = '' ];then
|
||||
pip uninstall psutil -y
|
||||
fi
|
||||
fi
|
||||
yum install libffi-devel -y
|
||||
pip install --upgrade setuptools
|
||||
pip install -U pip
|
||||
pip install six --upgrade --ignore-installed six
|
||||
pip install itsdangerous==0.24
|
||||
pip install paramiko==2.0.2
|
||||
pip install flask-socketio==3.0.2
|
||||
pip install python-socketio==2.1.2
|
||||
pip install Werkzeug==0.15.1
|
||||
for p_name in psutil chardet virtualenv Flask Flask-Session Flask-SocketIO flask-sqlalchemy Pillow gunicorn gevent-websocket requests;
|
||||
do
|
||||
pip install ${p_name}
|
||||
done
|
||||
|
||||
is_gevent=$(pip list|grep gevent)
|
||||
|
||||
if [ "$is_gevent" = "" ];then
|
||||
if [ -f /usr/bin/yum ];then
|
||||
yum install python-gevent -y
|
||||
else
|
||||
apt install python-gevent -y
|
||||
fi
|
||||
fi
|
||||
|
||||
pip install psutil chardet virtualenv Flask Flask-Session Flask-SocketIO flask-sqlalchemy Pillow gunicorn gevent-websocket paramiko
|
||||
Install_Pillow
|
||||
Install_psutil
|
||||
|
||||
pip install gunicorn
|
||||
|
||||
if [ -f /www/server/mysql/bin/mysql ]; then
|
||||
pip install mysql-python
|
||||
Install_mysqldb
|
||||
fi
|
||||
Install_chardet
|
||||
|
||||
mkdir -p $setup_path/server/panel/logs
|
||||
mkdir -p $setup_path/server/panel/vhost/apache
|
||||
mkdir -p $setup_path/server/panel/vhost/nginx
|
||||
mkdir -p $setup_path/server/panel/vhost/rewrite
|
||||
|
||||
|
||||
if [ -f '/etc/init.d/bt' ];then
|
||||
/etc/init.d/bt stop
|
||||
fi
|
||||
|
||||
mkdir -p /www/server
|
||||
mkdir -p /www/wwwroot
|
||||
mkdir -p /www/wwwlogs
|
||||
mkdir -p /www/backup/database
|
||||
mkdir -p /www/backup/site
|
||||
|
||||
if [ ! -f "/usr/bin/unzip" ];then
|
||||
#rm -f /etc/yum.repos.d/epel.repo
|
||||
yum install unzip -y
|
||||
fi
|
||||
wget -O panel.zip $download_Url/install/src/panel6_en.zip -T 10
|
||||
wget -O /etc/init.d/bt $download_Url/install/src/bt6_en.init -T 10
|
||||
if [ -f "$setup_path/server/panel/data/default.db" ];then
|
||||
if [ -d "/$setup_path/server/panel/old_data" ];then
|
||||
rm -rf $setup_path/server/panel/old_data
|
||||
fi
|
||||
mkdir -p $setup_path/server/panel/old_data
|
||||
mv -f $setup_path/server/panel/data/default.db $setup_path/server/panel/old_data/default.db
|
||||
mv -f $setup_path/server/panel/data/system.db $setup_path/server/panel/old_data/system.db
|
||||
mv -f $setup_path/server/panel/data/port.pl $setup_path/server/panel/old_data/port.pl
|
||||
mv -f $setup_path/server/panel/data/admin_path.pl $setup_path/server/panel/old_data/admin_path.pl
|
||||
fi
|
||||
|
||||
unzip -o panel.zip -d $setup_path/server/ > /dev/null
|
||||
|
||||
if [ -d "$setup_path/server/panel/old_data" ];then
|
||||
mv -f $setup_path/server/panel/old_data/default.db $setup_path/server/panel/data/default.db
|
||||
mv -f $setup_path/server/panel/old_data/system.db $setup_path/server/panel/data/system.db
|
||||
mv -f $setup_path/server/panel/old_data/port.pl $setup_path/server/panel/data/port.pl
|
||||
mv -f $setup_path/server/panel/old_data/admin_path.pl $setup_path/server/panel/data/admin_path.pl
|
||||
if [ -d "/$setup_path/server/panel/old_data" ];then
|
||||
rm -rf $setup_path/server/panel/old_data
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -f panel.zip
|
||||
|
||||
if [ ! -f $setup_path/server/panel/tools.py ];then
|
||||
echo -e "\033[31mERROR: Failed to download, please try again!\033[0m";
|
||||
echo '============================================'
|
||||
exit;
|
||||
fi
|
||||
|
||||
rm -f $setup_path/server/panel/class/*.pyc
|
||||
rm -f $setup_path/server/panel/*.pyc
|
||||
|
||||
|
||||
|
||||
chmod +x /etc/init.d/bt
|
||||
chkconfig --add bt
|
||||
chkconfig --level 2345 bt on
|
||||
chmod -R 600 $setup_path/server/panel
|
||||
chmod -R +x $setup_path/server/panel/script
|
||||
ln -sf /etc/init.d/bt /usr/bin/bt
|
||||
echo "$port" > $setup_path/server/panel/data/port.pl
|
||||
/etc/init.d/bt start
|
||||
|
||||
password=`cat /dev/urandom | head -n 16 | md5sum | head -c 8`
|
||||
sleep 1
|
||||
admin_auth='/www/server/panel/data/admin_path.pl'
|
||||
if [ ! -f $admin_auth ];then
|
||||
auth_path=`cat /dev/urandom | head -n 16 | md5sum | head -c 8`
|
||||
echo "/$auth_path" > $admin_auth
|
||||
fi
|
||||
auth_path=`cat $admin_auth`
|
||||
cd $setup_path/server/panel/
|
||||
python -m py_compile tools.py
|
||||
python tools.py username
|
||||
username=`python tools.py panel $password`
|
||||
cd ~
|
||||
echo "$password" > $setup_path/server/panel/default.pl
|
||||
chmod 600 $setup_path/server/panel/default.pl
|
||||
/etc/init.d/bt restart
|
||||
sleep 3
|
||||
isStart=`ps aux |grep 'gunicorn'|grep -v grep|awk '{print $2}'`
|
||||
if [ "$isStart" == '' ];then
|
||||
echo -e "\033[31mERROR: The aaPanel service startup failed.\033[0m";
|
||||
echo '============================================'
|
||||
exit;
|
||||
fi
|
||||
|
||||
if [ -f "/etc/init.d/iptables" ];then
|
||||
sshPort=`cat /etc/ssh/sshd_config | grep 'Port ' | grep -oE [0-9] | tr -d '\n'`
|
||||
if [ "${sshPort}" != "22" ]; then
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport $sshPort -j ACCEPT
|
||||
fi
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport $port -j ACCEPT
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 39000:40000 -j ACCEPT
|
||||
#iptables -I INPUT -p tcp -m state --state NEW -m udp --dport 39000:40000 -j ACCEPT
|
||||
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
|
||||
iptables -A INPUT -s localhost -d localhost -j ACCEPT
|
||||
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||
iptables -P INPUT DROP
|
||||
service iptables save
|
||||
sed -i "s#IPTABLES_MODULES=\"\"#IPTABLES_MODULES=\"ip_conntrack_netbios_ns ip_conntrack_ftp ip_nat_ftp\"#" /etc/sysconfig/iptables-config
|
||||
|
||||
iptables_status=`service iptables status | grep 'not running'`
|
||||
if [ "${iptables_status}" == '' ];then
|
||||
service iptables restart
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${isVersion}" == '' ];then
|
||||
if [ ! -f "/etc/init.d/iptables" ];then
|
||||
sshPort=`cat /etc/ssh/sshd_config | grep 'Port ' | grep -oE [0-9] | tr -d '\n'`
|
||||
yum install firewalld -y
|
||||
systemctl enable firewalld
|
||||
systemctl start firewalld
|
||||
firewall-cmd --set-default-zone=public > /dev/null 2>&1
|
||||
if [ "${sshPort}" != "22" ]; then
|
||||
firewall-cmd --permanent --zone=public --add-port=$sshPort/tcp > /dev/null 2>&1
|
||||
fi
|
||||
firewall-cmd --permanent --zone=public --add-port=20/tcp > /dev/null 2>&1
|
||||
firewall-cmd --permanent --zone=public --add-port=21/tcp > /dev/null 2>&1
|
||||
firewall-cmd --permanent --zone=public --add-port=22/tcp > /dev/null 2>&1
|
||||
firewall-cmd --permanent --zone=public --add-port=80/tcp > /dev/null 2>&1
|
||||
firewall-cmd --permanent --zone=public --add-port=$port/tcp > /dev/null 2>&1
|
||||
firewall-cmd --permanent --zone=public --add-port=39000-40000/tcp > /dev/null 2>&1
|
||||
#firewall-cmd --permanent --zone=public --add-port=39000-40000/udp > /dev/null 2>&1
|
||||
firewall-cmd --reload
|
||||
fi
|
||||
fi
|
||||
|
||||
pip install psutil chardet psutil virtualenv cryptography==2.1 > /dev/null 2>&1
|
||||
|
||||
if [ ! -d '/etc/letsencrypt' ];then
|
||||
yum install epel-release -y
|
||||
|
||||
if [ "${country}" = "CN" ]; then
|
||||
isC7=`cat /etc/redhat-release |grep ' 7.'`
|
||||
if [ "${isC7}" == "" ];then
|
||||
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
|
||||
else
|
||||
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
|
||||
fi
|
||||
fi
|
||||
mkdir -p /var/spool/cron
|
||||
if [ ! -f '/var/spool/cron/root' ];then
|
||||
echo '' > /var/spool/cron/root
|
||||
chmod 600 /var/spool/cron/root
|
||||
fi
|
||||
fi
|
||||
|
||||
wget -O acme_install.sh $download_Url/install/acme_install.sh
|
||||
nohup bash acme_install.sh &> /dev/null &
|
||||
sleep 1
|
||||
rm -f acme_install.sh
|
||||
|
||||
address=""
|
||||
address=`curl -sS --connect-timeout 10 -m 60 https://www.bt.cn/Api/getIpAddress`
|
||||
if [ "$address" == '0.0.0.0' ] || [ "$address" == '' ];then
|
||||
isHosts=`cat /etc/hosts|grep 'www.bt.cn'`
|
||||
if [ "$isHosts" == '' ];then
|
||||
echo "" >> /etc/hosts
|
||||
echo "125.88.182.170 www.bt.cn" >> /etc/hosts
|
||||
address=`curl -sS --connect-timeout 10 -m 60 https://www.bt.cn/Api/getIpAddress`
|
||||
if [ "$address" == '' ];then
|
||||
sed -i "/bt.cn/d" /etc/hosts
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
ipCheck=`python -c "import re; print(re.match('^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$','$address'))"`
|
||||
if [ "$ipCheck" == "None" ];then
|
||||
address="SERVER_IP"
|
||||
fi
|
||||
|
||||
if [ "$address" != "SERVER_IP" ];then
|
||||
echo "$address" > $setup_path/server/panel/data/iplist.txt
|
||||
fi
|
||||
|
||||
curl -sS --connect-timeout 10 -m 60 https://www.bt.cn/Api/SetupCount?type=Linux\&o=EN > /dev/null 2>&1
|
||||
curl -sS --connect-timeout 10 -m 60 https://www.aapanel.com/Api/SetupCount?type=Linux > /dev/null 2>&1
|
||||
echo /www > /var/bt_setupPath.conf
|
||||
/etc/init.d/bt start
|
||||
|
||||
echo -e "=================================================================="
|
||||
echo -e "\033[32mCongratulations! Installed successfully!\033[0m"
|
||||
echo -e "=================================================================="
|
||||
echo "aaPanel: http://$address:$port$auth_path"
|
||||
echo -e "username: $username"
|
||||
echo -e "password: $password"
|
||||
echo -e "\033[33mWarning:\033[0m"
|
||||
echo -e "\033[33mIf you cannot access the panel, \033[0m"
|
||||
echo -e "\033[33mrelease the following port (8888|888|80|443|20|21) in the security group\033[0m"
|
||||
echo -e "=================================================================="
|
||||
|
||||
endTime=`date +%s`
|
||||
((outTime=($endTime-$startTime)/60))
|
||||
echo -e "Time consumed:\033[32m $outTime \033[0mMinute!"
|
||||
rm -f install.sh
|
||||
Reference in New Issue
Block a user