| import json |
| import os.path |
| import shutil |
| import sys |
|
|
| if "/www/server/panel/class" not in sys.path: |
| sys.path.insert(0, "/www/server/panel/class") |
|
|
| from .ip_restrict import IpRestrict, RealIpRestrict |
| from .redirect import RealRedirect, Redirect |
| from .access_restriction import AccessRestriction, RealAccessRestriction |
| from .domain_tool import domain_to_puny_code, check_domain, normalize_domain, NginxDomainTool, ApacheDomainTool, \ |
| is_domain |
| from .dns_api import DNSApiManager, RealDnsMager |
| from .dir_tool import DirTool |
| from .referer import Referer, RealReferer |
| from .logmanager import LogMgr, RealLogMgr |
| from .proxy import Proxy, RealProxy |
| from .ssl import SSLManager, RealSSLManger |
| from .config_mgr import ConfigMgr |
| from .default_site import set_default_site, get_default_site, check_default |
| from .access_control import cors_manager |
| from .nginx_gzip import NginxGzipMgr |
| from .nginx_cache import NginxStaticCacheMgr |
| from .server_extension import NginxExtension as ng_ext, ApacheExtension as ap_ext |
| from .nginx_realip import NginxRealIP |
|
|
|
|
| def remove_sites_service_config(site_name: str, config_prefix: str = ""): |
| """ |
| 用于删除一个网站的nginx,apache的所有相关配置文件和配置项 |
| 包含: |
| 配置文件,访问限制, 反向代理, 重定向, 防盗链,证书目录, IP黑白名单, 历史配置文件, 默认站点, 日志格式配置记录, 伪静态等 |
| """ |
| |
| ng_file = "/www/server/panel/vhost/nginx/{}{}.conf".format(config_prefix, site_name) |
| if os.path.exists(ng_file): |
| os.remove(ng_file) |
| ap_file = "/www/server/panel/vhost/apache/{}{}.conf".format(config_prefix, site_name) |
| if os.path.exists(ap_file): |
| os.remove(ap_file) |
|
|
| ng_ext.remove_extension(site_name, ng_file) |
| ap_ext.remove_extension(site_name, ap_file) |
| |
| RealAccessRestriction(config_prefix=config_prefix).remove_site_access_restriction_info(site_name) |
| |
| RealProxy(config_prefix=config_prefix).remove_site_proxy_info(site_name) |
| |
| RealRedirect(config_prefix=config_prefix).remove_site_redirect_info(site_name) |
| |
| RealReferer(config_prefix=config_prefix).remove_site_referer_info(site_name) |
| |
| cert_path = "/www/server/panel/vhost/cert/" + site_name |
| if os.path.isdir(cert_path): |
| shutil.rmtree(cert_path) |
| |
| RealIpRestrict(config_prefix=config_prefix).remove_site_ip_restrict_info(site_name) |
| |
| ConfigMgr(site_name=site_name, config_prefix=config_prefix).clear_history_file() |
| |
| d_site_name, d_prefix = get_default_site() |
| if d_site_name == site_name and d_prefix == config_prefix: |
| d_file = "/www/server/panel/data/mod_default_site.pl" |
| f = open(d_file, mode="w+") |
| json.dump({"name": None, "prefix": None}, f) |
|
|
| |
| RealLogMgr(conf_prefix=config_prefix).remove_site_log_format_info(site_name) |
|
|
| |
| rewrite_path = "/www/server/panel/vhost/rewrite/{}{}.conf".format(config_prefix, site_name) |
| if os.path.isdir(rewrite_path): |
| os.remove(rewrite_path) |
|
|