diff --git a/README.md b/README.md index 2c908a929..d28c3a909 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,6 @@ systemd 支持 CentOS,Ubuntu,Debian,Fedora... ### 问题 - Ubuntu 20 无法安装mysql5.7 && mysql 80. - Ftp debian无法安装成功。 -- php52,在debian无法安装成功。 ### GW使用 @@ -82,6 +81,14 @@ curl -fsSL https://gitee.com/midoks/mdserver-web/raw/master/scripts/update_cn.s ``` + +### 通用安装 + +``` +curl -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/master/scripts/quick/app.sh | bash +``` + + ### DEV使用 - 自动安装 @@ -122,11 +129,9 @@ curl -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/up [![Stargazers over time](https://starchart.cc/midoks/mdserver-web.svg)](https://starchart.cc/midoks/mdserver-web) -### 感谢 +### 感谢开发赞助 -- 开发赞助 - -[digitalvirt](https://digitalvirt.com/) +[![digitalvirt](https://digitalvirt.com/templates/BlueWhite/img/logo-dark.svg)](https://digitalvirt.com/) ### 授权许可 diff --git a/class/core/mw.py b/class/core/mw.py index 5629d57ac..f8fa5ccf7 100755 --- a/class/core/mw.py +++ b/class/core/mw.py @@ -98,6 +98,23 @@ def isAppleSystem(): return False +def isNumber(s): + try: + float(s) + return True + except ValueError: + pass + + try: + import unicodedata + unicodedata.numeric(s) + return True + except (TypeError, ValueError): + pass + + return False + + def deleteFile(file): if os.path.exists(file): os.remove(file) diff --git a/class/core/plugins_api.py b/class/core/plugins_api.py index 3a22894f6..26f70906e 100755 --- a/class/core/plugins_api.py +++ b/class/core/plugins_api.py @@ -48,6 +48,13 @@ class plugins_api: def listApi(self): sType = request.args.get('type', '0') sPage = request.args.get('p', '1') + + if not mw.isNumber(sPage): + sPage = 1 + + if not mw.isNumber(sType): + sType = 0 + # print sPage data = self.getPluginList(sType, int(sPage)) return mw.getJson(data) diff --git a/data/sql/default.sql b/data/sql/default.sql index ab168862e..158206c9d 100755 --- a/data/sql/default.sql +++ b/data/sql/default.sql @@ -48,8 +48,7 @@ INSERT INTO `firewall` (`id`, `port`, `ps`, `addtime`) VALUES (1, '80', '网站默认端口', '0000-00-00 00:00:00'), (2, '7200', 'WEB面板', '0000-00-00 00:00:00'), (3, '22', 'SSH远程管理服务', '0000-00-00 00:00:00'), -(4, '888', 'phpMyAdmin默认端口', '0000-00-00 00:00:00'), -(5, '3306', 'MySQL端口', '0000-00-00 00:00:00'); +(4, '888', 'phpMyAdmin默认端口', '0000-00-00 00:00:00'); diff --git a/plugins/openresty/index.py b/plugins/openresty/index.py index 8875bb4e7..121190493 100755 --- a/plugins/openresty/index.py +++ b/plugins/openresty/index.py @@ -267,7 +267,21 @@ def initdUinstall(): def runInfo(): # 取Openresty负载状态 try: - result = mw.httpGet('http://127.0.0.1/nginx_status') + url = 'http://' + mw.getHostAddr() + '/nginx_status' + result = mw.httpGet(url) + tmp = result.split() + data = {} + data['active'] = tmp[2] + data['accepts'] = tmp[9] + data['handled'] = tmp[7] + data['requests'] = tmp[8] + data['Reading'] = tmp[11] + data['Writing'] = tmp[13] + data['Waiting'] = tmp[15] + return mw.getJson(data) + except Exception as e: + url = 'http://127.0.0.1/nginx_status' + result = mw.httpGet(url) tmp = result.split() data = {} data['active'] = tmp[2] diff --git a/plugins/openresty/install.sh b/plugins/openresty/install.sh index 53ae30979..627e70cfb 100755 --- a/plugins/openresty/install.sh +++ b/plugins/openresty/install.sh @@ -24,6 +24,7 @@ else useradd -g www -s /bin/bash www fi +# cd /www/server/mdserver-web/plugins/openresty && /bin/bash install.sh install 1.21.4.1 Install_openresty() { mkdir -p ${openrestyDir} @@ -37,13 +38,19 @@ Install_openresty() cd ${openrestyDir} && tar -zxvf openresty-${VERSION}.tar.gz # --with-openssl=$serverPath/source/lib/openssl-1.0.2q - cd ${openrestyDir}/openresty-${VERSION} && ./configure --prefix=$serverPath/openresty \ + cd ${openrestyDir}/openresty-${VERSION} && ./configure \ + --prefix=$serverPath/openresty \ --with-http_v2_module \ --with-http_ssl_module \ --with-http_slice_module \ - --with-http_stub_status_module && make && make install && \ - echo "${VERSION}" > $serverPath/openresty/version.pl - echo "" > $serverPath/web_conf/nginx/enable-php-00.conf + --with-http_stub_status_module + + make && make install && make clean + + if [ -d $serverPath/openresty ];then + echo "${VERSION}" > $serverPath/openresty/version.pl + echo "" > $serverPath/openresty/nginx/conf/enable-php-00.conf + fi echo '安装完成' > $install_tmp } diff --git a/plugins/php/index.py b/plugins/php/index.py index d23cfdff6..fe6be8eca 100755 --- a/plugins/php/index.py +++ b/plugins/php/index.py @@ -521,25 +521,38 @@ def setFpmConfig(version): def checkFpmStatusFile(version): - if mw.isInstalledWeb(): - sdir = mw.getServerDir() - dfile = sdir + '/openresty/nginx/conf/php_status/phpfpm_status_' + version + '.conf' - if not os.path.exists(dfile): - tpl = getPluginDir() + '/conf/phpfpm_status.conf' - content = mw.readFile(tpl) - content = contentReplace(content, version) - mw.writeFile(dfile, content) - mw.restartWeb() + if not mw.isInstalledWeb(): + return False + + dfile = getServerDir() + '/nginx/conf/php_status/phpfpm_status_' + version + '.conf' + if not os.path.exists(dfile): + tpl = getPluginDir() + '/conf/phpfpm_status.conf' + content = mw.readFile(tpl) + content = contentReplace(content, version) + mw.writeFile(dfile, content) + mw.restartWeb() + return True def getFpmStatus(version): checkFpmStatusFile(version) - result = mw.httpGet( - 'http://127.0.0.1/phpfpm_status_' + version + '?json') - tmp = json.loads(result) - fTime = time.localtime(int(tmp['start time'])) - tmp['start time'] = time.strftime('%Y-%m-%d %H:%M:%S', fTime) - return mw.getJson(tmp) + + try: + url = 'http://' + mw.getHostAddr() + '/phpfpm_status_' + version + '?json' + result = mw.httpGet(url) + data = json.loads(result) + fTime = time.localtime(int(data['start time'])) + data['start time'] = time.strftime('%Y-%m-%d %H:%M:%S', fTime) + except Exception as e: + url = 'http://127.0.0.1/phpfpm_status_' + version + '?json' + result = mw.httpGet(url) + data = json.loads(result) + fTime = time.localtime(int(data['start time'])) + data['start time'] = time.strftime('%Y-%m-%d %H:%M:%S', fTime) + except Exception as e: + data = {} + + return mw.getJson(data) def getDisableFunc(version): diff --git a/plugins/php/lib/zlib.sh b/plugins/php/lib/zlib.sh index 56e159a18..ab6b4c50a 100644 --- a/plugins/php/lib/zlib.sh +++ b/plugins/php/lib/zlib.sh @@ -13,7 +13,7 @@ rootPath=$(dirname "$rootPath") SERVER_ROOT=$rootPath/lib SOURCE_ROOT=$rootPath/source/lib -if [ ! -d ${SERVER_ROOT}/libiconv ];then +if [ ! -d ${SERVER_ROOT}/zlib ];then cd $SOURCE_ROOT if [ ! -f ${SOURCE_ROOT}/zlib-1.2.11.tar.gz ];then diff --git a/plugins/php/versions/52/install.sh b/plugins/php/versions/52/install.sh index 5bacea599..9cdb35703 100755 --- a/plugins/php/versions/52/install.sh +++ b/plugins/php/versions/52/install.sh @@ -11,6 +11,46 @@ sysName=`uname` install_tmp=${rootPath}/tmp/mw_install.pl + +_os=`uname` +echo "use system: ${_os}" + +if [ ${_os} == "Darwin" ]; then + OSNAME='macos' +elif grep -Eqi "CentOS" /etc/issue || grep -Eq "CentOS" /etc/*-release; then + OSNAME='centos' +elif grep -Eqi "Fedora" /etc/issue || grep -Eq "Fedora" /etc/*-release; then + OSNAME='fedora' +elif grep -Eqi "Rocky" /etc/issue || grep -Eq "Rocky" /etc/*-release; then + OSNAME='rocky' +elif grep -Eqi "AlmaLinux" /etc/issue || grep -Eq "AlmaLinux" /etc/*-release; then + OSNAME='alma' +elif grep -Eqi "Debian" /etc/issue || grep -Eq "Debian" /etc/*-release; then + OSNAME='debian' +elif grep -Eqi "Ubuntu" /etc/issue || grep -Eq "Ubuntu" /etc/*-release; then + OSNAME='ubuntu' +elif grep -Eqi "Raspbian" /etc/issue || grep -Eq "Raspbian" /etc/*-release; then + OSNAME='raspbian' +else + OSNAME='unknow' +fi + + +if [ "$OSNAME" == 'ubuntu' ] || [ "$OSNAME" == 'debian' ] ;then + apt install bison=2.4.1 + if [ "$?" != "0" ]; then + echo 'The system version is too high to install' + exit 1 + fi + + apt install flex=2.5.4 + if [ "$?" != "0" ]; then + echo 'The system version is too high to install' + exit 1 + fi +fi + + version=5.2.17 PHP_VER=52 Install_php() diff --git a/plugins/php/versions/53/install.sh b/plugins/php/versions/53/install.sh index dc424ac7f..e41edd4ed 100755 --- a/plugins/php/versions/53/install.sh +++ b/plugins/php/versions/53/install.sh @@ -11,6 +11,7 @@ sysName=`uname` install_tmp=${rootPath}/tmp/mw_install.pl + version=5.3.29 PHP_VER=53 Install_php() @@ -34,15 +35,6 @@ if [ ! -d $sourcePath/php/php${PHP_VER} ];then fi -if [ -f $serverPath/php/53/bin/php.dSYM ];then - mv $serverPath/php/53/bin/php.dSYM $serverPath/php/53/bin/php -fi - -if [ -f $serverPath/php/53/sbin/php-fpm.dSYM ];then - mv $serverPath/php/53/sbin/php-fpm.dSYM $serverPath/php/53/sbin/php-fpm -fi - - if [ -f $serverPath/php/53/bin/php ];then return fi diff --git a/plugins/redis/index.py b/plugins/redis/index.py index 0a7f24910..5c57d2fef 100755 --- a/plugins/redis/index.py +++ b/plugins/redis/index.py @@ -96,9 +96,12 @@ def initDreplace(): # config replace dst_conf = getServerDir() + '/redis.conf' - conf_content = mw.readFile(getConfTpl()) - conf_content = conf_content.replace('{$SERVER_PATH}', service_path) - mw.writeFile(dst_conf, conf_content) + dst_conf_init = getServerDir() + '/init.pl' + if not os.path.exists(dst_conf_init): + conf_content = mw.readFile(getConfTpl()) + conf_content = conf_content.replace('{$SERVER_PATH}', service_path) + mw.writeFile(dst_conf, conf_content) + mw.writeFile(dst_conf_init, 'ok') # systemd systemDir = '/lib/systemd/system' diff --git a/plugins/varnish/index.html b/plugins/varnish/index.html index df23818be..d250b0686 100755 --- a/plugins/varnish/index.html +++ b/plugins/varnish/index.html @@ -4,6 +4,7 @@

服务

自启动

VCL

+

服务配置

日志

状态

diff --git a/plugins/varnish/index.py b/plugins/varnish/index.py index 21cfa828a..78f3df281 100755 --- a/plugins/varnish/index.py +++ b/plugins/varnish/index.py @@ -172,6 +172,10 @@ def initdUinstall(): def runLog(): return "/var/log/varnish/varnishncsa.log" + +def confService(): + return '/lib/systemd/system/varnish.service' + if __name__ == "__main__": func = sys.argv[1] if func == 'status': @@ -194,6 +198,8 @@ if __name__ == "__main__": print(runInfo()) elif func == 'conf': print(getConf()) + elif func == 'conf_service': + print(confService()) elif func == 'run_log': print(runLog()) elif func == 'config_tpl': diff --git a/plugins/varnish/js/varnish.js b/plugins/varnish/js/varnish.js index 607289aca..5a0ffbcec 100644 --- a/plugins/varnish/js/varnish.js +++ b/plugins/varnish/js/varnish.js @@ -9,7 +9,7 @@ function pRead(){ } -//redis负载状态 start +//varnish负载状态 start function varnishStatus() { var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 }); $.post('/plugins/run', {name:'varnish', func:'run_info'}, function(data) { @@ -41,4 +41,61 @@ function varnishStatus() { $(".soft-man-con").html(Con); },'json'); } -//redis负载状态 end \ No newline at end of file +//varnish负载状态 end + + +//varnish service --- +function varnishPluginConfig(_name, version, func){ + if ( typeof(version) == 'undefined' ){ + version = ''; + } + + var func_name = 'conf'; + if ( typeof(func) != 'undefined' ){ + func_name = func; + } + + var con = '

提示:Ctrl+F 搜索关键字,Ctrl+G 查找下一个,Ctrl+S 保存,Ctrl+Shift+R 查找替换!

\ + \ + \ + '; + $(".soft-man-con").html(con); + + var loadT = layer.msg('配置文件路径获取中...',{icon:16,time:0,shade: [0.3, '#000']}); + $.post('/plugins/run', {name:_name, func:func_name,version:version},function (data) { + layer.close(loadT); + + var loadT2 = layer.msg('文件内容获取中...',{icon:16,time:0,shade: [0.3, '#000']}); + var fileName = data.data; + $.post('/files/get_body', 'path=' + fileName, function(rdata) { + layer.close(loadT2); + if (!rdata.status){ + layer.msg(rdata.msg,{icon:0,time:2000,shade: [0.3, '#000']}); + return; + } + $("#textBody").empty().text(rdata.data.data); + $(".CodeMirror").remove(); + var editor = CodeMirror.fromTextArea(document.getElementById("textBody"), { + extraKeys: { + "Ctrl-Space": "autocomplete", + "Ctrl-F": "findPersistent", + "Ctrl-H": "replaceAll", + "Ctrl-S": function() { + $("#textBody").text(editor.getValue()); + pluginConfigSave(fileName); + } + }, + lineNumbers: true, + matchBrackets:true, + }); + editor.focus(); + $(".CodeMirror-scroll").css({"height":"300px","margin":0,"padding":0}); + $("#onlineEditFileBtn").click(function(){ + $("#textBody").text(editor.getValue()); + pluginConfigSave(fileName); + }); + },'json'); + },'json'); +} diff --git a/requirements.txt b/requirements.txt index 9f607da48..4b1870f88 100644 --- a/requirements.txt +++ b/requirements.txt @@ -22,6 +22,6 @@ zmq==0.0.0 pymongo pillow Jinja2>=2.11.2 -mysqlclient>=2.0.3 flask-caching>=1.10.1 mysql-connector-python +mysqlclient>=2.0.3 diff --git a/route/static/app/soft.js b/route/static/app/soft.js index 34b3f3c37..020a19933 100755 --- a/route/static/app/soft.js +++ b/route/static/app/soft.js @@ -33,7 +33,7 @@ function getSList(isdisplay) { var loadT = layer.msg('正在获取列表...', { icon: 16, time: 0, shade: [0.3, '#000'] }) } if (!isdisplay || isdisplay === true) - isdisplay = getCookie('p' + getCookie('softType')); + isdisplay = getCookie('p' + getCookie('soft_type')); if (isdisplay == true || isdisplay == 'true') isdisplay = 1; var search = $("#SearchValue").val(); @@ -41,7 +41,7 @@ function getSList(isdisplay) { search = '&search=' + search; } var type = ''; - var istype = getCookie('softType'); + var istype = getCookie('soft_type'); if (istype == 'undefined' || istype == 'null' || !istype) { istype = '0'; } @@ -50,7 +50,7 @@ function getSList(isdisplay) { var page = ''; if (isdisplay) { page = '&p=' + isdisplay; - setCookie('p' + getCookie('softType'), isdisplay); + setCookie('p' + getCookie('soft_type'), isdisplay); } var condition = (search + type + page).slice(1); @@ -162,7 +162,7 @@ function getSList(isdisplay) { sBody += pBody; $("#softList").html(sBody); $(".menu-sub span").click(function() { - setCookie('softType', $(this).attr('typeid')); + setCookie('soft_type', $(this).attr('typeid')); $(this).addClass("on").siblings().removeClass("on"); getSList(); }); diff --git a/scripts/init.d/mw.tpl b/scripts/init.d/mw.tpl index c59f86a7f..ed08ee0f9 100755 --- a/scripts/init.d/mw.tpl +++ b/scripts/init.d/mw.tpl @@ -175,7 +175,7 @@ case "$1" in if [ ! -f $mw_path/data/default.pl ];then echo -e "\033[33mInstall Failed\033[0m" - exit 0 + exit 1 fi password=$(cat $mw_path/data/default.pl) @@ -185,19 +185,43 @@ case "$1" in if [ -f $mw_path/data/admin_path.pl ];then auth_path=$(cat $mw_path/data/admin_path.pl) fi - if [ "$address" = "" ];then - address=$(curl -sS --connect-timeout 10 -m 60 https://v6r.ipip.net/?format=text) + + if [ "$address" = "" ];then + v4_available=true + v6_available=true + { + v4=$(curl -4 -sS --connect-timeout 5 -m 60 https://v6r.ipip.net/?format=text) + } || { + v4_available=false + } + { + v6=$(curl -6 -sS --connect-timeout 5 -m 60 https://v6r.ipip.net/?format=text) + } || { + v6_available=false + } + + if [ $v4_available = true ] && [ $v6_available = true ]; then + address="MW-Panel-Url: http://$v4:$port$auth_path \nMW-Panel-Url: http://[$v6]:$port$auth_path" + elif [ $v4_available = true ]; then + address="MW-Panel-Url: http://$v4:$port$auth_path" + elif [ $v6_available = true ]; then + address="MW-Panel-Url: http://[$v6]:$port$auth_path" + else + address="No v4 or v6 available" + fi + else + address="MW-Panel-Url: http://$address:$port$auth_path" fi echo -e "==================================================================" echo -e "\033[32mMW-Panel default info!\033[0m" echo -e "==================================================================" - echo -e "MW-Panel-URL: http://$address:$port$auth_path" + echo -e "$address" echo -e `python3 $mw_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 (7200|888|80|443|20|21) in the security group\033[0m" + echo -e "\033[33mrelease the following port (7200|888|80|443|22) in the security group\033[0m" echo -e "==================================================================" ;; esac diff --git a/scripts/install.sh b/scripts/install.sh index c2de403f3..f7de91cea 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -44,6 +44,9 @@ elif grep -Eqi "AlmaLinux" /etc/issue || grep -Eq "AlmaLinux" /etc/*-release; th yum install -y wget zip unzip elif grep -Eqi "Debian" /etc/issue || grep -Eq "Debian" /etc/*-release; then OSNAME='debian' + apt update -y + apt install -y devscripts + apt install -y wget zip unzip apt install -y wget zip unzip elif grep -Eqi "Ubuntu" /etc/issue || grep -Eq "Ubuntu" /etc/*-release; then OSNAME='ubuntu' diff --git a/scripts/install/alma.sh b/scripts/install/alma.sh index da07497cf..87ed5dbae 100755 --- a/scripts/install/alma.sh +++ b/scripts/install/alma.sh @@ -26,7 +26,7 @@ if [ -f /etc/init.d/iptables ];then iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 888 -j ACCEPT iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 7200 -j ACCEPT - iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT + # iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT # iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 30000:40000 -j ACCEPT service iptables save @@ -50,7 +50,7 @@ if [ ! -f /etc/init.d/iptables ];then firewall-cmd --permanent --zone=public --add-port=443/tcp firewall-cmd --permanent --zone=public --add-port=888/tcp firewall-cmd --permanent --zone=public --add-port=7200/tcp - firewall-cmd --permanent --zone=public --add-port=3306/tcp + # firewall-cmd --permanent --zone=public --add-port=3306/tcp # firewall-cmd --permanent --zone=public --add-port=30000-40000/tcp diff --git a/scripts/install/centos.sh b/scripts/install/centos.sh index 99fec794a..b93800cf1 100755 --- a/scripts/install/centos.sh +++ b/scripts/install/centos.sh @@ -30,7 +30,7 @@ if [ -f /etc/init.d/iptables ];then iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 888 -j ACCEPT iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 7200 -j ACCEPT - iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT + # iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT # iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 30000:40000 -j ACCEPT service iptables save @@ -54,7 +54,7 @@ if [ ! -f /etc/init.d/iptables ];then firewall-cmd --permanent --zone=public --add-port=443/tcp firewall-cmd --permanent --zone=public --add-port=888/tcp firewall-cmd --permanent --zone=public --add-port=7200/tcp - firewall-cmd --permanent --zone=public --add-port=3306/tcp + # firewall-cmd --permanent --zone=public --add-port=3306/tcp # firewall-cmd --permanent --zone=public --add-port=30000-40000/tcp diff --git a/scripts/install/debian.sh b/scripts/install/debian.sh index e5338111f..6a437af46 100644 --- a/scripts/install/debian.sh +++ b/scripts/install/debian.sh @@ -3,12 +3,21 @@ PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH LANG=en_US.UTF-8 +# RED='\e[1;31m' # 红色 +# GREEN='\e[1;32m' # 绿色 +# YELLOW='\e[1;33m' # 黄色 +# BLUE='\e[1;34m' # 蓝色 +# PURPLE='\e[1;35m' # 紫色 +# CYAN='\e[1;36m' # 蓝绿色 +# WHITE='\e[1;37m' # 白色 +# NC='\e[0m' # 没有颜色 apt update -y apt install -y wget curl lsof unzip apt install -y python3-pip +apt install -y python3-dev apt install -y python3-venv apt install -y cron @@ -24,7 +33,7 @@ if [ -f /usr/sbin/ufw ];then ufw allow 443/tcp ufw allow 888/tcp ufw allow 7200/tcp - ufw allow 3306/tcp + # ufw allow 3306/tcp # ufw allow 30000:40000/tcp fi @@ -46,7 +55,7 @@ if [ ! -f /usr/sbin/ufw ];then firewall-cmd --permanent --zone=public --add-port=443/tcp firewall-cmd --permanent --zone=public --add-port=888/tcp firewall-cmd --permanent --zone=public --add-port=7200/tcp - firewall-cmd --permanent --zone=public --add-port=3306/tcp + # firewall-cmd --permanent --zone=public --add-port=3306/tcp # firewall-cmd --permanent --zone=public --add-port=30000-40000/tcp # fix:debian10 firewalld faq @@ -60,16 +69,47 @@ fi systemctl stop firewalld +#fix zlib1g-dev fail +echo -e "\e[0;32mfix zlib1g-dev install question start\e[0m" +Install_TmpFile=/tmp/debian-fix-zlib1g-dev.txt +apt install -y zlib1g-dev > ${Install_TmpFile} +if [ "$?" != "0" ];then + ZLIB1G_BASE_VER=$(cat ${Install_TmpFile} | grep zlib1g | awk -F "=" '{print $2}' | awk -F ")" '{print $1}') + ZLIB1G_BASE_VER=`echo ${ZLIB1G_BASE_VER} | sed "s/^[ \s]\{1,\}//g;s/[ \s]\{1,\}$//g"` + # echo "1${ZLIB1G_BASE_VER}1" + echo -e "\e[1;31mapt install zlib1g=${ZLIB1G_BASE_VER} zlib1g-dev\e[0m" + echo "Y" | apt install zlib1g=${ZLIB1G_BASE_VER} zlib1g-dev +fi +rm -rf ${Install_TmpFile} +echo -e "\e[0;32mfix zlib1g-dev install question end\e[0m" + + +#fix libunwind-dev fail +echo -e "\e[0;32mfix libunwind-dev install question start\e[0m" +Install_TmpFile=/tmp/debian-fix-libunwind-dev.txt +apt install -y libunwind-dev > ${Install_TmpFile} +if [ "$?" != "0" ];then + liblzma5_BASE_VER=$(cat ${Install_TmpFile} | grep liblzma-dev | awk -F "=" '{print $2}' | awk -F ")" '{print $1}') + liblzma5_BASE_VER=`echo ${liblzma5_BASE_VER} | sed "s/^[ \s]\{1,\}//g;s/[ \s]\{1,\}$//g"` + echo -e "\e[1;31mapt install liblzma5=${liblzma5_BASE_VER} libunwind-dev\e[0m" + echo "Y" | apt install liblzma5=${liblzma5_BASE_VER} libunwind-dev +fi +rm -rf ${Install_TmpFile} +echo -e "\e[0;32mfix libunwind-dev install question end\e[0m" + + cd /www/server/mdserver-web/scripts && bash lib.sh chmod 755 /www/server/mdserver-web/data + + if [ ! -f /usr/local/bin/pip3 ];then python3 -m pip install --upgrade pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple fi pip install --upgrade pip -pip install --upgrade setuptools +sed -i "/mysqlclient/d" /www/server/mdserver-web/requirements.txt cd /www/server/mdserver-web && pip3 install -r /www/server/mdserver-web/requirements.txt pip3 install gunicorn==20.1.0 @@ -77,24 +117,23 @@ pip3 install gevent==21.1.2 pip3 install gevent-websocket==0.10.1 pip3 install requests==2.20.0 pip3 install flask-caching==1.10.1 -pip3 install flask-socketio==5.2.0 pip3 install pymongo pip3 install psutil +pip3 install flask-socketio==5.2.0 if [ ! -f /www/server/mdserver-web/bin/activate ];then cd /www/server/mdserver-web && python3 -m venv . cd /www/server/mdserver-web && source /www/server/mdserver-web/bin/activate pip install --upgrade pip pip3 install -r /www/server/mdserver-web/requirements.txt - pip install --upgrade setuptools pip3 install gunicorn==20.1.0 pip3 install gevent==21.1.2 pip3 install gevent-websocket==0.10.1 pip3 install requests==2.20.0 pip3 install flask-caching==1.10.1 - pip3 install flask-socketio==5.2.0 pip3 install pymongo - pip3 install psutil + pip3 install psutil + pip3 install flask-socketio==5.2.0 fi diff --git a/scripts/install/fedora.sh b/scripts/install/fedora.sh index 9074e7eef..2eec600ce 100644 --- a/scripts/install/fedora.sh +++ b/scripts/install/fedora.sh @@ -29,7 +29,7 @@ if [ -f /etc/init.d/iptables ];then iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 888 -j ACCEPT iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 7200 -j ACCEPT - iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT + # iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT # iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 30000:40000 -j ACCEPT service iptables save @@ -55,7 +55,7 @@ if [ "${isVersion}" == '' ];then firewall-cmd --permanent --zone=public --add-port=443/tcp firewall-cmd --permanent --zone=public --add-port=888/tcp firewall-cmd --permanent --zone=public --add-port=7200/tcp - firewall-cmd --permanent --zone=public --add-port=3306/tcp + # firewall-cmd --permanent --zone=public --add-port=3306/tcp # firewall-cmd --permanent --zone=public --add-port=30000-40000/tcp firewall-cmd --reload fi diff --git a/scripts/install/rocky.sh b/scripts/install/rocky.sh index b4621abeb..557919b60 100644 --- a/scripts/install/rocky.sh +++ b/scripts/install/rocky.sh @@ -31,7 +31,7 @@ if [ -f /etc/init.d/iptables ];then iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 888 -j ACCEPT iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 7200 -j ACCEPT - iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT + # iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT # iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 30000:40000 -j ACCEPT service iptables save @@ -55,7 +55,7 @@ if [ ! -f /etc/init.d/iptables ];then firewall-cmd --permanent --zone=public --add-port=443/tcp firewall-cmd --permanent --zone=public --add-port=888/tcp firewall-cmd --permanent --zone=public --add-port=7200/tcp - firewall-cmd --permanent --zone=public --add-port=3306/tcp + # firewall-cmd --permanent --zone=public --add-port=3306/tcp # firewall-cmd --permanent --zone=public --add-port=30000-40000/tcp diff --git a/scripts/install/ubuntu.sh b/scripts/install/ubuntu.sh index 9bec0dbdd..476a63de2 100644 --- a/scripts/install/ubuntu.sh +++ b/scripts/install/ubuntu.sh @@ -9,6 +9,8 @@ apt update -y apt install -y wget curl lsof unzip apt install -y python3-pip apt install -y python3-venv +apt install -y python3-dev + apt install -y cron @@ -24,7 +26,7 @@ if [ -f /usr/sbin/ufw ];then ufw allow 443/tcp ufw allow 888/tcp ufw allow 7200/tcp - ufw allow 3306/tcp + # ufw allow 3306/tcp # ufw allow 30000:40000/tcp fi @@ -44,7 +46,7 @@ if [ ! -f /usr/sbin/ufw ];then firewall-cmd --permanent --zone=public --add-port=443/tcp firewall-cmd --permanent --zone=public --add-port=888/tcp firewall-cmd --permanent --zone=public --add-port=7200/tcp - firewall-cmd --permanent --zone=public --add-port=3306/tcp + # firewall-cmd --permanent --zone=public --add-port=3306/tcp # firewall-cmd --permanent --zone=public --add-port=30000-40000/tcp # fix:debian10 firewalld faq diff --git a/scripts/install_cn.sh b/scripts/install_cn.sh index 15e878001..990c862d7 100755 --- a/scripts/install_cn.sh +++ b/scripts/install_cn.sh @@ -44,6 +44,9 @@ elif grep -Eqi "AlmaLinux" /etc/issue || grep -Eq "AlmaLinux" /etc/*-release; th yum install -y wget zip unzip elif grep -Eqi "Debian" /etc/issue || grep -Eq "Debian" /etc/*-release; then OSNAME='debian' + apt update -y + apt install -y devscripts + apt install -y wget zip unzip apt install -y wget zip unzip elif grep -Eqi "Ubuntu" /etc/issue || grep -Eq "Ubuntu" /etc/*-release; then OSNAME='ubuntu' diff --git a/scripts/install_dev.sh b/scripts/install_dev.sh index 4b914988f..3a0049449 100755 --- a/scripts/install_dev.sh +++ b/scripts/install_dev.sh @@ -44,6 +44,8 @@ elif grep -Eqi "AlmaLinux" /etc/issue || grep -Eq "AlmaLinux" /etc/*-release; th yum install -y wget zip unzip elif grep -Eqi "Debian" /etc/issue || grep -Eq "Debian" /etc/*-release; then OSNAME='debian' + apt update -y + apt install -y devscripts apt install -y wget zip unzip elif grep -Eqi "Ubuntu" /etc/issue || grep -Eq "Ubuntu" /etc/*-release; then OSNAME='ubuntu' diff --git a/scripts/lib.sh b/scripts/lib.sh index 7f33fc0e7..cc8afa54d 100755 --- a/scripts/lib.sh +++ b/scripts/lib.sh @@ -295,16 +295,19 @@ elif [ "$OSNAME" == "ubuntu" ] || [ "$OSNAME" == "debian" ]; then apt install -y cmake automake make apt install -y webp scons - apt install -y lzma lzma-dev libunwind-dev + apt install -y lzma lzma-dev + apt install -y libunwind-dev apt install -y libpcre3 libpcre3-dev apt install -y openssl apt install -y libxml2 libxml2-dev libbz2-dev libmcrypt-dev libpspell-dev librecode-dev apt install -y libgmp-dev libgmp3-dev libreadline-dev libxpm-dev - apt install -y zlib1g-dev dia pkg-config - apt install -y libjpeg62-turbo-dev libjpeg-dev libpng-dev + apt install -y dia pkg-config + apt install -y zlib1g-dev + apt install -y libjpeg-dev libpng-dev apt install -y libfreetype6 + apt install -y libjpeg62-turbo-dev apt install -y libfreetype6-dev apt install -y libevent-dev libncurses5-dev libldap2-dev diff --git a/scripts/quick/app.sh b/scripts/quick/app.sh new file mode 100755 index 000000000..f411bab40 --- /dev/null +++ b/scripts/quick/app.sh @@ -0,0 +1,42 @@ +#!/bin/bash +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin +export PATH + +echo "welcome to mdserver-web panel" + +startTime=`date +%s` + +if [ ! -d /www/server/mdserver-web ];then + echo "mdserver-web not exist!" + exit 1 +fi + +# openresty +if [ ! -d /www/server/openresty ];then + cd /www/server/mdserver-web/plugins/openresty && bash install.sh install 1.21.4.1 + cd /www/server/mdserver-web && python3 /www/server/mdserver-web/plugins/openresty/index.py start +else + echo "openresty alreay exist!" +fi + + +# php +if [ ! -d /www/server/php/71 ];then + cd /www/server/mdserver-web/plugins/php && bash install.sh install 71 + cd /www/server/mdserver-web && python3 /www/server/mdserver-web/plugins/php/index.py start 71 +else + echo "php71 alreay exist!" +fi + +# mysql +if [ ! -d /www/server/mysql ];then + cd /www/server/mdserver-web/plugins/mysql && bash install.sh install 5.5 + cd /www/server/mdserver-web && python3 /www/server/mdserver-web/plugins/mysql/index.py start 5.5 +else + echo "mysql alreay exist!" +fi + +endTime=`date +%s` +((outTime=(${endTime}-${startTime})/60)) +echo -e "Time consumed:\033[32m $outTime \033[0mMinute!" + diff --git a/scripts/quick/debug.sh b/scripts/quick/debug.sh new file mode 100755 index 000000000..473a323d1 --- /dev/null +++ b/scripts/quick/debug.sh @@ -0,0 +1,36 @@ +#!/bin/bash +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin +export PATH + +echo "welcome to mdserver-web panel" + +startTime=`date +%s` + +if [ ! -d /www/server/mdserver-web ];then + echo "mdserver-web not exist!" + exit 1 +fi + +# openresty +if [ ! -d /www/server/openresty ];then + cd /www/server/mdserver-web/plugins/openresty && bash install.sh install 1.21.4.1 + cd /www/server/mdserver-web && python3 /www/server/mdserver-web/plugins/openresty/index.py start +fi + + +# php +if [ ! -d /www/server/php/71 ];then + cd /www/server/mdserver-web/plugins/php && bash install.sh install 71 + cd /www/server/mdserver-web && python3 /www/server/mdserver-web/plugins/php/index.py start 71 +fi + +# mysql +if [ ! -d /www/server/mysql ];then + cd /www/server/mdserver-web/plugins/mysql && bash install.sh install 5.5 + cd /www/server/mdserver-web && python3 /www/server/mdserver-web/plugins/mysql/index.py start 5.5 +fi + +endTime=`date +%s` +((outTime=(${endTime}-${startTime})/60)) +echo -e "Time consumed:\033[32m $outTime \033[0mMinute!" + diff --git a/tools.py b/tools.py index 5f65f621e..9eef50e1a 100755 --- a/tools.py +++ b/tools.py @@ -13,7 +13,6 @@ cmd = 'ls /usr/local/lib/ | grep python | cut -d \\ -f 1 | awk \'END {print}\' info = mw.execShell(cmd) p = "/usr/local/lib/" + info[0].strip() + "/site-packages" sys.path.append(p) -import psutil def set_mysql_root(password):