Update to 7.7.0

Since version 7.7.0, we recommend yours update python to 3.12.

[+] Using nginx technology to load static files improves access speed
[+] Refactor homepage, website, FTP, and database using vue3
[+] Table loading changed to skeleton screen
[+] Add Website statistics-v2 professional plug-in
[+] Add Home page - top 5 resource occupancy
[+] Add protection for Files management (requires Tamper-proof for Enterprise 3.7)
[+] Website, FTP, Databases page add program status
[+] Add FTP log analysis (only supports Centos)
[+] Add password-free login to phpMyAdmin
[+] Add Proxy Project in Website (Supported when web service uses Nginx)
[+] Add WP Toolkit (Pro version only)
[+] Redesigned Docker module
[+] Add WP Toolkit Protection
[+] Add WP Toolkit Backup and Restore
[+] Add WP Toolkit Migrated
[+] Add WP Toolkit Clone site (supports new domain and subdomain)
[+] Add WP Toolkit Create site from backup of other panel
[+] Add WP Toolkit support for Cron automatic backup (only save Local disk)
[+] Add WP Toolkit operation log
[+] Add Integrity check for WP Toolkit
[+] Add WP Toolkit plug-in management and themes management

[*] Optimize phpMyAdmin formula access method
[*] Optimize Home page PHP display problem
[*] Optimize jump to the login interface after the login expires
[*] Optimize automatic renewal of SSL at some times
[*] Optimize Let's Encrypt to increase application success rate

[-] Fix Logs Audit cannot be opened
[-] Fix apache URL rewrite issue
[-] Fix phpmyadmin installation problem
[-] Fix the problem that some servers cannot install software
[-] Fix upload file error
[-] Fix left menu hiding problem
[-] Fix aaPanel Mobile QR code display problem
[-] Fix problem that third-party plug-ins are not displayed in the App Store
[-] Fix issue where the menu bar is blank when opening new tabs
[-] Fixed panel not being accessible in some cases
[-] Fix the issue where Curl warning caused the inability to apply for SSL
[-] Fix Quota issues for Website, FTP, Databases
[-] Fix file interface display problem on mobile terminal
This commit is contained in:
Jack
2024-07-19 11:25:10 +08:00
parent ed34994f45
commit ed55fa708d
1949 changed files with 329210 additions and 26644 deletions
+19 -19
View File
@@ -1,10 +1,10 @@
# coding: utf-8
# -------------------------------------------------------------------
# 宝塔Linux面板
# aaPanel
# -------------------------------------------------------------------
# Copyright (c) 2015-2017 宝塔软件(http:#bt.cn) All rights reserved.
# Copyright (c) 2015-2017 aaPanel(www.aapanel.com) All rights reserved.
# -------------------------------------------------------------------
# Author: hwliang <hwl@bt.cn>
# Author: hwliang <hwl@aapanel.com>
# -------------------------------------------------------------------
# ------------------------------
@@ -418,7 +418,7 @@ ssl-key=/www/server/mysql/mysql-test/std_data/server-key.pem
reg = "ssl-ca=/www.*\n.*\n.*server-key.pem\n"
conf = re.sub(reg, "", conf)
if os.path.exists('/www/server/mysql/mysql-test/std_data/server-cert.pem'):
conf = re.sub('\[mysqld\]', '[mysqld]\nskip_ssl', conf)
conf = re.sub(r'\[mysqld\]', '[mysqld]\nskip_ssl', conf)
public.writeFile(conf_file, conf)
return public.return_msg_gettext(True, 'Setup successfully!')
# create_ssl = None
@@ -429,7 +429,7 @@ ssl-key=/www/server/mysql/mysql-test/std_data/server-key.pem
# if create_ssl:
# self._create_mysql_ssl()
if "ssl-ca" not in conf:
conf = re.sub('\[mysqld\]', '[mysqld]' + ssl_original_path, conf)
conf = re.sub(r'\[mysqld\]', '[mysqld]' + ssl_original_path, conf)
conf = re.sub('skip_ssl\n', '', conf)
public.writeFile(conf_file, conf)
# public.ExecShell('chown mysql.mysql /www/server/data/*.pem')
@@ -792,7 +792,7 @@ SetLink
password = get['password'].strip()
try:
if not password: return public.return_msg_gettext(False, 'Root password cannot be empty')
rep = "^[\w@\.\?\-\_\>\<\~\!\#\$\%\^\&\*\(\)]+$"
rep = r"^[\w@\.\?\-\_\>\<\~\!\#\$\%\^\&\*\(\)]+$"
if not re.match(rep, password): return public.return_msg_gettext(False,
'Database password cannot contain special characters!')
self.sid = get.get('sid/d', 0)
@@ -864,7 +864,7 @@ SetLink
db_find = public.M('databases').where('id=?', (id,)).find()
name = db_find['name']
rep = "^[\w@\.\?\-\_\>\<\~\!\#\$\%\^\&\*\(\)]+$"
rep = r"^[\w@\.\?\-\_\>\<\~\!\#\$\%\^\&\*\(\)]+$"
if not re.match(rep, newpassword): return public.return_msg_gettext(False,
'Database password cannot contain special characters!')
# 修改MYSQL
@@ -1252,7 +1252,7 @@ SetLink
ps = public.get_msg_gettext('Test Database')
# XSS filter
if not re.match("^[\w+\.-]+$", value[0]): continue
if not re.match(r"^[\w+\.-]+$", value[0]): continue
addTime = time.strftime('%Y-%m-%d %X', time.localtime())
@@ -1317,9 +1317,9 @@ SetLink
public.CheckMyCnf()
myfile = '/etc/my.cnf'
mycnf = public.readFile(myfile)
rep = "datadir\s*=\s*(.+)\n"
rep = "datadir\\s*=\\s*(.+)\n"
data['datadir'] = re.search(rep, mycnf).groups()[0]
rep = "port\s*=\s*([0-9]+)\s*\n"
rep = "port\\s*=\\s*([0-9]+)\\s*\n"
data['port'] = re.search(rep, mycnf).groups()[0]
except:
data['datadir'] = '/www/server/data'
@@ -1338,7 +1338,7 @@ SetLink
'The same as the current storage directory, file cannot be moved!')
public.ExecShell('/etc/init.d/mysqld stop')
public.ExecShell('\cp -arf ' + mysqlInfo['datadir'] + '/* ' + get.datadir + '/')
public.ExecShell(r'\cp -arf ' + mysqlInfo['datadir'] + '/* ' + get.datadir + '/')
public.ExecShell('chown -R mysql.mysql ' + get.datadir)
public.ExecShell('chmod -R 755 ' + get.datadir)
public.ExecShell('rm -f ' + get.datadir + '/*.pid')
@@ -1365,7 +1365,7 @@ SetLink
def SetMySQLPort(self, get):
myfile = '/etc/my.cnf'
mycnf = public.readFile(myfile)
rep = r"port\s*=\s*([0-9]+)\s*\n"
rep = "port\\s*=\\s*([0-9]+)\\s*\n"
mycnf = re.sub(rep, 'port = ' + get.port + '\n', mycnf)
public.writeFile(myfile, mycnf)
public.ExecShell('/etc/init.d/mysqld restart')
@@ -1429,19 +1429,19 @@ SetLink
mysql_cnf = re.sub(r"\nlog-bin", "\n#log-bin", mysql_cnf)
mysql_cnf = re.sub(r"\nbinlog_format", "\n#binlog_format", mysql_cnf)
if not is_off_bin_log:
if re.search("\n#\s*skip-log-bin", mysql_cnf):
mysql_cnf = re.sub("\n#\s*skip-log-bin", "\nskip-log-bin", mysql_cnf)
if re.search("\n#\\s*skip-log-bin", mysql_cnf):
mysql_cnf = re.sub("\n#\\s*skip-log-bin", "\nskip-log-bin", mysql_cnf)
else:
mysql_cnf = re.sub("\n#\s*log-bin", "\nskip-log-bin\n#log-bin", mysql_cnf)
mysql_cnf = re.sub("\n#\\s*log-bin", "\nskip-log-bin\n#log-bin", mysql_cnf)
# public.ExecShell("rm -f {}/mysql-bin.*".format(mysql_data_dir))
else: # 开启 binlog 日志
if re.search("\n#\s*log-bin", mysql_cnf):
mysql_cnf = re.sub("\n#\s*log-bin", "\nlog-bin", mysql_cnf)
if re.search("\n#\\s*log-bin", mysql_cnf):
mysql_cnf = re.sub("\n#\\s*log-bin", "\nlog-bin", mysql_cnf)
else:
mysql_cnf = re.sub("[mysqld]", "[mysqld]\nlog-bin=mysql-bin", mysql_cnf)
if re.search("\n#\s*binlog_format", mysql_cnf):
mysql_cnf = re.sub(r"\n#\s*binlog_format", "\nbinlog_format", mysql_cnf)
if re.search("\n#\\s*binlog_format", mysql_cnf):
mysql_cnf = re.sub("\n#\\s*binlog_format", "\nbinlog_format", mysql_cnf)
else:
mysql_cnf = re.sub("[mysqld]", "[mysqld]\nbinlog_format=mixed", mysql_cnf)