• SupportTutorial
  • aaPanel 7.x operating environment upgrade to Python 3.12 Questions and Answers

Tip:

  1. Upgrading aaPanel will not affect the operation of the website. It only upgrades the aaPanel program and the python version environment it uses.
  2. It is recommended to update when SSH or VNC is available. If the update fails, you can quickly handle it.
  3. After upgrading, please press Ctrl + F5 to force refresh or use the browser to access in incognito mode.

Known issues:

Plug-ins and Professional programs in the App Store need to be updated to the latest version, otherwise they will not work properly.

If you encounter problems during use: 1. Take a screenshot of the error prompt, 2. Provide the operating system and system version you are using and feedback to the forum.

Problems you may encounter

1. How to deal with upgrade failure
You can also try to use the ssh tool to log in to the server and execute the update command with root privileges to update.
Update command:

curl -k https://node.aapanel.com/install/update_7.x_en.sh | bash

2. The network cannot connect to our node
Use the ssh tool to log in to the server and execute the command to check the server network:

curl -v https://node.aapanel.com
ping node.aapanel.com -c 5
ping google.com -c 5

Check whether the DNS of the operating system is set cat /etc/resolv.conf
If not set, execute the following command to set nameserver:

echo "nameserver 8.8.8.8" >> /etc/resolv.conf
echo "nameserver 1.1.1.1" >> /etc/resolv.conf

3. It may be that the system does not support Python 3.12 (usually an outdated system)

4. Insufficient space in /www partition
All partitions of /www can use at least 1G. It is recommended to clean or upgrade the server space before upgrading.
You can use this command to view the space df -h /www

5. Failed to download the file: Please try to use the update command line to update manually, and check whether the server network is normal?

6. Unable to access aaPanel after upgrade:
Use the ssh tool to log in to the server and check whether the bt service is started: bt status or sudo bt status
If it is not started, please start the bt service manually: bt start or sudo bt start
If it cannot start please check the log: bt 22

7. How to check the Python version used by aaPanel
View in the aaPanel Home interface:

Use the command to view:
/www/server/panel/pyenv/bin/python -V

8. After clicking "Update" from aaPanel, Python 3.7 is still displayed.
After updating to the latest version 7.x, the Python version will be automatically updated in the background.
If Python is still 3.7 after more than 15 minutes, it is recommended that you try to use the ssh tool to log in to the server and execute the update command.

9. How long does the upgrade take?
It takes 180 MB to download a file, which usually takes 1-2 minutes depending on the network speed of your server.
If you are using an operating system that does not have a pre-made Python environment package, it will take about 10 minutes or more. It is recommended to upgrade when the server is idle.
The operating systems of pre-made Python environment packages are not limited to the following systems:

  • CentOS, Red Hat, Oracle Linux: 7 8 9
  • Rocky linux, AlmaLinux: 8 9
  • Ubuntu: 18 20 22 23 24
  • Debian: 10 11 12

10. After the update is successful, you may need to use the full link to access aaPanel and be asked to log in.
Use the ssh tool to log in to the server and execute the command with root permissions to view the aaPanel access link: bt 14
If you forget your password, you can change it: bt 5

11. Is it possible to switch back to the old version 6.x?
Not recommended, the old version 6.x will no longer be maintained.

12. When using the Professional program in the App Store, an error message appears:
"load plugin failed: invalid plugin entry"

  1. Please update the program to the latest version
  2. If it is already the latest version and the error is still prompted, how to deal with it:
    Find the wrong program on the App Store interface, click "Location" to enter the directory of the program you want to modify and find the info.json file
    Modify the "versions" field to be lower than the current version, then save it, and finally update it manually in the App Store

    Example: Nginx WAF
    Nginx WAF info.json file /www/server/panel/plugin/btwaf/info.json
    For example: "versions":"9.3.5", change to "versions":"9.3",
    Then save, and finally go to the App Store to update manually

What do I need to do after upgrading?

  1. It is recommended that you check whether aaPanel is running normally? Can it be used normally? If not, please take a screenshot of the error message and report it to the forum.
  2. Check the Python version used by aaPanel 7.x . If it is not Python 3.12, aaPanel cannot be used normally. You can update manually using the update command
  3. If you use Cron to back up data, please go to Cron to manually perform the task and observe whether there are any errors in the log?

If you encounter problems during use: 1. Take a screenshot of the error message, 2. Provide the operating system and system version you are using and provide feedback to the forum.

    Ubuntu Server 24.04
    aaPanel 7.0.0

    @"aaPanel_Kern"#p81703root@server:~# bt
    ===============aaPanel CLI==================
    (1) Restart panel (8) Change panel port
    (2) Stop panel (9) Clear panel cache
    (3) Start panel (10) Clear login limit
    (4) Reload panel (11) Turn on/off IP + User-Agent Aut henticator
    (5) Change panel password (12) Cancel domain binding limit
    (6) Change panel username (13) Cancel IP access limit
    (7) Forcibly change MySQL root password (14) View panel default info
    (22) Display panel error log (15) Clear system rubbish
    (23) Turn off BasicAuth Authenticator (16) Repair panel (check for errors and update panel files to the latest version)
    (24) Turn off Google Authenticator (17) Set log cutting on/off compress ion
    (25) Save copy when modify file in panel (18) Set whether to back up the pane l automatically
    (26) Keep/Remove local backup when backing up to cloud storage
    (27) Turn on/off panel SSL (28) Modify panel security entrance
    (0) Cancel

    Pls enter command number:22

    EXECUTING

    /www/server/panel/class_v2/safe_warning_v2/sw_tomcat_pass.py:29: SyntaxWarning: invalid escape sequence '\s'

    /www/server/panel/class_v2/safe_warning_v2/sw_cve_2019_5736.py:27: SyntaxWarning : invalid escape sequence '\d'
    if not re.search('\d+.\d+.\d+', docker):
    /www/server/panel/class_v2/safe_warning_v2/sw_ftp_login.py:24: SyntaxWarning: in valid escape sequence '\s'
    if re.search('.NoAnonymous\syes', info_data):
    /www/server/panel/class_v2/safe_warning_v2/sw_ssh_passmin.py:37: SyntaxWarning: invalid escape sequence '\s'
    tmp = re.findall("\nPASS_MIN_DAYS\s+(.+)", p_body, re.M)
    /www/server/panel/class_v2/safe_warning_v2/sw_ssh_minclass.py:37: SyntaxWarning: invalid escape sequence '\s'
    tmp = re.findall("\sminclass\s+=\s+(.+)", p_body, re.M)
    /www/server/panel/class_v2/safe_warning_v2/sw_ssh_forward.py:23: SyntaxWarning: invalid escape sequence '\s'
    rep = '.
    ?X11Forwarding\s?yes'
    /www/server/panel/class_v2/safe_warning_v2/sw_alias_ls_rm.py:35: SyntaxWarning: invalid escape sequence '\s'
    rep2 = 'alias(\s
    )rm(\s)=(\s)[\'\"]rm(\s)-.[i?].'
    /www/server/panel/class_v2/safe_warning_v2/sw_ssh_passmax.py:37: SyntaxWarning: invalid escape sequence '\s'
    tmp = re.findall("\nPASS_MAX_DAYS\s+(.+)", p_body, re.M)
    /www/server/panel/class_v2/safe_warning_v2/sw_ssh_port.py:52: SyntaxWarning: inv alid escape sequence '\l'
    version = public.readFile('/etc/issue').strip().split("\n")[0].replace('\n',' ').replace('\l','').strip()
    /www/server/panel/class_v2/safe_warning_v2/sw_ssh_clientalive.py:43: SyntaxWarni ng: invalid escape sequence '\s'
    if re.search('ClientAliveInterval\s+\d+',info_data):
    /www/server/panel/class_v2/safe_warning_v2/sw_ssh_clientalive.py:44: SyntaxWarni ng: invalid escape sequence '\s'
    clientalive=re.findall('ClientAliveInterval\s+\d+',info_data)[0]
    /www/server/panel/class_v2/panel_ssl_v2.py:1076: SyntaxWarning: invalid escape s equence '*'
    if re.match("*..
    ", cert):
    /www/server/panel/class_v2/safe_warning_v2/sw_ssh_login_grace.py:40: SyntaxWarni ng: invalid escape sequence '\s'
    output, err = public.ExecShell("grep -P '?!#[\s]LoginGraceTime.$' {}".for mat(path))
    /www/server/panel/class_v2/safe_warning_v2/sw_audit_log_keep.py:26: SyntaxWarnin g: invalid escape sequence '\s'
    rep = 'max_log_file_action\s=\s(.)'
    /www/server/panel/class_v2/safe_warning_v2/sw_ftp_umask.py:24: SyntaxWarning: in valid escape sequence '\s'
    if re.search('.Umask\s177:077', info_data):
    /www/server/panel/class/panelSSL.py:1058: SyntaxWarning: invalid escape sequence '*'
    if re.match("*..", cert):
    /www/server/panel/class_v2/panel_plugin_v2.py:1635: SyntaxWarning: invalid escap e sequence '\/'
    v1 = public.ExecShell("/www/server/apache/bin/httpd -v|grep Apache|awk '{print $3}'|sed 's/Apache\///'")[0].strip();
    /www/server/panel/class_v2/panel_plugin_v2.py:1817: SyntaxWarning: invalid escap e sequence '\d'
    reg = '/usr/local/lsws/lsphp(\d+)/bin/lsphp'
    /www/server/panel/class_v2/panel_plugin_v2.py:1825: SyntaxWarning: invalid escap e sequence '\s'
    reg = 'address\s+*:(\d+)'
    /www/server/panel/class_v2/panel_plugin_v2.py:2257: SyntaxWarning: invalid escap e sequence '\c'
    public.ExecShell("\cp -a -r " + get.tmp_path + '/
    ' + plugin_path + '/')
    /www/server/panel/class_v2/safe_warning_v2/sw_ssh_maxauth.py:43: SyntaxWarning: invalid escape sequence '\s'
    if re.search('MaxAuthTries\s+\d+', info_data):
    /www/server/panel/class_v2/safe_warning_v2/sw_ssh_maxauth.py:44: SyntaxWarning: invalid escape sequence '\s'
    maxauth = re.findall('MaxAuthTries\s+\d+', info_data)[0]
    /www/server/panel/class_v2/safe_warning_v2/sw_sudoers_nopasswd.py:33: SyntaxWarn ing: invalid escape sequence '\s'
    output, err = public.ExecShell('grep -P \'?!#.[\s]+NOPASSWD[\s]:.$\' {} '.format(sudo_file))
    /www/server/panel/class_v2/safe_warning_v2/sw_sudoers_nopasswd.py:39: SyntaxWarn ing: invalid escape sequence '\s'
    output, err = public.ExecShell('grep -P \'?!#.
    [\s]+NOPASSWD[\s]:.$\' {} '.format(filename))
    [2024-05-18 02:33:21][DEBUG] - sub_path:
    /www/server/panel/class/ajax.py:797: SyntaxWarning: invalid escape sequence '\s'
    rep = "disable_functions\s=\s{0,1}(.)\n"
    /www/server/panel/class/ajax.py:803: SyntaxWarning: invalid escape sequence '\s'
    rep = "upload_max_filesize\s=\s([0-9]+)(M|m|K|k)"
    /www/server/panel/class/ajax.py:809: SyntaxWarning: invalid escape sequence '\s'
    rep = u"\n;\scgi.fix_pathinfo\s=\s([0-9]+)\s\n"
    /www/server/panel/class/ajax.py:1051: SyntaxWarning: invalid escape sequence '. '
    ssl_conf = """server
    /www/server/panel/class/ajax.py:1098: SyntaxWarning: invalid escape sequence '. '
    ssl_conf = '''Listen 887
    /www/server/panel/class/ajax.py:1334: SyntaxWarning: invalid escape sequence '\d '
    result['port'] = int(re.search('PORT=(\d+)',conf).groups()[0])
    /www/server/panel/class/ajax.py:1335: SyntaxWarning: invalid escape sequence '\d '
    result['maxconn'] = int(re.search('MAXCONN=(\d+)',conf).groups()[0])
    /www/server/panel/class/ajax.py:1336: SyntaxWarning: invalid escape sequence '\d '
    result['cachesize'] = int(re.search('CACHESIZE=(\d+)',conf).groups()[0])
    /www/server/panel/class/ajax.py:1361: SyntaxWarning: invalid escape sequence '\d '
    conf = re.sub('PORT=\d+','PORT='+get.port,conf)
    /www/server/panel/class/ajax.py:1362: SyntaxWarning: invalid escape sequence '\d '
    conf = re.sub('MAXCONN=\d+','MAXCONN='+get.maxconn,conf)
    /www/server/panel/class/ajax.py:1363: SyntaxWarning: invalid escape sequence '\d '
    conf = re.sub('CACHESIZE=\d+','CACHESIZE='+get.cachesize,conf)
    /www/server/panel/class/ajax.py:1372: SyntaxWarning: invalid escape sequence '\s '
    port = re.findall('\n\s
    port\s+(\d+)',c)[0]
    /www/server/panel/class/ajax.py:1373: SyntaxWarning: invalid escape sequence '\s '
    password = re.findall('\n\srequirepass\s+(.+)',c)
    /www/server/panel/class/files.py:127: SyntaxWarning: invalid escape sequence '\s '
    rep = '\s
    root\s+(.+);'
    /www/server/panel/class/files.py:135: SyntaxWarning: invalid escape sequence '\s '
    rep = '\sDocumentRoot\s"(.+)"\s\n'
    /www/server/panel/class/files.py:2430: SyntaxWarning: invalid escape sequence '\ w'
    if not re.match('\w+$',pdata['password']):
    /www/server/panel/class/files.py:2457: SyntaxWarning: invalid escape sequence '\ w'
    if not re.match('\w+$',pdata['password']) and pdata['password']:
    [2024-05-18 02:42:30][DEBUG] - sub_path:
    Exception in thread Thread-226 (_thread):
    Traceback (most recent call last):
    File "/www/server/panel/pyenv/lib/python3.12/threading.py", line 1073, in boo tstrap_inner
    self.run()
    File "/www/server/panel/pyenv/lib/python3.12/threading.py", line 1010, in run
    self.
    target(
    self.args, **self.kwargs)
    File "/www/server/panel/class/simple_websocket/ws.py", line 169, in thread
    self.connected = self.
    handle_events()

    File "/www/server/panel/class/simple_websocket/ws.py", line 249, in handle_ev ents
    self.sock.send(out_data)
    File "/www/server/panel/pyenv/lib/python3.12/site-packages/gevent/
    socketcommo n.py", line 725, in send
    return self._sock.send(data, flags)

    BrokenPipeError: [Errno 32] Broken pipe
    [2024-05-18 02:45:09][DEBUG] - sub_path:
    root@server:~#

      aaP_valdeuscorp
      Hello, is it possible to use the browser in incognito mode or change the browser to access it?
      This error is only a warning and does not affect usage

      Hi, very nice update, thank you, everything works faster now. Question?
      When will it be possible to add panel translation in other languages.
      I'm from Russia, I'm ready to participate in localization of the panel into Russian.

        Traceback (most recent call last):
        File "/www/server/panel/tools.py", line 20, in <module>
        import public,time,json
        File "/www/server/panel/class/public/init.py", line 969
        def GetNumLines(path, num: int, p=1):
        ^
        SyntaxError: invalid syntax

        Good afternoon. Updated to version 7.0.1. Stopped moving quickly(manager) to the database

        I get the error "Please install phpMyAdmin"

        Although I have phpmyadmin 4.4 installed.

        There was no such bug in version 6

          Hello, I have not reproduced this problem here. Can you provide the mysql version or aapanel information?
          can you give us your aapanel information? The server makes a snapshot backup first, if possible, please send it to kern@aapanel.com.
          It is recommended to fill in the following
          Post link:
          SSH IP address, account password and port:
          aapanel login link address and account password:

          No post link will not be able to know which user's information is, and the problem will not be processed

          MrKlarki

          Hi, I did the update, the panel is working fine! But the appearance of the panel has changed a little, the fonts are smaller now, or is this normal?
          Another problem is map is not working in nginx waf.

            MrKlarki

            uninstall current phpmyadmin, reinstall phpmyadmin 5.0, go to phpmyadmin setting and change PHP version of phpmyadmin to 7.4 (make sure you installed php 7.4)

              @aaPanel_Kern
              The UI / UX in v7.x has improved quite a lot. It looks more refined and professional.

              However I can see a scrollbar appearing near the left menu of panel. And if I try to remove menu items from settings, which I don't use, they do not get hidden or removed in v7.0.1. Please have a look to fix it.

                Hello, what is your display resolution?
                The hidden menu is a BUG and will be fixed later.

                szone

                  Hi! 🙂

                  Thanks for fixing phpmyadmin in version 7.0.2. Now the manager button works correctly

                  I noticed that the labels on the buttons in the database section are missing. When 20/pages or more is selected
                  I have 26 DBs.

                  vitti
                  I thought about it, but it's already been fixed.

                  Thanks for the answer

                  aaPanel_Kern 1080p resolution.

                  The scroll bar is fixed with v7.0.2. But hiding menu items is still not fixed.

                  I did fresh AAPanel 7.0.2 installation on Ubuntu 22.04 VPS and Dedicated Servers, chosen Nginx 1.24 and 1.25, but it doesn't start.

                  I was very happy with 6.x.x versions. It looks like you guys have released beta version of v7.x.x which is full of bugs. Please do not release this 7.x.x until all bugs are fixed. I would rather go back to version 6.x.x.

                  After updating the panel, the Website Speed ​​plugin was automatically installed. I don't have this plugin installed and I can't delete it. What's going on?