Commit 8bd9a605 authored by jose's avatar jose

Fixed an issue where bt default could not be used correctly to get the panel...

Fixed an issue where bt default could not be used correctly to get the panel protocol after opening the panel SSL.
parent 5dfabd98
#!/bin/bash #!/bin/bash
# chkconfig: 2345 55 25 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
# description: bt Cloud Service export PATH
LANG=en_US.UTF-8
### BEGIN INIT INFO is64bit=`getconf LONG_BIT`
# Provides: bt
# Required-Start: $all if [ -f "/usr/bin/apt-get" ];then
# Required-Stop: $all isDebian=`cat /etc/issue|grep Debian`
# Default-Start: 2 3 4 5 if [ "$isDebian" != "" ];then
# Default-Stop: 0 1 6 wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh
# Short-Description: starts bt exit;
# Description: starts the bt else
### END INIT INFO wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh
panel_path=/www/server/panel exit;
pidfile=$panel_path/logs/panel.pid fi
cd $panel_path fi
if [ "$is64bit" != '64' ];then
echo "====================================="
echo "Sorry, 6.0 Does not support 32-bit systems, Use 64-bit system Please!";
exit 0;
fi
py26=$(python -V 2>&1|grep '2.6.') py26=$(python -V 2>&1|grep '2.6.')
if [ "$py26" != "" ];then if [ "$py26" != "" ];then
pythonV=python3 echo "====================================="
echo "Sorry, 6.0 Does not support Centos6.x, Please install Centos7";
exit 0;
fi fi
panel_start()
{ CN='http://125.88.182.172:5880'
isStart=`ps aux|grep 'runserver:app'|grep -v grep|awk '{print $2}'`
if [ "$isStart" == '' ];then Install_Check(){
echo -e "Starting Bt-Panel.\c" while [ "$yes" != 'yes' ] && [ "$yes" != 'n' ]
rm -f $pidfile do
gunicorn -c runconfig.py runserver:app echo -e "----------------------------------------------------"
port=$(cat /www/server/panel/data/port.pl) echo -e "Web service is alreday installed,installing aaPanel may affect existing sites."
isStart="" echo -e "----------------------------------------------------"
n=0 read -p "Enter yes to force installation (yes/n): " yes;
while [[ "$isStart" == "" ]]; done
do if [ "$yes" == 'n' ];then
echo -e ".\c" exit;
sleep 0.5 fi
isStart=$(lsof -n -P -i:$port|grep LISTEN|grep -v grep|awk '{print $2}'|xargs) }
let n+=1
if [ $n -gt 8 ];then Web_Service_Check(){
break; if [ -f "/etc/init.d/nginx" ]; then
fi nginxV=$(cat /etc/init.d/nginx|grep /www/server/nginx)
done if [ "${nginxV}" = "" ];then
if [ "$isStart" == '' ];then Install_Check
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 fi
fi
isStart=$(ps aux |grep 'task.py'|grep -v grep|awk '{print $2}')
if [ "$isStart" == '' ];then if [ -f "/etc/init.d/httpd" ]; then
echo -e "Starting Bt-Tasks... \c" httpdV=$(cat /etc/init.d/httpd|grep /www/server/apache)
nohup python task.py >> /www/server/panel/logs/task.log 2>&1 & if [ "${httpdV}" = "" ];then
sleep 0.2 Install_Check
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 fi
fi
if [ -f "/etc/init.d/mysqld" ]; then
mysqlV=$(cat /etc/init.d/mysqld|grep /www/server/mysql)
if [ "${mysqlV}" = "" ];then
Install_Check
fi
fi
} }
panel_stop() 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()
{ {
echo -e "Stopping aaTasks...\c"; swap=`free |grep Swap|awk '{print $2}'`
pids=$(ps aux | grep 'task.py'|grep -v grep|awk '{print $2}') if [ $swap -gt 1 ];then
arr=($pids) echo "Swap total sizse: $swap";
return;
for p in ${arr[@]} fi
do if [ ! -d /www ];then
kill -9 $p mkdir /www
done fi
echo -e " \033[32mdone\033[0m" swapFile='/www/swap'
dd if=/dev/zero of=$swapFile bs=1M count=1025
echo -e "Stopping aaPanel...\c"; mkswap -f $swapFile
arr=`ps aux|grep 'runserver:app'|grep -v grep|awk '{print $2}'` swapon $swapFile
for p in ${arr[@]} echo "$swapFile swap swap defaults 0 0" >> /etc/fstab
do swap=`free |grep Swap|awk '{print $2}'`
kill -9 $p &>/dev/null if [ $swap -gt 1 ];then
done echo "Swap total sizse: $swap";
return;
if [ -f $pidfile ];then fi
rm -f $pidfile
fi sed -i "/\/www\/swap/d" /etc/fstab
echo -e " \033[32mdone\033[0m" 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
} }
panel_status() Install_pip()
{ {
port=$(cat /www/server/panel/data/port.pl) ispip=`pip -V |grep from`
isStart=$(lsof -i:$port|grep LISTEN|grep -v grep|awk '{print $2}'|xargs) if [ "$ispip" == "" ];then
if [ "$isStart" != '' ];then if [ ! -f "/usr/bin/easy_install" ];then
echo -e "\033[32maaPanel (pid $(echo $isStart)) already running\033[0m" Install_setuptools
else fi
echo -e "\033[31maaPanel not running\033[0m" wget -O pip-9.0.1.tar.gz $download_Url/install/src/pip-9.0.1.tar.gz -T 10
fi tar xvf pip-9.0.1.tar.gz
rm -f pip-9.0.1.tar.gz
isStart=$(ps aux |grep 'task.py'|grep -v grep|awk '{print $2}') cd pip-9.0.1
if [ "$isStart" != '' ];then python setup.py install
echo -e "\033[32maaTask (pid $isStart) already running\033[0m" cd ..
else rm -rf pip-9.0.1
echo -e "\033[31maaTask not running\033[0m" fi
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
} }
panel_reload() Install_Pillow()
{ {
isStart=$(ps aux|grep 'runserver:app'|grep -v grep|awk '{print $2}') isSetup=`python -m PIL 2>&1|grep package`
if [ "$isSetup" = "" ];then
if [ "$isStart" != '' ];then isFedora = `cat /etc/redhat-release |grep Fedora`
echo -e "Reload aaPanel.\c"; if [ "$isFedora" != "" ];then
arr=`ps aux|grep 'runserver:app'|grep -v grep|awk '{print $2}'` pip install Pillow
for p in ${arr[@]} return;
do fi
kill -9 $p wget -O Pillow-3.2.0.zip $download_Url/install/src/Pillow-3.2.0.zip -T 10
done unzip Pillow-3.2.0.zip
rm -f $pidfile rm -f Pillow-3.2.0.zip
gunicorn -c runconfig.py runserver:app cd Pillow-3.2.0
port=$(cat /www/server/panel/data/port.pl) python setup.py install
isStart="" cd ..
n=0 rm -rf Pillow-3.2.0
while [[ "$isStart" == "" ]]; fi
do
echo -e ".\c" isSetup=`python -m PIL 2>&1|grep package`
sleep 0.5 if [ "$isSetup" = "" ];then
isStart=$(lsof -n -P -i:$port|grep LISTEN|grep -v grep|awk '{print $2}'|xargs) echo '=================================================';
let n+=1 echo -e "\033[31mPillow installation failed. \033[0m";
if [ $n -gt 8 ];then exit;
break; fi
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;
fi
echo -e " \033[32mdone\033[0m"
else
echo -e "\033[31maaPanel not running\033[0m"
panel_start
fi
} }
install_used() Install_psutil()
{ {
if [ ! -f $panel_path/aliyun.pl ];then isSetup=`python -m psutil 2>&1|grep package`
return; if [ "$isSetup" = "" ];then
fi wget -O psutil-5.2.2.tar.gz $download_Url/install/src/psutil-5.2.2.tar.gz -T 10
password=$(cat /dev/urandom | head -n 16 | md5sum | head -c 12) tar xvf psutil-5.2.2.tar.gz
username=$($pythonV $panel_path/tools.py panel $password) rm -f psutil-5.2.2.tar.gz
echo "$password" > $panel_path/default.pl cd psutil-5.2.2
rm -f $panel_path/aliyun.pl 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
} }
error_logs() Install_mysqldb()
{ {
tail -n 100 $panel_path/logs/error.log 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
}
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
case "$1" in curl -sS --connect-timeout 10 -m 60 https://www.bt.cn/Api/SetupCount?type=Linux\&o=EN > /dev/null 2>&1
'start') curl -sS --connect-timeout 10 -m 60 https://www.aapanel.com/Api/SetupCount?type=Linux > /dev/null 2>&1
install_used echo /www > /var/bt_setupPath.conf
panel_start /etc/init.d/bt 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
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
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment