pull/109/head
midoks 6 years ago
parent 1db0601bda
commit 07a010649a
  1. 91
      class/core/site_api.py
  2. 6
      class/core/system_api.py
  3. 8
      data/tpl/nginx.conf
  4. 52
      data/tpl/nginx_dirbind.conf

@ -575,6 +575,97 @@ class site_api:
port = request.form.get('port', '').encode('utf-8') port = request.form.get('port', '').encode('utf-8')
return self.add(webname, port, ps, path, version) return self.add(webname, port, ps, path, version)
def addDirBindApi(self):
pid = request.form.get('id', '').encode('utf-8')
domain = request.form.get('domain', '').encode('utf-8')
dirName = request.form.get('dirName', '').encode('utf-8')
tmp = domain.split(':')
domain = tmp[0]
port = '80'
if len(tmp) > 1:
port = tmp[1]
if dirName == '':
public.returnJson(False, '目录不能为空!')
reg = "^([\w\-\*]{1,100}\.){1,4}(\w{1,10}|\w{1,10}\.\w{1,10})$"
if not re.match(reg, domain):
return public.returnJson(False, '主域名格式不正确!')
siteInfo = public.M('sites').where(
"id=?", (pid,)).field('id,path,name').find()
webdir = siteInfo['path'] + '/' + dirName
sql = public.M('binding')
if sql.where("domain=?", (domain,)).count() > 0:
return public.returnJson(False, '您添加的域名已存在!')
if public.M('domain').where("name=?", (domain,)).count() > 0:
return public.returnJson(False, '您添加的域名已存在!')
filename = self.getHostConf(siteInfo['name'])
if conf:
rep = "enable-php-([0-9]{2,3})\.conf"
tmp = re.search(rep, conf).groups()
version = tmp[0]
bindingConf = '''
#BINDING-%s-START
server
{
listen %s;
server_name %s;
index index.php index.html index.htm default.php default.htm default.html;
root %s;
include enable-php-%s.conf;
include %s/panel/vhost/rewrite/%s.conf;
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log off;
access_log /dev/null;
}
location ~ .*\\.(js|css)?$
{
expires 12h;
error_log off;
access_log /dev/null;
}
access_log %s.log;
error_log %s.error.log;
}
#BINDING-%s-END''' % (domain, port, domain, webdir, version, self.setupPath, siteInfo['name'], public.GetConfigValue('logs_path') + '/' + siteInfo['name'], public.GetConfigValue('logs_path') + '/' + siteInfo['name'], domain)
conf += bindingConf
shutil.copyfile(filename, '/tmp/backup.conf')
public.writeFile(filename, conf)
conf = public.readFile(filename)
# 检查配置是否有误
isError = public.checkWebConfig()
if isError != True:
shutil.copyfile('/tmp/backup.conf', filename)
return public.returnJson(False, 'ERROR: <br><a style="color:red;">' + isError.replace("\n", '<br>') + '</a>')
public.M('binding').add('pid,domain,port,path,addtime',
(id, domain, port, dirName, public.getDate()))
public.restartWeb()
msg = public.getInfo('网站[{1}]子目录[{2}]绑定到[{3}]',
(siteInfo['name'], dirName, domain))
public.writeLog('网站管理', msg)
return public.returnJson(True, '添加成功!')
def addDomainApi(self): def addDomainApi(self):
isError = public.checkWebConfig() isError = public.checkWebConfig()
if isError != True: if isError != True:

@ -683,12 +683,6 @@ class system_api:
print 'updateServer', ex print 'updateServer', ex
return public.returnJson(False, "连接服务器失败!") return public.returnJson(False, "连接服务器失败!")
# 重启面板
def reWeb(self, get):
if not public.isRestart():
public.returnMsg(False, '请等待所有安装任务完成再执行!')
public.returnMsg(True, '执行成功!')
# 修复面板 # 修复面板
def repPanel(self, get): def repPanel(self, get):
vp = '' vp = ''

@ -5,20 +5,20 @@ server
index index.php index.html index.htm default.php default.htm default.html; index index.php index.html index.htm default.php default.htm default.html;
root {$ROOT_DIR}; root {$ROOT_DIR};
#SSL-START %s #SSL-START
#error_page 404/404.html; #error_page 404/404.html;
#SSL-END #SSL-END
#ERROR-PAGE-START %s #ERROR-PAGE-START
error_page 404 /404.html; error_page 404 /404.html;
error_page 502 /502.html; error_page 502 /502.html;
#ERROR-PAGE-END #ERROR-PAGE-END
#PHP-INFO-START %s #PHP-INFO-START
include enable-php-{$PHPVER}.conf; include enable-php-{$PHPVER}.conf;
#PHP-INFO-END #PHP-INFO-END
#REWRITE-START %s #REWRITE-START
include {$OR_REWRITE}/{$SERVER_NAME}.conf; include {$OR_REWRITE}/{$SERVER_NAME}.conf;
#REWRITE-END #REWRITE-END

@ -0,0 +1,52 @@
server
{
listen {$PORT};
server_name {$SERVER_NAME};
index index.php index.html index.htm default.php default.htm default.html;
root {$ROOT_DIR};
#SSL-START %s
#error_page 404/404.html;
#SSL-END
#ERROR-PAGE-START
error_page 404 /404.html;
error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START
include enable-php-{$PHPVER}.conf;
#PHP-INFO-END
#REWRITE-START
#include {$OR_REWRITE}/{$SERVER_NAME}.conf;
#REWRITE-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log off;
access_log /dev/null;
}
location ~ .*\\.(js|css)?$
{
expires 12h;
error_log off;
access_log /dev/null;
}
access_log {$LOGPATH}/{$SERVER_NAME}.log;
error_log {$LOGPATH}/{$SERVER_NAME}.error.log;
}
Loading…
Cancel
Save