# coding:utf-8 # --------------------------------------------------------------------------------- # MW-Linux面板 # --------------------------------------------------------------------------------- # copyright (c) 2018-∞(https://github.com/midoks/mdserver-web) All rights reserved. # --------------------------------------------------------------------------------- # Author: midoks # --------------------------------------------------------------------------------- import os from flask import Blueprint, render_template from flask import request from admin.model import Sites from admin.user_login_check import panel_login_required from utils.plugin import plugin as MwPlugin import utils.site as site import core.mw as mw import thisdb blueprint = Blueprint('site', __name__, url_prefix='/site', template_folder='../../templates/default') @blueprint.route('/index', endpoint='index') def index(): return render_template('site.html') # 站点列表 @blueprint.route('/list', endpoint='list', methods=['GET','POST']) @panel_login_required def list(): p = request.form.get('p', '1') limit = request.form.get('limit', '10') type_id = request.form.get('type_id', '0').strip() search = request.form.get('search', '').strip() info = thisdb.getSitesList(page=int(p),size=int(limit),type_id=int(type_id), search=search) data = {} data['data'] = info['list'] data['page'] = mw.getPage({'count':info['count'],'tojs':'getWeb','p':p, 'row':limit}) return data #添加站点 @blueprint.route('/add', endpoint='add',methods=['POST']) @panel_login_required def add(): webname = request.form.get('webinfo', '') ps = request.form.get('ps', '') path = request.form.get('path', '') version = request.form.get('version', '') port = request.form.get('port', '') return [] # 获取站点类型 @blueprint.route('/get_site_types', endpoint='get_site_types',methods=['POST']) @panel_login_required def get_site_types(): return [] # 获取站点根目录 @blueprint.route('/get_root_dir', endpoint='get_root_dir',methods=['POST']) @panel_login_required def get_root_dir(): data = {} data['dir'] = mw.getWwwDir() return data # 检查OpenResty安装/启动状态 @blueprint.route('/check_web_status', endpoint='check_web_status',methods=['POST']) @panel_login_required def check_web_status(): ''' 创建站点检查web服务 ''' if not mw.isInstalledWeb(): return mw.returnJson(False, '请安装并启动OpenResty服务!') # 这个快点 pid = mw.getServerDir() + '/openresty/nginx/logs/nginx.pid' if not os.path.exists(pid): return mw.returnData(False, '请启动OpenResty服务!') return mw.returnData(True, 'OK') # 获取PHP版本 @blueprint.route('/get_php_version', endpoint='get_php_version',methods=['POST']) @panel_login_required def get_php_version(): return site.getPhpVersion() @blueprint.route('/get_cli_php_version', endpoint='get_cli_php_version',methods=['POST']) @panel_login_required def get_cli_php_version(): php_dir = mw.getServerDir() + '/php' if not os.path.exists(php_dir): return mw.returnData(False, '未安装PHP,无法设置') php_bin = '/usr/bin/php' php_versions = site.getPhpVersion() php_versions = php_versions[1:] if len(php_versions) < 1: return mw.returnData(False, '未安装PHP,无法设置') if os.path.exists(php_bin) and os.path.islink(php_bin): link_re = os.readlink(php_bin) for v in php_versions: if link_re.find(v['version']) != -1: return mw.returnData({"select": v, "versions": php_versions}) return mw.getJson({"select": php_versions[0],"versions": php_versions}) @blueprint.route('/set_cli_php_version', endpoint='set_cli_php_version',methods=['POST']) @panel_login_required def set_cli_php_version(): if mw.isAppleSystem(): return mw.returnData(False, "开发机不可设置!") version = request.form.get('version', '') php_bin = '/usr/bin/php' php_bin_src = "/www/server/php/%s/bin/php" % version php_ize = '/usr/bin/phpize' php_ize_src = "/www/server/php/%s/bin/phpize" % version php_fpm = '/usr/bin/php-fpm' php_fpm_src = "/www/server/php/%s/sbin/php-fpm" % version php_pecl = '/usr/bin/pecl' php_pecl_src = "/www/server/php/%s/bin/pecl" % version php_pear = '/usr/bin/pear' php_pear_src = "/www/server/php/%s/bin/pear" % version if not os.path.exists(php_bin_src): return mw.returnData(False, '指定PHP版本未安装!') is_chattr = mw.execShell('lsattr /usr|grep /usr/bin')[0].find('-i-') if is_chattr != -1: mw.execShell('chattr -i /usr/bin') mw.execShell("rm -f " + php_bin + ' ' + php_ize + ' ' + php_fpm + ' ' + php_pecl + ' ' + php_pear) mw.execShell("ln -sf %s %s" % (php_bin_src, php_bin)) mw.execShell("ln -sf %s %s" % (php_ize_src, php_ize)) mw.execShell("ln -sf %s %s" % (php_fpm_src, php_fpm)) mw.execShell("ln -sf %s %s" % (php_pecl_src, php_pecl)) mw.execShell("ln -sf %s %s" % (php_pear_src, php_pear)) if is_chattr != -1: mw.execShell('chattr +i /usr/bin') mw.writeLog('面板设置', '设置PHP-CLI版本为: %s' % version) return mw.returnData(True, '设置成功!')