mirror of https://github.com/midoks/mdserver-web
pull/109/head
parent
53208913d8
commit
980996bfe5
@ -1,350 +0,0 @@ |
||||
#coding: utf-8 |
||||
# +------------------------------------------------------------------- |
||||
# | 宝塔Linux面板 x3 |
||||
# +------------------------------------------------------------------- |
||||
# | Copyright (c) 2015-2017 宝塔软件(http://bt.cn) All rights reserved. |
||||
# +------------------------------------------------------------------- |
||||
# | Author: 黄文良 <2879625666@qq.com> |
||||
# +------------------------------------------------------------------- |
||||
|
||||
#+-------------------------------------------------------------------- |
||||
#| 自动部署网站 |
||||
#+-------------------------------------------------------------------- |
||||
|
||||
import public,json,os,time; |
||||
class obj: id=0; |
||||
class deployment_main: |
||||
__setupPath = '/www/server/panel/plugin/deployment'; |
||||
__panelPath = '/www/server/panel'; |
||||
logPath = '/www/server/panel/plugin/deployment/speed.json' |
||||
timeoutCount = 0; |
||||
oldTime = 0; |
||||
|
||||
#获取列表 |
||||
def GetList(self,get): |
||||
self.GetCloudList(get); |
||||
jsonFile = self.__setupPath + '/list.json'; |
||||
if not os.path.exists(jsonFile): return public.returnMsg(False,'配置文件不存在!'); |
||||
data = {} |
||||
data = json.loads(public.readFile(jsonFile)); |
||||
|
||||
if not hasattr(get,'type'): |
||||
get.type = 0; |
||||
else: |
||||
get.type = int(get.type) |
||||
if not hasattr(get,'search'): |
||||
search = None |
||||
m = 0 |
||||
else: |
||||
search = get.search.encode('utf-8').lower(); |
||||
m = 1 |
||||
|
||||
tmp = []; |
||||
for d in data: |
||||
i=0; |
||||
if get.type > 0: |
||||
if get.type == d['type']: i+=1 |
||||
else: |
||||
i+=1 |
||||
if search: |
||||
if d['name'].lower().find(search) != -1: i+=1; |
||||
if d['title'].lower().find(search) != -1: i+=1; |
||||
if get.type > 0 and get.type != d['type']: i -= 1; |
||||
if i>m:tmp.append(d); |
||||
|
||||
data = tmp; |
||||
result = {} |
||||
result['data'] = data; |
||||
jsonFile = self.__setupPath + '/type.json'; |
||||
if not os.path.exists(jsonFile): self.GetCloudList(get); |
||||
result['type'] = json.loads(public.readFile(jsonFile)); |
||||
return result; |
||||
|
||||
#获取插件列表 |
||||
def GetDepList(self,get): |
||||
jsonFile = self.__setupPath + '/list.json'; |
||||
if not os.path.exists(jsonFile): return public.returnMsg(False,'配置文件不存在!'); |
||||
data = {} |
||||
data = json.loads(public.readFile(jsonFile)); |
||||
return data; |
||||
|
||||
|
||||
#从云端获取列表 |
||||
def GetCloudList(self,get): |
||||
try: |
||||
import web |
||||
if not hasattr(web.ctx.session,'package'): |
||||
downloadUrl = public.get_url() + '/install/lib/plugin/deployment/package.json'; |
||||
tmp = json.loads(public.httpGet(downloadUrl)); |
||||
if not tmp: return public.returnMsg(False,'从云端获取失败!'); |
||||
jsonFile = self.__setupPath + '/list.json'; |
||||
public.writeFile(jsonFile,json.dumps(tmp)); |
||||
|
||||
downloadUrl = public.get_url() + '/install/lib/plugin/deployment/type.json'; |
||||
tmp = json.loads(public.httpGet(downloadUrl)); |
||||
if not tmp: return public.returnMsg(False,'从云端获取失败!'); |
||||
jsonFile = self.__setupPath + '/type.json'; |
||||
public.writeFile(jsonFile,json.dumps(tmp)); |
||||
|
||||
web.ctx.session.package = True |
||||
return public.returnMsg(True,'更新成功!'); |
||||
return public.returnMsg(True,'无需更新!'); |
||||
except: |
||||
return public.returnMsg(False,'从云端获取失败!'); |
||||
|
||||
|
||||
|
||||
#添加程序包 |
||||
def AddPackage(self,get): |
||||
jsonFile = self.__setupPath + '/list.json'; |
||||
if not os.path.exists(jsonFile): return public.returnMsg(False,'配置文件不存在!'); |
||||
|
||||
data = {} |
||||
data = json.loads(public.readFile(jsonFile)); |
||||
for d in data: |
||||
if d['name'] == get.dname: return public.returnMsg(False,'您要添加的程序标识已存在!'); |
||||
if d['title'] == get.title: return public.returnMsg(False,'您要添加的程序名称已存在!'); |
||||
|
||||
if hasattr(get,'rewrite'): get.rewrite = True; |
||||
|
||||
pinfo = {} |
||||
pinfo['name'] = get.dname; |
||||
pinfo['title'] = get.title; |
||||
pinfo['version'] = get.version; |
||||
pinfo['md5'] = get.md5; |
||||
pinfo['rewrite'] = get.rewrite; |
||||
pinfo['php'] = get.php; |
||||
pinfo['ps'] = get.ps; |
||||
pinfo['shell'] = get.shell; |
||||
pinfo['download'] = get.download; |
||||
data.append(pinfo); |
||||
public.writeFile(jsonFile,json.dumps(data)); |
||||
return public.returnMsg(True,'添加成功!'); |
||||
|
||||
#删除程序包 |
||||
def DelPackage(self,get): |
||||
jsonFile = self.__setupPath + '/list.json'; |
||||
if not os.path.exists(jsonFile): return public.returnMsg(False,'配置文件不存在!'); |
||||
|
||||
data = {} |
||||
data = json.loads(public.readFile(jsonFile)); |
||||
|
||||
tmp = []; |
||||
for d in data: |
||||
if d['name'].find(get.dname) != -1: continue; |
||||
tmp.append(d); |
||||
|
||||
data = tmp; |
||||
public.writeFile(jsonFile,json.dumps(data)); |
||||
return public.returnMsg(True,'删除成功!'); |
||||
|
||||
#下载文件 |
||||
def DownloadFile(self,url,filename): |
||||
try: |
||||
import urllib,socket |
||||
socket.setdefaulttimeout(10) |
||||
self.pre = 0; |
||||
self.oldTime = time.time(); |
||||
urllib.urlretrieve(url,filename=filename,reporthook= self.DownloadHook) |
||||
self.WriteLogs(json.dumps({'name':'下载文件','total':0,'used':0,'pre':0,'speed':0})); |
||||
except: |
||||
if self.timeoutCount > 5: return; |
||||
self.timeoutCount += 1 |
||||
time.sleep(5) |
||||
self.DownloadFile(url,filename) |
||||
|
||||
#下载文件进度回调 |
||||
def DownloadHook(self,count, blockSize, totalSize): |
||||
used = count * blockSize |
||||
pre1 = int((100.0 * used / totalSize)) |
||||
if self.pre != pre1: |
||||
dspeed = used / (time.time() - self.oldTime); |
||||
speed = {'name':'下载文件','total':totalSize,'used':used,'pre':self.pre,'speed':dspeed} |
||||
self.WriteLogs(json.dumps(speed)) |
||||
self.pre = pre1 |
||||
|
||||
#写输出日志 |
||||
def WriteLogs(self,logMsg): |
||||
fp = open(self.logPath,'w+'); |
||||
fp.write(logMsg) |
||||
fp.close() |
||||
|
||||
#一键安装网站程序 |
||||
#param string name 程序名称 |
||||
#param string site_name 网站名称 |
||||
#param string php_version PHP版本 |
||||
def SetupPackage(self,get): |
||||
name = get.dname |
||||
site_name = get.site_name; |
||||
php_version = get.php_version; |
||||
#取基础信息 |
||||
find = public.M('sites').where('name=?',(site_name,)).field('id,path').find(); |
||||
path = find['path']; |
||||
|
||||
#获取包信息 |
||||
pinfo = self.GetPackageInfo(name); |
||||
if not pinfo: return public.returnMsg(False,'指定软件包不存在!'); |
||||
|
||||
#检查本地包 |
||||
self.WriteLogs(json.dumps({'name':'检查软件包','total':0,'used':0,'pre':0,'speed':0})); |
||||
packageZip = self.__setupPath + '/package/' + name + '.zip'; |
||||
isDownload = False; |
||||
if os.path.exists(packageZip): |
||||
md5str = self.GetFileMd5(packageZip); |
||||
if md5str != pinfo['md5']: isDownload = True; |
||||
else: |
||||
isDownload = True; |
||||
|
||||
#下载文件 |
||||
|
||||
if isDownload: |
||||
self.WriteLogs(json.dumps({'name':'下载文件','total':0,'used':0,'pre':0,'speed':0})); |
||||
self.DownloadFile(pinfo['download'], packageZip); |
||||
if not os.path.exists(packageZip): return public.returnMsg(False,'文件下载失败!'); |
||||
os.system('unzip -o '+packageZip+' -d ' + path + '/'); |
||||
|
||||
#设置权限 |
||||
self.WriteLogs(json.dumps({'name':'设置权限','total':0,'used':0,'pre':0,'speed':0})); |
||||
os.system('chmod -R 755 ' + path); |
||||
os.system('chown -R www.www ' + path); |
||||
if pinfo['chmod'] != "": |
||||
access = pinfo['chmod'].split(',') |
||||
for chm in access: |
||||
tmp = chm.split('|'); |
||||
if len(tmp) != 2: continue; |
||||
os.system('chmod -R ' + tmp[0] + ' ' + path + '/' + tmp[1]); |
||||
|
||||
#安装PHP扩展 |
||||
self.WriteLogs(json.dumps({'name':'安装必要的PHP扩展','total':0,'used':0,'pre':0,'speed':0})); |
||||
if pinfo['ext'] != '': |
||||
exts = pinfo['ext'].split(','); |
||||
import files |
||||
mfile = files.files(); |
||||
for ext in exts: |
||||
if ext == 'pathinfo': |
||||
import config |
||||
con = config.config(); |
||||
get.version = php_version; |
||||
get.type = 'on'; |
||||
con.setPathInfo(get); |
||||
else: |
||||
get.name = ext |
||||
get.version = php_version |
||||
get.type = '1'; |
||||
mfile.InstallSoft(get); |
||||
|
||||
|
||||
#执行额外shell进行依赖安装 |
||||
self.WriteLogs(json.dumps({'name':'执行额外SHELL','total':0,'used':0,'pre':0,'speed':0})); |
||||
if os.path.exists(path+'/install.sh'): |
||||
os.system('cd '+path+' && bash ' + 'install.sh'); |
||||
os.system('rm -f ' + path+'/install.sh') |
||||
|
||||
#是否执行Composer |
||||
if os.path.exists(path + '/composer.json'): |
||||
self.WriteLogs(json.dumps({'name':'执行Composer','total':0,'used':0,'pre':0,'speed':0})); |
||||
if not os.path.exists(path + '/composer.lock'): |
||||
execPHP = '/www/server/php/' + php_version +'/bin/php'; |
||||
if execPHP: |
||||
if public.get_url().find('125.88'): |
||||
os.system('cd ' +path+' && '+execPHP+' /usr/bin/composer config repo.packagist composer https://packagist.phpcomposer.com'); |
||||
import panelSite; |
||||
phpini = '/www/server/php/' + php_version + '/etc/php.ini' |
||||
phpiniConf = public.readFile(phpini); |
||||
phpiniConf = phpiniConf.replace('proc_open,proc_get_status,',''); |
||||
public.writeFile(phpini,phpiniConf); |
||||
os.system('nohup cd '+path+' && '+execPHP+' /usr/bin/composer install -vvv > /tmp/composer.log 2>&1 &'); |
||||
|
||||
#写伪静态 |
||||
self.WriteLogs(json.dumps({'name':'设置伪静态','total':0,'used':0,'pre':0,'speed':0})); |
||||
swfile = path + '/nginx.rewrite'; |
||||
if os.path.exists(swfile): |
||||
rewriteConf = public.readFile(swfile); |
||||
dwfile = self.__panelPath + '/vhost/rewrite/' + site_name + '.conf'; |
||||
public.writeFile(dwfile,rewriteConf); |
||||
|
||||
#设置运行目录 |
||||
self.WriteLogs(json.dumps({'name':'设置运行目录','total':0,'used':0,'pre':0,'speed':0})); |
||||
if pinfo['run'] != '/': |
||||
import panelSite; |
||||
siteObj = panelSite.panelSite(); |
||||
mobj = obj(); |
||||
mobj.id = find['id']; |
||||
mobj.runPath = pinfo['run']; |
||||
siteObj.SetSiteRunPath(mobj); |
||||
|
||||
#导入数据 |
||||
self.WriteLogs(json.dumps({'name':'导入数据库','total':0,'used':0,'pre':0,'speed':0})); |
||||
if os.path.exists(path+'/import.sql'): |
||||
databaseInfo = public.M('databases').where('pid=?',(find['id'],)).field('username,password').find(); |
||||
if databaseInfo: |
||||
os.system('/www/server/mysql/bin/mysql -u' + databaseInfo['username'] + ' -p' + databaseInfo['password'] + ' ' + databaseInfo['username'] + ' < ' + path + '/import.sql'); |
||||
os.system('rm -f ' + path + '/import.sql'); |
||||
siteConfigFile = path + '/' + pinfo['config']; |
||||
if os.path.exists(siteConfigFile): |
||||
siteConfig = public.readFile(siteConfigFile) |
||||
siteConfig = siteConfig.replace('BT_DB_USERNAME',databaseInfo['username']) |
||||
siteConfig = siteConfig.replace('BT_DB_PASSWORD',databaseInfo['password']) |
||||
siteConfig = siteConfig.replace('BT_DB_NAME',databaseInfo['username']) |
||||
public.writeFile(siteConfigFile,siteConfig) |
||||
|
||||
public.serviceReload(); |
||||
self.depTotal(name); |
||||
self.WriteLogs(json.dumps({'name':'准备部署','total':0,'used':0,'pre':0,'speed':0})); |
||||
return public.returnMsg(True,pinfo); |
||||
|
||||
#提交安装统计 |
||||
def depTotal(self,name): |
||||
try: |
||||
import urllib2 |
||||
urllib2.urlopen("https://www.bt.cn/Api/depTotal?name=" + name, timeout = 3) |
||||
return True |
||||
except: |
||||
return False; |
||||
|
||||
#获取进度 |
||||
def GetSpeed(self,get): |
||||
try: |
||||
if not os.path.exists(self.logPath): public.returnMsg(False,'当前没有部署任务!'); |
||||
return json.loads(public.readFile(self.logPath)); |
||||
except: |
||||
return {'name':'准备部署','total':0,'used':0,'pre':0,'speed':0} |
||||
|
||||
#获取包信息 |
||||
def GetPackageInfo(self,name): |
||||
data = self.GetDepList(None); |
||||
if not data: return False; |
||||
downUrl = public.get_url() + '/install/package'; |
||||
for info in data: |
||||
if info['name'] == name: |
||||
info['download'] = info['download'].replace('{Download}',downUrl); |
||||
return info; |
||||
return False; |
||||
|
||||
#检查指定包是否存在 |
||||
def CheckPackageExists(self,name): |
||||
data = self.GetDepList(None); |
||||
if not data: return False; |
||||
for info in data: |
||||
if info['name'] == name: return True; |
||||
|
||||
return False; |
||||
|
||||
#文件的MD5值 |
||||
def GetFileMd5(self,filename): |
||||
if not os.path.isfile(filename): return False; |
||||
import hashlib; |
||||
myhash = hashlib.md5() |
||||
f = file(filename,'rb') |
||||
while True: |
||||
b = f.read(8096) |
||||
if not b : |
||||
break |
||||
myhash.update(b) |
||||
f.close() |
||||
return myhash.hexdigest(); |
||||
|
||||
#获取站点标识 |
||||
def GetSiteId(self,get): |
||||
return public.M('sites').where('name=?',(get.webname,)).getField('id'); |
||||
|
Before Width: | Height: | Size: 553 B |
@ -1,415 +0,0 @@ |
||||
<style> |
||||
.disable { |
||||
background-color: #ededed; |
||||
} |
||||
.onekeyCode .table > tbody > tr > td{ |
||||
line-height:1.7; |
||||
} |
||||
.oneKeysearchBar{ |
||||
position: absolute; |
||||
top: 10px; |
||||
right:15px; |
||||
z-index: 20; |
||||
} |
||||
.success-msg .suc-con { |
||||
float: right; |
||||
width: 280px; |
||||
} |
||||
.bt-progress { |
||||
background-color: #e2e2e2; |
||||
border-radius: 8px; |
||||
height: 16px; |
||||
line-height: 16px; |
||||
position: relative; |
||||
margin:5px 0; |
||||
} |
||||
.bt-progress-bar { |
||||
background-color: #5ab76c; |
||||
border-radius: 8px; |
||||
height: 16px; |
||||
max-width: 100%; |
||||
position: absolute; |
||||
text-align: right; |
||||
transition: all 0.3s ease 0s; |
||||
width: 0; |
||||
} |
||||
.bt-progress-text { |
||||
font-size: 12px; |
||||
color: #fff; |
||||
padding: 0 10px; |
||||
position: static; |
||||
} |
||||
.onekey-menu-sub{ |
||||
background-color: #fff; |
||||
border-bottom: 1px solid #ccc; |
||||
height: 50px; |
||||
line-height: 50px; |
||||
} |
||||
.onekey-menu-sub span{ |
||||
height: 50px; |
||||
padding: 0 15px; |
||||
cursor: pointer; |
||||
display: inline-block; |
||||
font-size: 14px; |
||||
} |
||||
.onekey-menu-sub .on { |
||||
border-bottom: 2px solid #20a53a; |
||||
color: #20a53a; |
||||
font-weight: bold; |
||||
} |
||||
</style> |
||||
<div class="oneKeysearchBar"> |
||||
<input class="searchInput bt-input-text" type="text" placeholder="请输入检索条件" value="" style="width:140px" /> |
||||
<button class="btn btn-default btn-sm va0" onclick="GetSrcList();">查找</button> |
||||
</div> |
||||
<div class="onekey-menu-sub mlr15 onekey-type"></div> |
||||
<div class="divtable pd15 onekeyCode" style="max-height:500px; overflow:auto"> |
||||
<table class="table table-hover" width="100%"> |
||||
<thead> |
||||
<tr> |
||||
<th>名称</th> |
||||
<th>版本</th> |
||||
<th>简介</th> |
||||
<th>支持PHP版本</th> |
||||
<th style="text-align: right;" width="80">操作</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody id="zipBody"></tbody> |
||||
</table> |
||||
</div> |
||||
<script type="javascript/text"> |
||||
$('.layui-layer-page').css({'width':'760px'}); |
||||
var openId = add = null; |
||||
function AddDeployment(maction){ |
||||
if(maction == 1){ |
||||
var pdata = 'title=' + $("input[name='title']").val() |
||||
+'&dname=' + $("input[name='name']").val() |
||||
+'&ps=' + $("input[name='ps']").val() |
||||
+'&version=' + $("input[name='version']").val() |
||||
+'&rewrite=' + ($("input[name='rewrite']").attr('checked')?1:0) |
||||
+'&shell=' + ($("input[name='shell']").attr('checked')?1:0) |
||||
+'&php=' + $("input[name='php']").val() |
||||
+'&md5=' + $("input[name='md5']").val() |
||||
+'&download=' + $("input[name='download']").val() |
||||
var loadT = layer.msg('正在提交 <img src="/static/img/ing.gif">',{icon:16,time:0,shade: [0.3, '#000']}); |
||||
$.post('/plugin?action=a&name=deployment&s=AddPackage',pdata,function(rdata){ |
||||
layer.close(loadT); |
||||
layer.msg(rdata.msg,{icon:rdata.status?1:5}); |
||||
if(rdata.status) { |
||||
GetSrcList(); |
||||
layer.close(openId); |
||||
} |
||||
}); |
||||
|
||||
return; |
||||
} |
||||
openId = layer.open({ |
||||
type: 1, |
||||
skin: 'demo-class', |
||||
area: '480px', |
||||
title: '添加源码包', |
||||
closeBtn: 2, |
||||
shift: 5, |
||||
shadeClose: false, |
||||
content:'标题:<input type="text" name="title"><br>\ |
||||
标识:<input type="text" name="name"><br>\ |
||||
描述:<input type="text" name="ps"><br>\ |
||||
版本:<input type="text" name="version"><br>\ |
||||
是否写伪静态:<input type="checkbox" name="rewrite"><br>\ |
||||
是否执行安装脚本:<input type="checkbox" name="shell"><br>\ |
||||
支持的PHP版本:<input type="text" name="php"><br>\ |
||||
md5:<input type="text" name="md5">\ |
||||
下载地址:<input type="text" name="download"><br>\ |
||||
<button class="btn btn-default btn-sm" onclick="AddDeployment(1);">提交</button>' |
||||
}); |
||||
} |
||||
|
||||
|
||||
$(".searchInput").keyup(function(e){ |
||||
if(e.keyCode == 13){ |
||||
GetSrcList(); |
||||
} |
||||
}); |
||||
|
||||
function AddSite(codename){ |
||||
var array; |
||||
var str=""; |
||||
var domainlist=''; |
||||
var domain = array = $("#mainDomain").val().split("\n"); |
||||
var Webport=[]; |
||||
var checkDomain = domain[0].split('.'); |
||||
if(checkDomain.length < 1){ |
||||
layer.msg('域名格式不正确,请重新输入!',{icon:2}); |
||||
return; |
||||
} |
||||
for(var i=1; i<domain.length; i++){ |
||||
domainlist += '"'+domain[i]+'",'; |
||||
} |
||||
Webport = domain[0].split(":")[1];//主域名端口 |
||||
if(Webport==undefined){ |
||||
Webport="80"; |
||||
} |
||||
domainlist = domainlist.substring(0,domainlist.length-1);//子域名json |
||||
mainDomain = domain[0].split(':')[0]; |
||||
domain ='{"domain":"'+domain[0]+'","domainlist":['+domainlist+'],"count":'+domain.length+'}';//拼接joson |
||||
var php_version = $("select[name='version']").val(); |
||||
var loadT = layer.msg('正在创建站点 <img src="/static/img/ing.gif">',{icon:16,time:0,shade: [0.3, "#000"]}) |
||||
var data = $("#addweb").serialize()+"&port="+Webport+"&webname="+domain+'&ftp=false&sql=true&address=localhost&codeing=utf8&version='+php_version; |
||||
$.post('/site?action=AddSite', data, function(ret) { |
||||
layer.close(loadT) |
||||
if(!ret.siteStatus){ |
||||
layer.msg(ret.msg,{icon:5}); |
||||
return; |
||||
} |
||||
layer.close(add) |
||||
var sqlData = ''; |
||||
if (ret.databaseStatus) { |
||||
sqlData = "<p class='p1'>数据库账号资料</p>\ |
||||
<p><span>数据库名:</span><strong>" + ret.databaseUser + "</strong></p>\ |
||||
<p><span>用户:</span><strong>" + ret.databaseUser + "</strong></p>\ |
||||
<p><span>密码:</span><strong>" + ret.databasePass + "</strong></p>\ |
||||
" |
||||
} |
||||
var pdata = 'dname=' + codename + '&site_name=' + mainDomain + '&php_version='+php_version; |
||||
var loadT = layer.msg('<div class="depSpeed">正在提交 <img src="/static/img/ing.gif"></div>',{icon:16,time:0,shade: [0.3, "#000"]}); |
||||
|
||||
setTimeout(function(){ |
||||
GetSpeed(); |
||||
},2000); |
||||
|
||||
$.post('/plugin?action=a&name=deployment&s=SetupPackage',pdata,function(rdata){ |
||||
layer.close(loadT) |
||||
if(!rdata.status){ |
||||
layer.msg('源码下载失败!',{icon:5}); |
||||
return; |
||||
} |
||||
|
||||
if(rdata.msg.username != ''){ |
||||
sqlData = "<p class='p1'>已成功部署,无需安装,请登录修改默认账号密码</p>\ |
||||
<p><span>用户:</span><strong>" + rdata.msg.username + "</strong></p>\ |
||||
<p><span>密码:</span><strong>" + rdata.msg.password + "</strong></p>\ |
||||
" |
||||
} |
||||
sqlData += "<p><span>访问站点:</span><a class='btlink' href='http://" + mainDomain + rdata.msg.install + "' target='_blank'>http://" + mainDomain + rdata.msg.install + "</a></p>"; |
||||
|
||||
layer.open({ |
||||
type: 1, |
||||
area: '600px', |
||||
title: '已成功部署'+codename, |
||||
closeBtn:2, |
||||
shadeClose: false, |
||||
content: "<div class='success-msg'>\ |
||||
<div class='pic'><img src='/static/img/success-pic.png'></div>\ |
||||
<div class='suc-con'>\ |
||||
" + sqlData + "\ |
||||
</div>\ |
||||
</div>", |
||||
}); |
||||
if ($(".success-msg").height() < 150) { |
||||
$(".success-msg").find("img").css({ |
||||
"width": "150px", |
||||
"margin-top": "30px" |
||||
}); |
||||
} |
||||
}); |
||||
|
||||
|
||||
}); |
||||
|
||||
} |
||||
|
||||
function GetSpeed(){ |
||||
if(!$('.depSpeed')) return; |
||||
$.get('/plugin?action=a&name=deployment&s=GetSpeed',function(speed){ |
||||
if(speed.status === false) return; |
||||
if(speed.name == '下载文件'){ |
||||
speed = '<p>正在'+speed.name+' <img src="/static/img/ing.gif"></p>\ |
||||
<div class="bt-progress"><div class="bt-progress-bar" style="width:'+speed.pre+'%"><span class="bt-progress-text">'+speed.pre+'%</span></div></div>\ |
||||
<p class="f12 c9"><span class="pull-left">'+ToSize(speed.used)+'/'+ToSize(speed.total)+'</span><span class="pull-right">'+ToSize(speed.speed)+'/s</span></p>'; |
||||
$('.depSpeed').prev().hide(); |
||||
$('.depSpeed').css({"margin-left":"-37px","width":"380px"}); |
||||
$('.depSpeed').parents(".layui-layer").css({"margin-left":"-100px"}); |
||||
}else{ |
||||
speed = '<p>'+speed.name+'</p>'; |
||||
$('.depSpeed').prev().show(); |
||||
$('.depSpeed').removeAttr("style"); |
||||
$('.depSpeed').parents(".layui-layer").css({"margin-left":"0"}); |
||||
} |
||||
|
||||
$('.depSpeed').html(speed); |
||||
setTimeout(function(){ |
||||
GetSpeed(); |
||||
},1000); |
||||
}); |
||||
} |
||||
|
||||
function onekeyCodeSite(codename,versions){ |
||||
$.post('/site?action=GetPHPVersion',function(rdata){ |
||||
var php_version = ""; |
||||
var n = 0; |
||||
for(var i=rdata.length-1;i>=0;i--){ |
||||
if(versions.indexOf(rdata[i].version) != -1){ |
||||
php_version += "<option value='"+rdata[i].version+"'>"+rdata[i].name+"</option>"; |
||||
n++; |
||||
} |
||||
} |
||||
|
||||
if(n == 0){ |
||||
layer.msg('缺少被支持的PHP版本,请安装!',{icon:5}); |
||||
return; |
||||
} |
||||
var con='<form class="bt-form pd20 pb70" id="addweb">\ |
||||
<div class="line"><span class="tname">域名</span>\ |
||||
<div class="info-r c4"><textarea id="mainDomain" class="bt-input-text" name="webname" style="width:398px;height:100px;line-height:22px"></textarea>\ |
||||
<div class="placeholder c9" style="top:10px;left:10px">每行填写一个域名,默认为80端口<br>泛解析添加方法 *.domain.com<br>如另加端口格式为 www.domain.com:88</div>\ |
||||
</div>\ |
||||
</div>\ |
||||
<div class="line"><span class="tname">备注</span>\ |
||||
<div class="info-r c4"><input id="Wbeizhu" class="bt-input-text" name="ps" placeholder="网站备注" style="width:398px" type="text"> </div>\ |
||||
</div>\ |
||||
<div class="line"><span class="tname">根目录</span>\ |
||||
<div class="info-r c4"><input id="inputPath" class="bt-input-text mr5" name="path" value="/www/wwwroot/" placeholder="网站根目录" style="width:398px" type="text"><span class="glyphicon glyphicon-folder-open cursor" onclick="ChangePath(\'inputPath\')"></span> </div>\ |
||||
</div>\ |
||||
<div class="line"><span class="tname">数据库</span>\ |
||||
<div class="info-r c4">\ |
||||
<input id="datauser" class="bt-input-text" name="datauser" placeholder="用户名/数据库名" style="width:190px;margin-right:13px" type="text">\ |
||||
<input id="datapassword" class="bt-input-text" name="datapassword" placeholder="密码" style="width:190px" type="text">\ |
||||
</div>\ |
||||
</div>\ |
||||
<div class="line"><span class="tname">源码</span>\ |
||||
<input class="bt-input-text mr5 disable" name="code" style="width:100px" value="'+codename+'" disabled>\ |
||||
<span class="c9">准备为你部署的源码程序</span>\ |
||||
</div>\ |
||||
<div class="line"><span class="tname">PHP版本</span>\ |
||||
<select class="bt-input-text mr5" name="version" id="c_k3" style="width:100px">\ |
||||
'+php_version+'\ |
||||
</select>\ |
||||
<span class="c9">请选择源码程序支持的php版本</span>\ |
||||
</div>\ |
||||
<div class="bt-form-submit-btn">\ |
||||
<button type="button" class="btn btn-danger btn-sm onekeycodeclose">取消</button>\ |
||||
<button type="button" class="btn btn-success btn-sm" onclick="AddSite(\''+codename+'\')">提交</button>\ |
||||
</div>\ |
||||
</from>'; |
||||
add = layer.open({ |
||||
type: 1, |
||||
title: "宝塔一键部署"+codename, |
||||
area: '560px', |
||||
closeBtn: 2, |
||||
shadeClose: false, |
||||
content:con |
||||
}); |
||||
var placeholder = "<div class='placeholder c9' style='top:10px;left:10px'>每行填写一个域名,默认为80端口<br>泛解析添加方法 *.domain.com<br>如另加端口格式为 www.domain.com:88</div>"; |
||||
$(".onekeycodeclose").click(function(){ |
||||
layer.close(add); |
||||
}); |
||||
$('#mainDomain').after(placeholder); |
||||
$(".placeholder").click(function(){ |
||||
$(this).hide(); |
||||
$('#mainDomain').focus(); |
||||
}) |
||||
$('#mainDomain').focus(function() { |
||||
$(".placeholder").hide(); |
||||
}); |
||||
|
||||
$('#mainDomain').blur(function() { |
||||
if($(this).val().length==0){ |
||||
$(".placeholder").show(); |
||||
} |
||||
}); |
||||
//FTP账号数据绑定域名 |
||||
$('#mainDomain').on('input', function() { |
||||
var defaultPath = '/www/wwwroot'; |
||||
var array; |
||||
var res,ress; |
||||
var str = $(this).val(); |
||||
var len = str.replace(/[^\x00-\xff]/g, "**").length; |
||||
array = str.split("\n"); |
||||
ress =array[0].split(":")[0]; |
||||
res = ress.replace(new RegExp(/([-.])/g), '_'); |
||||
if(res.length > 15) res = res.substr(0,15); |
||||
if($("#inputPath").val().substr(0,defaultPath.length) == defaultPath) $("#inputPath").val(defaultPath+'/'+ress); |
||||
if(!isNaN(res.substr(0,1))) res = "sql"+res; |
||||
if(res.length > 15) res = res.substr(0,15); |
||||
$("#Wbeizhu").val(ress); |
||||
$("#datauser").val(res); |
||||
}) |
||||
$('#Wbeizhu').on('input', function() { |
||||
var str = $(this).val(); |
||||
var len = str.replace(/[^\x00-\xff]/g, "**").length; |
||||
if (len > 20) { |
||||
str = str.substring(0, 20); |
||||
$(this).val(str); |
||||
layer.msg('不要超出20个字符', { |
||||
icon: 0 |
||||
}); |
||||
} |
||||
}) |
||||
//获取当前时间时间戳,截取后6位 |
||||
var timestamp = new Date().getTime().toString(); |
||||
var dtpw = timestamp.substring(7); |
||||
$("#datauser").val("sql" + dtpw); |
||||
$("#datapassword").val(_getRandomString(10)); |
||||
}); |
||||
} |
||||
|
||||
//生成n位随机密码 |
||||
function _getRandomString(len) { |
||||
len = len || 32; |
||||
var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; // 默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1 |
||||
var maxPos = $chars.length; |
||||
var pwd = ''; |
||||
for (i = 0; i < len; i++) { |
||||
pwd += $chars.charAt(Math.floor(Math.random() * maxPos)); |
||||
} |
||||
return pwd; |
||||
} |
||||
function GetSrcList(){ |
||||
var loadT = layer.msg('正在获取列表 <img src="/static/img/ing.gif">',{icon:16,time:0,shade: [0.3, '#000']}); |
||||
var search = $(".searchInput").val(); |
||||
if(search != ''){ |
||||
search = '&search=' + search+'&'; |
||||
} |
||||
var type = ''; |
||||
var istype = getCookie('depType'); |
||||
if(istype == 'undefined' || istype == 'null' || !istype) { |
||||
istype = '0'; |
||||
} |
||||
type = '&type='+istype; |
||||
|
||||
$.get('/plugin?action=a&name=deployment&s=GetList' + search + type,function(mlist){ |
||||
layer.close(loadT); |
||||
|
||||
tbody = ''; |
||||
for(var i=0;i<mlist.type.length;i++){ |
||||
var c = ''; |
||||
if(istype == mlist.type[i].type){ |
||||
c = 'class="on"'; |
||||
} |
||||
tbody += '<span typeid="'+mlist.type[i].type+'" '+c+'>'+mlist.type[i].title+'</span>'; |
||||
} |
||||
|
||||
$(".onekey-type").html(tbody); |
||||
|
||||
var zbody = ''; |
||||
for(var i=mlist.data.length-1;i>=0;i--){ |
||||
zbody += '<tr>' |
||||
+'<td>'+mlist.data[i].title+'</td>' |
||||
+'<td>'+mlist.data[i].version+'</td>' |
||||
+'<td>'+mlist.data[i].ps+'</td>' |
||||
+'<td>'+mlist.data[i].php+'</td>' |
||||
+'<td class="text-right"><a href="javascript:onekeyCodeSite(\''+mlist.data[i].name+'\',\''+mlist.data[i].php+'\');" class="btlink">一键部署</a></td>' |
||||
+'</tr>' |
||||
} |
||||
$("#zipBody").html(zbody); |
||||
$(".searchInput").val(''); |
||||
|
||||
$(".onekey-menu-sub span").click(function(){ |
||||
setCookie('depType',$(this).attr('typeid')); |
||||
$(this).addClass("on").siblings().removeClass("on"); |
||||
GetSrcList(); |
||||
}); |
||||
}); |
||||
} |
||||
GetSrcList(); |
||||
</script> |
@ -1,16 +0,0 @@ |
||||
{ |
||||
"title":"宝塔一键部署源码", |
||||
"tip":"lib", |
||||
"name":"deployment", |
||||
"type":"扩展", |
||||
"ps":"快速部署常用程序!", |
||||
"versions":"1.1", |
||||
"shell":"deployment.sh", |
||||
"checks":"/www/server/panel/plugin/deployment", |
||||
"author":"宝塔", |
||||
"home":"http://www.bt.cn/bbs", |
||||
"date":"2017-07-26", |
||||
"default":false, |
||||
"display":1, |
||||
"pid":"2" |
||||
} |
@ -1,52 +0,0 @@ |
||||
#!/bin/bash |
||||
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin |
||||
export PATH |
||||
install_tmp='/tmp/bt_install.pl' |
||||
CN='125.88.182.172' |
||||
HK='download.bt.cn' |
||||
HK2='103.224.251.67' |
||||
US='174.139.221.74' |
||||
sleep 0.5; |
||||
CN_PING=`ping -c 1 -w 1 $CN|grep time=|awk '{print $7}'|sed "s/time=//"` |
||||
HK_PING=`ping -c 1 -w 1 $HK|grep time=|awk '{print $7}'|sed "s/time=//"` |
||||
HK2_PING=`ping -c 1 -w 1 $HK2|grep time=|awk '{print $7}'|sed "s/time=//"` |
||||
US_PING=`ping -c 1 -w 1 $US|grep time=|awk '{print $7}'|sed "s/time=//"` |
||||
|
||||
echo "$HK_PING $HK" > ping.pl |
||||
echo "$HK2_PING $HK2" >> ping.pl |
||||
echo "$US_PING $US" >> ping.pl |
||||
echo "$CN_PING $CN" >> ping.pl |
||||
nodeAddr=`sort -V ping.pl|sed -n '1p'|awk '{print $2}'` |
||||
if [ "$nodeAddr" == "" ];then |
||||
nodeAddr=$HK2 |
||||
fi |
||||
|
||||
download_Url=http://$nodeAddr:5880 |
||||
|
||||
Install_deployment() |
||||
{ |
||||
mkdir -p /www/server/panel/plugin/deployment |
||||
mkdir -p /www/server/panel/plugin/deployment/package |
||||
echo '正在安装脚本文件...' > $install_tmp |
||||
wget -O /www/server/panel/plugin/deployment/deployment_main.py $download_Url/install/lib/plugin/deployment/deployment_main.py -T 5 |
||||
wget -O /www/server/panel/plugin/deployment/index.html $download_Url/install/lib/plugin/deployment/index.html -T 5 |
||||
wget -O /www/server/panel/plugin/deployment/info.json $download_Url/install/lib/plugin/deployment/info.json -T 5 |
||||
wget -O /www/server/panel/plugin/deployment/list.json $download_Url/install/lib/plugin/deployment/list.json -T 5 |
||||
wget -O /www/server/panel/plugin/deployment/type.json $download_Url/install/lib/plugin/deployment/type.json -T 5 |
||||
wget -O /www/server/panel/plugin/deployment/icon.png $download_Url/install/lib/plugin/deployment/icon.png -T 5 |
||||
wget -O /www/server/panel/static/img/soft_ico/ico-deployment.png $download_Url/install/lib/plugin/deployment/icon.png -T 5 |
||||
echo '安装完成' > $install_tmp |
||||
} |
||||
|
||||
Uninstall_deployment() |
||||
{ |
||||
rm -rf /www/server/panel/plugin/deployment |
||||
} |
||||
|
||||
|
||||
action=$1 |
||||
if [ "${1}" == 'install' ];then |
||||
Install_deployment |
||||
else |
||||
Uninstall_deployment |
||||
fi |
@ -1,495 +0,0 @@ |
||||
[ |
||||
{ |
||||
"name":"niucms", |
||||
"title":"NIUCMS", |
||||
"type":1, |
||||
"version":"3.6", |
||||
"md5":"f5ea5a231a7d25d66ee324d60dcdd4f1", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"/install/index.php", |
||||
"php":"53,54,55,56", |
||||
"ps":"智慧城市生活系统(商业软件)", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/niucms.zip" |
||||
}, |
||||
{ |
||||
"name":"tpt-blog", |
||||
"title":"Tpt-Blog", |
||||
"type":4, |
||||
"version":"1.1", |
||||
"md5":"aa195fece581582182e17143f53b2dfc", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"/admin.php", |
||||
"php":"53,54,55,56,70,71,72", |
||||
"ps":"免费开源的博客程序", |
||||
"config":"/Application/Common/Conf/db.php", |
||||
"username":"admin", |
||||
"password":"admin<br>口令:123456", |
||||
"run":"/", |
||||
"download":"{Download}/tpt-blog_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"phpcms", |
||||
"title":"PHPCMS", |
||||
"type":1, |
||||
"version":"9.6.3", |
||||
"md5":"4de608ae7b74175dd4513911ef7ebf78", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"/install", |
||||
"php":"52,53,54,55,56,70", |
||||
"ps":"PHPCMS内容管理系统", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/phpcms.zip" |
||||
}, |
||||
{ |
||||
"name":"ecshop_2.7", |
||||
"title":"EcShop-2.7", |
||||
"type":2, |
||||
"version":"2.7.3", |
||||
"md5":"9115294f5a458249a5f2c793eab3639c", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/install", |
||||
"php":"52,53", |
||||
"ps":"B2C独立网店系统", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/ecshop_2.7.zip" |
||||
}, |
||||
{ |
||||
"name":"ecshop_3.6", |
||||
"title":"EcShop-3.6", |
||||
"type":2, |
||||
"version":"3.6.0", |
||||
"md5":"38fdc7fe8faf67edd91ebfbb8291cbc7", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/install", |
||||
"php":"53,54,55,56", |
||||
"ps":"B2C独立网店系统", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/ecshop", |
||||
"download":"{Download}/ecshop_3.6.zip" |
||||
}, |
||||
{ |
||||
"name":"emlog", |
||||
"title":"Emlog", |
||||
"type":4, |
||||
"version":"5.3.1", |
||||
"md5":"cecaa55d8d9644e8d8b7098c836af1ad", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"53,54,55,56", |
||||
"ps":"博客程序", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/emlog.zip" |
||||
}, |
||||
{ |
||||
"name":"empirecms", |
||||
"title":"帝国CMS", |
||||
"type":1, |
||||
"version":"7.2", |
||||
"md5":"07bb4ffe56c939170ff080744fc13dd8", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/e/install", |
||||
"php":"52,53,54,55,56", |
||||
"ps":"帝国内容管理系统", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/empirecms.zip" |
||||
}, |
||||
{ |
||||
"name":"jieqiarticle170", |
||||
"title":"杰奇1.7", |
||||
"type":1, |
||||
"version":"1.7", |
||||
"md5":"e5168ea7b27f5c6de2a01dbf40f772b7", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/install", |
||||
"php":"52", |
||||
"ps":"小说连载程序", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/jieqiarticle170.zip" |
||||
}, |
||||
{ |
||||
"name":"codeigniter", |
||||
"title":"CI框架", |
||||
"type":6, |
||||
"version":"3.1.5", |
||||
"md5":"47a615ef55910a908aff367dc5f59a70", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"53,54,55,56,70,71,72", |
||||
"ps":"知名PHP框架", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/public", |
||||
"download":"{Download}/codeIgniter.zip" |
||||
}, |
||||
{ |
||||
"name":"laravel", |
||||
"title":"Laravel", |
||||
"type":6, |
||||
"version":"5.4", |
||||
"md5":"988566e8982e835ffa6f7d9ad14b5330", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"56,70,71,72", |
||||
"ps":"优雅的PHP开发框架", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/public", |
||||
"download":"{Download}/laravel.zip" |
||||
}, |
||||
{ |
||||
"name":"thinkphp_3.2", |
||||
"title":"ThinkPHP-3.2", |
||||
"type":6, |
||||
"version":"3.2.3", |
||||
"md5":"6cd0e16bf478e7df2fc62b6819eebcce", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"53,54,55,56", |
||||
"ps":"国内知名PHP框架", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/thinkphp-3.2.zip" |
||||
}, |
||||
{ |
||||
"name":"thinkphp_5.0", |
||||
"title":"ThinkPHP-5.0", |
||||
"type":6, |
||||
"version":"5.0.15", |
||||
"md5":"830fd878a802237a968ba36fceb1ae92", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"54,55,56,70,71,72", |
||||
"ps":"国内知名PHP框架", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/public", |
||||
"download":"{Download}/thinkphp-5.0.zip" |
||||
}, |
||||
{ |
||||
"name":"dedecms", |
||||
"title":"织梦CMS", |
||||
"type":1, |
||||
"version":"v5.7SP2", |
||||
"md5":"6f64be35597dbd2c51b1954f74cfb3ad", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/install", |
||||
"php":"52,53,54,55,56,70,71,72", |
||||
"ps":"国内知名内容管理系统", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/dedecms.zip" |
||||
}, |
||||
{ |
||||
"name":"discuz_x3.4", |
||||
"title":"Discuz 3.4", |
||||
"type":3, |
||||
"version":"x3.4", |
||||
"md5":"44c4250ebdf5fa796712f336fbd2ef42", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"/install", |
||||
"php":"52,53,54,55,56,70,71,72", |
||||
"ps":"国内知名论坛程序", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/discuz_x3.4.zip" |
||||
}, |
||||
{ |
||||
"name":"discuz", |
||||
"title":"Discuz", |
||||
"type":3, |
||||
"version":"x3.3", |
||||
"md5":"b31e43927daa00c7c3d92818298943fa", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"/install", |
||||
"php":"52,53,54,55,56,70,71,72", |
||||
"ps":"国内知名论坛程序", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/discuz.zip" |
||||
}, |
||||
{ |
||||
"name":"typecho", |
||||
"title":"Typecho", |
||||
"type":4, |
||||
"version":"1.1", |
||||
"md5":"8b638551974e98994401cda253a3f836", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"54,55,56,70,71,72", |
||||
"ps":"轻量级博客程序", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/typecho.zip" |
||||
}, |
||||
{ |
||||
"name":"wordpress", |
||||
"title":"Wordpress", |
||||
"type":4, |
||||
"version":"4.9.2", |
||||
"md5":"6d7285257c7df3791255d8c4975804b5", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"52,53,54,55,56,70,71,72", |
||||
"ps":"最多人用的博客程序", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/wordpress.zip" |
||||
}, |
||||
{ |
||||
"name":"metInfo", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=metInfo' class='btlink' target='_blank'>MetInfo</a>", |
||||
"type":1, |
||||
"version":"6.0.0", |
||||
"md5":"fff363bc0cbb13a5c2dc8c2a652da825", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"52,53,54,55,56,70", |
||||
"ps":"企业建站系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/metInfo.zip" |
||||
}, |
||||
{ |
||||
"name":"chanzhi", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=chanzhi' class='btlink' target='_blank'>蝉知CMS</a>", |
||||
"type":1, |
||||
"version":"6.5", |
||||
"md5":"793af27f2984127c34490229124644b8", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"/admin.php", |
||||
"php":"53,54,55,56,70,71", |
||||
"ps":"开源免费的企业门户系统,CMS系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"/system/config/my.php", |
||||
"username":"admin", |
||||
"password":"admin", |
||||
"run":"/www", |
||||
"download":"{Download}/chanzhi_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"cscms", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=cscms' class='btlink' target='_blank'>CSCMS</a>", |
||||
"type":1, |
||||
"version":"4.1", |
||||
"md5":"12b66ea05ad3b829be916fe541c1dedc", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/install.php", |
||||
"php":"53,54,55,56", |
||||
"ps":"多元化内容管理系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/cscms.zip" |
||||
}, |
||||
{ |
||||
"name":"kodexplorer", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=kodexplorer' class='btlink' target='_blank'>可道云KodExplorer</a>", |
||||
"type":1, |
||||
"version":"4.06", |
||||
"md5":"2907559eac6714394eb9f5a44e005eea", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/index.php", |
||||
"php":"52,53,54,55,56,70,71,72", |
||||
"ps":"强大易用的私有云/在线文档管理<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/kodexplorer.zip" |
||||
}, |
||||
{ |
||||
"name":"tipask", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=tipask' class='btlink' target='_blank'>Tipask</a>", |
||||
"type":1, |
||||
"version":"3.2", |
||||
"md5":"ae99702f944bf1c60b14065d00a3d676", |
||||
"ext":"fileinfo,opcache,pathinfo", |
||||
"chmod":"775|storage/app/,775|storage/framework/,775|storage/logs/,775|bootstrap/cache/,664|.env", |
||||
"install":"", |
||||
"php":"55,56,70,71,72", |
||||
"ps":"国内知名问答程序<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":".env", |
||||
"username":"admin@tipask.com", |
||||
"password":"tipask", |
||||
"run":"/public", |
||||
"download":"{Download}/tipask_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"maccms", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=maccms' class='btlink' target='_blank'>苹果CMS</a>", |
||||
"type":1, |
||||
"version":"8.0", |
||||
"md5":"a9801d94d1c592b5bb6d2474e5c0c37e", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"52,53,54,55,56,70,71,72", |
||||
"ps":"PHP开源建站系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/maccms.zip" |
||||
}, |
||||
{ |
||||
"name":"seacms", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=seacms' class='btlink' target='_blank'>海洋CMS</a>", |
||||
"type":1, |
||||
"version":"6.54", |
||||
"md5":"ca43469682b8e5e7cdceba020bf39375", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/admin", |
||||
"php":"52,53,54,55,56.70", |
||||
"ps":"完全开源免费的PHP视频管理系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"data/common.inc.php", |
||||
"username":"admin", |
||||
"password":"admin", |
||||
"run":"/", |
||||
"download":"{Download}/seacms_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"cxxcms", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=cxxcms' class='btlink' target='_blank'>程序侠CMS</a>", |
||||
"type":1, |
||||
"version":"1.1.2", |
||||
"md5":"8ad9c0671e41eeed34f046bf2abc3f22", |
||||
"ext":"pathinfo", |
||||
"chmod":"777|runtime,777|data,777|application/extra,777|application/database.php", |
||||
"install":"/admin", |
||||
"php":"54,55,56,70,71,72", |
||||
"ps":"专业、安全的淘宝客CMS系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"application/database.php", |
||||
"username":"admin", |
||||
"password":"chengxuxia.com", |
||||
"run":"/", |
||||
"download":"{Download}/cxxcms_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"z-blog", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=z-blog' class='btlink' target='_blank'>Z-Blog</a>", |
||||
"type":4, |
||||
"version":"1.5.2", |
||||
"md5":"07faf7fbeecfe9cad10872fe03ab3127", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"52,53,54,55,56,70,71,72", |
||||
"ps":"国内知名博客程序<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"zb_users/c_option.php", |
||||
"username":"admin", |
||||
"password":"zblogger", |
||||
"run":"/", |
||||
"download":"{Download}/z-blog_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"dbshop", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=dbshop' class='btlink' target='_blank'>DBShop</a>", |
||||
"type":2, |
||||
"version":"v1.2", |
||||
"md5":"f3c5559fa8eb04bdc9938382658f3a03", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"/admin", |
||||
"php":"53,54,55,56,70,71,72", |
||||
"ps":"专业且良心的商城系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"data/Database.ini.php", |
||||
"username":"admin", |
||||
"password":"1234567", |
||||
"run":"/", |
||||
"download":"{Download}/dbshop_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"niushop", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=niushop' class='btlink' target='_blank'>NiuShop</a>", |
||||
"type":2, |
||||
"version":"1.1.9", |
||||
"md5":"637c6ad54fa4732df35857304e5eeb82", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"54,55,56,70", |
||||
"ps":"优秀的TP5.0开源商城系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"application/database.php", |
||||
"username":"admin", |
||||
"password":"123456", |
||||
"run":"/", |
||||
"download":"{Download}/niushop_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"weengine", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=weengine' class='btlink' target='_blank'>微擎</a>", |
||||
"type":5, |
||||
"version":"1.0", |
||||
"md5":"8424881fe0e60042df5064ca4638f56c", |
||||
"ext":"fileinfo,pathinfo,ioncube", |
||||
"chmod":"755|addons,755|api,755|app,755|data,755|attachment,755|framework,755|payment,755|web", |
||||
"install":"/index.php", |
||||
"php":"53,54,55,56,70,71,72", |
||||
"ps":"微信第三方管理引擎<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"data/config.php", |
||||
"username":"admin", |
||||
"password":"we7.cc", |
||||
"run":"/", |
||||
"download":"{Download}/weengine_auto.zip" |
||||
} |
||||
] |
@ -1,495 +0,0 @@ |
||||
[ |
||||
{ |
||||
"name":"niucms", |
||||
"title":"NIUCMS", |
||||
"type":1, |
||||
"version":"3.6", |
||||
"md5":"f5ea5a231a7d25d66ee324d60dcdd4f1", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"/install/index.php", |
||||
"php":"53,54,55,56", |
||||
"ps":"智慧城市生活系统(商业软件)", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/niucms.zip" |
||||
}, |
||||
{ |
||||
"name":"tpt-blog", |
||||
"title":"Tpt-Blog", |
||||
"type":4, |
||||
"version":"1.1", |
||||
"md5":"aa195fece581582182e17143f53b2dfc", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"/admin.php", |
||||
"php":"53,54,55,56,70,71,72", |
||||
"ps":"免费开源的博客程序", |
||||
"config":"/Application/Common/Conf/db.php", |
||||
"username":"admin", |
||||
"password":"admin<br>口令:123456", |
||||
"run":"/", |
||||
"download":"{Download}/tpt-blog_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"phpcms", |
||||
"title":"PHPCMS", |
||||
"type":1, |
||||
"version":"9.6.3", |
||||
"md5":"4de608ae7b74175dd4513911ef7ebf78", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"/install", |
||||
"php":"52,53,54,55,56,70", |
||||
"ps":"PHPCMS内容管理系统", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/phpcms.zip" |
||||
}, |
||||
{ |
||||
"name":"ecshop_2.7", |
||||
"title":"EcShop-2.7", |
||||
"type":2, |
||||
"version":"2.7.3", |
||||
"md5":"9115294f5a458249a5f2c793eab3639c", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/install", |
||||
"php":"52,53", |
||||
"ps":"B2C独立网店系统", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/ecshop_2.7.zip" |
||||
}, |
||||
{ |
||||
"name":"ecshop_3.6", |
||||
"title":"EcShop-3.6", |
||||
"type":2, |
||||
"version":"3.6.0", |
||||
"md5":"38fdc7fe8faf67edd91ebfbb8291cbc7", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/install", |
||||
"php":"53,54,55,56", |
||||
"ps":"B2C独立网店系统", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/ecshop", |
||||
"download":"{Download}/ecshop_3.6.zip" |
||||
}, |
||||
{ |
||||
"name":"emlog", |
||||
"title":"Emlog", |
||||
"type":4, |
||||
"version":"5.3.1", |
||||
"md5":"cecaa55d8d9644e8d8b7098c836af1ad", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"53,54,55,56", |
||||
"ps":"博客程序", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/emlog.zip" |
||||
}, |
||||
{ |
||||
"name":"empirecms", |
||||
"title":"帝国CMS", |
||||
"type":1, |
||||
"version":"7.2", |
||||
"md5":"07bb4ffe56c939170ff080744fc13dd8", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/e/install", |
||||
"php":"52,53,54,55,56", |
||||
"ps":"帝国内容管理系统", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/empirecms.zip" |
||||
}, |
||||
{ |
||||
"name":"jieqiarticle170", |
||||
"title":"杰奇1.7", |
||||
"type":1, |
||||
"version":"1.7", |
||||
"md5":"e5168ea7b27f5c6de2a01dbf40f772b7", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/install", |
||||
"php":"52", |
||||
"ps":"小说连载程序", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/jieqiarticle170.zip" |
||||
}, |
||||
{ |
||||
"name":"codeigniter", |
||||
"title":"CI框架", |
||||
"type":6, |
||||
"version":"3.1.5", |
||||
"md5":"47a615ef55910a908aff367dc5f59a70", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"53,54,55,56,70,71,72", |
||||
"ps":"知名PHP框架", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/public", |
||||
"download":"{Download}/codeIgniter.zip" |
||||
}, |
||||
{ |
||||
"name":"laravel", |
||||
"title":"Laravel", |
||||
"type":6, |
||||
"version":"5.4", |
||||
"md5":"988566e8982e835ffa6f7d9ad14b5330", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"56,70,71,72", |
||||
"ps":"优雅的PHP开发框架", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/public", |
||||
"download":"{Download}/laravel.zip" |
||||
}, |
||||
{ |
||||
"name":"thinkphp_3.2", |
||||
"title":"ThinkPHP-3.2", |
||||
"type":6, |
||||
"version":"3.2.3", |
||||
"md5":"6cd0e16bf478e7df2fc62b6819eebcce", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"53,54,55,56", |
||||
"ps":"国内知名PHP框架", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/thinkphp-3.2.zip" |
||||
}, |
||||
{ |
||||
"name":"thinkphp_5.0", |
||||
"title":"ThinkPHP-5.0", |
||||
"type":6, |
||||
"version":"5.0.15", |
||||
"md5":"830fd878a802237a968ba36fceb1ae92", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"54,55,56,70,71,72", |
||||
"ps":"国内知名PHP框架", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/public", |
||||
"download":"{Download}/thinkphp-5.0.zip" |
||||
}, |
||||
{ |
||||
"name":"dedecms", |
||||
"title":"织梦CMS", |
||||
"type":1, |
||||
"version":"v5.7SP2", |
||||
"md5":"6f64be35597dbd2c51b1954f74cfb3ad", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/install", |
||||
"php":"52,53,54,55,56,70,71,72", |
||||
"ps":"国内知名内容管理系统", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/dedecms.zip" |
||||
}, |
||||
{ |
||||
"name":"discuz_x3.4", |
||||
"title":"Discuz 3.4", |
||||
"type":3, |
||||
"version":"x3.4", |
||||
"md5":"44c4250ebdf5fa796712f336fbd2ef42", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"/install", |
||||
"php":"52,53,54,55,56,70,71,72", |
||||
"ps":"国内知名论坛程序", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/discuz_x3.4.zip" |
||||
}, |
||||
{ |
||||
"name":"discuz", |
||||
"title":"Discuz", |
||||
"type":3, |
||||
"version":"x3.3", |
||||
"md5":"b31e43927daa00c7c3d92818298943fa", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"/install", |
||||
"php":"52,53,54,55,56,70,71,72", |
||||
"ps":"国内知名论坛程序", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/discuz.zip" |
||||
}, |
||||
{ |
||||
"name":"typecho", |
||||
"title":"Typecho", |
||||
"type":4, |
||||
"version":"1.1", |
||||
"md5":"8b638551974e98994401cda253a3f836", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"54,55,56,70,71,72", |
||||
"ps":"轻量级博客程序", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/typecho.zip" |
||||
}, |
||||
{ |
||||
"name":"wordpress", |
||||
"title":"Wordpress", |
||||
"type":4, |
||||
"version":"4.9.2", |
||||
"md5":"6d7285257c7df3791255d8c4975804b5", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"52,53,54,55,56,70,71,72", |
||||
"ps":"最多人用的博客程序", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/wordpress.zip" |
||||
}, |
||||
{ |
||||
"name":"metInfo", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=metInfo' class='btlink' target='_blank'>MetInfo</a>", |
||||
"type":1, |
||||
"version":"6.0.0", |
||||
"md5":"fff363bc0cbb13a5c2dc8c2a652da825", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"52,53,54,55,56,70", |
||||
"ps":"企业建站系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/metInfo.zip" |
||||
}, |
||||
{ |
||||
"name":"chanzhi", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=chanzhi' class='btlink' target='_blank'>蝉知CMS</a>", |
||||
"type":1, |
||||
"version":"6.5", |
||||
"md5":"793af27f2984127c34490229124644b8", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"/admin.php", |
||||
"php":"53,54,55,56,70,71", |
||||
"ps":"开源免费的企业门户系统,CMS系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"/system/config/my.php", |
||||
"username":"admin", |
||||
"password":"admin", |
||||
"run":"/www", |
||||
"download":"{Download}/chanzhi_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"cscms", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=cscms' class='btlink' target='_blank'>CSCMS</a>", |
||||
"type":1, |
||||
"version":"4.1", |
||||
"md5":"12b66ea05ad3b829be916fe541c1dedc", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/install.php", |
||||
"php":"53,54,55,56", |
||||
"ps":"多元化内容管理系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/cscms.zip" |
||||
}, |
||||
{ |
||||
"name":"kodexplorer", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=kodexplorer' class='btlink' target='_blank'>可道云KodExplorer</a>", |
||||
"type":1, |
||||
"version":"4.06", |
||||
"md5":"2907559eac6714394eb9f5a44e005eea", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/index.php", |
||||
"php":"52,53,54,55,56,70,71,72", |
||||
"ps":"强大易用的私有云/在线文档管理<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/kodexplorer.zip" |
||||
}, |
||||
{ |
||||
"name":"tipask", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=tipask' class='btlink' target='_blank'>Tipask</a>", |
||||
"type":1, |
||||
"version":"3.2", |
||||
"md5":"ae99702f944bf1c60b14065d00a3d676", |
||||
"ext":"fileinfo,opcache,pathinfo", |
||||
"chmod":"775|storage/app/,775|storage/framework/,775|storage/logs/,775|bootstrap/cache/,664|.env", |
||||
"install":"", |
||||
"php":"55,56,70,71,72", |
||||
"ps":"国内知名问答程序<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":".env", |
||||
"username":"admin@tipask.com", |
||||
"password":"tipask", |
||||
"run":"/public", |
||||
"download":"{Download}/tipask_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"maccms", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=maccms' class='btlink' target='_blank'>苹果CMS</a>", |
||||
"type":1, |
||||
"version":"8.0", |
||||
"md5":"a9801d94d1c592b5bb6d2474e5c0c37e", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"52,53,54,55,56,70,71,72", |
||||
"ps":"PHP开源建站系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"", |
||||
"username":"", |
||||
"password":"", |
||||
"run":"/", |
||||
"download":"{Download}/maccms.zip" |
||||
}, |
||||
{ |
||||
"name":"seacms", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=seacms' class='btlink' target='_blank'>海洋CMS</a>", |
||||
"type":1, |
||||
"version":"6.54", |
||||
"md5":"ca43469682b8e5e7cdceba020bf39375", |
||||
"ext":"", |
||||
"chmod":"", |
||||
"install":"/admin", |
||||
"php":"52,53,54,55,56.70", |
||||
"ps":"完全开源免费的PHP视频管理系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"data/common.inc.php", |
||||
"username":"admin", |
||||
"password":"admin", |
||||
"run":"/", |
||||
"download":"{Download}/seacms_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"cxxcms", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=cxxcms' class='btlink' target='_blank'>程序侠CMS</a>", |
||||
"type":1, |
||||
"version":"1.1.2", |
||||
"md5":"8ad9c0671e41eeed34f046bf2abc3f22", |
||||
"ext":"pathinfo", |
||||
"chmod":"777|runtime,777|data,777|application/extra,777|application/database.php", |
||||
"install":"/admin", |
||||
"php":"54,55,56,70,71,72", |
||||
"ps":"专业、安全的淘宝客CMS系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"application/database.php", |
||||
"username":"admin", |
||||
"password":"chengxuxia.com", |
||||
"run":"/", |
||||
"download":"{Download}/cxxcms_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"z-blog", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=z-blog' class='btlink' target='_blank'>Z-Blog</a>", |
||||
"type":4, |
||||
"version":"1.5.2", |
||||
"md5":"07faf7fbeecfe9cad10872fe03ab3127", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"52,53,54,55,56,70,71,72", |
||||
"ps":"国内知名博客程序<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"zb_users/c_option.php", |
||||
"username":"admin", |
||||
"password":"zblogger", |
||||
"run":"/", |
||||
"download":"{Download}/z-blog_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"dbshop", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=dbshop' class='btlink' target='_blank'>DBShop</a>", |
||||
"type":2, |
||||
"version":"v1.2", |
||||
"md5":"f3c5559fa8eb04bdc9938382658f3a03", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"/admin", |
||||
"php":"53,54,55,56,70,71,72", |
||||
"ps":"专业且良心的商城系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"data/Database.ini.php", |
||||
"username":"admin", |
||||
"password":"1234567", |
||||
"run":"/", |
||||
"download":"{Download}/dbshop_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"niushop", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=niushop' class='btlink' target='_blank'>NiuShop</a>", |
||||
"type":2, |
||||
"version":"1.1.9", |
||||
"md5":"637c6ad54fa4732df35857304e5eeb82", |
||||
"ext":"pathinfo", |
||||
"chmod":"", |
||||
"install":"", |
||||
"php":"54,55,56,70", |
||||
"ps":"优秀的TP5.0开源商城系统<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"application/database.php", |
||||
"username":"admin", |
||||
"password":"123456", |
||||
"run":"/", |
||||
"download":"{Download}/niushop_auto.zip" |
||||
}, |
||||
{ |
||||
"name":"weengine", |
||||
"title":"<a href='https://www.bt.cn/redirect?name=weengine' class='btlink' target='_blank'>微擎</a>", |
||||
"type":5, |
||||
"version":"1.0", |
||||
"md5":"8424881fe0e60042df5064ca4638f56c", |
||||
"ext":"fileinfo,pathinfo,ioncube", |
||||
"chmod":"755|addons,755|api,755|app,755|data,755|attachment,755|framework,755|payment,755|web", |
||||
"install":"/index.php", |
||||
"php":"53,54,55,56,70,71,72", |
||||
"ps":"微信第三方管理引擎<font style='color: #fff;padding: 1px 4px;position: relative;margin-left: 6px;border-radius: 3px;background-color: #fc6d26;'>推荐</font>", |
||||
"config":"data/config.php", |
||||
"username":"admin", |
||||
"password":"we7.cc", |
||||
"run":"/", |
||||
"download":"{Download}/weengine_auto.zip" |
||||
} |
||||
] |
@ -1,37 +0,0 @@ |
||||
[ |
||||
{ |
||||
"title":"推荐", |
||||
"type":0, |
||||
"ps":"" |
||||
}, |
||||
{ |
||||
"title":"建站", |
||||
"type":1, |
||||
"ps":"" |
||||
}, |
||||
{ |
||||
"title":"商城", |
||||
"type":2, |
||||
"ps":"" |
||||
}, |
||||
{ |
||||
"title":"论坛", |
||||
"type":3, |
||||
"ps":"" |
||||
}, |
||||
{ |
||||
"title":"博客", |
||||
"type":4, |
||||
"ps":"" |
||||
}, |
||||
{ |
||||
"title":"微信", |
||||
"type":5, |
||||
"ps":"" |
||||
}, |
||||
{ |
||||
"title":"框架", |
||||
"type":6, |
||||
"ps":"" |
||||
} |
||||
] |
Before Width: | Height: | Size: 1.4 KiB |
@ -1,16 +0,0 @@ |
||||
{ |
||||
"title":"PHP守护", |
||||
"tip":"lib", |
||||
"name":"phpguard", |
||||
"type":"扩展", |
||||
"ps":"监控PHP-FPM运行状态,防止大批量出现502错误!", |
||||
"versions":"1.2", |
||||
"shell":"phpguard.sh", |
||||
"checks":"/www/server/panel/plugin/phpguard", |
||||
"author":"宝塔", |
||||
"home":"http://www.bt.cn/bbs", |
||||
"date":"2017-10-16", |
||||
"default":false, |
||||
"display":0, |
||||
"pid":"4" |
||||
} |
@ -1,26 +0,0 @@ |
||||
#!/bin/bash |
||||
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin |
||||
export PATH |
||||
install_tmp='/tmp/bt_install.pl' |
||||
download_Url=http://download.bt.cn |
||||
|
||||
Install_phpguard() |
||||
{ |
||||
mkdir -p /www/server/panel/plugin/phpguard |
||||
wget -O /www/server/panel/plugin/phpguard/info.json $download_Url/install/lib/plugin/phpguard/info.json -T 5 |
||||
echo 'True' > /www/server/panel/data/502Task.pl |
||||
} |
||||
|
||||
Uninstall_phpguard() |
||||
{ |
||||
rm -rf /www/server/panel/plugin/phpguard |
||||
rm -f /www/server/panel/data/502Task.pl |
||||
} |
||||
|
||||
|
||||
action=$1 |
||||
if [ "${1}" == 'install' ];then |
||||
Install_phpguard |
||||
else |
||||
Uninstall_phpguard |
||||
fi |
Loading…
Reference in new issue