Fix: CyberPanel site creation fails at “Setting up directories..” with MySQL 2006 “Server has gone away

CyberPanel Site Creation: MySQL 2006 Fix

Edit Cyberpanel system Files, for linux default locations under /usr/local/Cybercp

  • File: plogical/virtualHostUtilities.py
  • Issue: MySQL/MariaDB connection goes stale during site creation after long OS operations (DKIM, directory/SSL), causing (2006, 'Server has gone away').
  • Fix: Refresh Django DB connections before ORM usage.

Code Before (with line numbers)

# .../plogical/virtualHostUtilities.py

13 sys.path.append('/usr/local/CyberCP')
14 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
15 from random import randint
16 
17 django.setup()
18 import argparse
19 from plogical import installUtilities
20 from plogical import sslUtilities
# .../plogical/virtualHostUtilities.py

638                 if retValues[0] == 0:
639                     raise BaseException(retValues[1])
640 
641             selectedPackage = Package.objects.get(packageName=packageName)
642 
643             if LimitsCheck:
644                 website = Websites(admin=admin, package=selectedPackage, domain=virtualHostName,

Code After (with line numbers)

# .../plogical/virtualHostUtilities.py

13 sys.path.append('/usr/local/CyberCP')
14 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
15 from random import randint
16 
17 django.setup()
18 from django.db import close_old_connections        # <-- ADDED
19 import argparse
20 from plogical import installUtilities
21 from plogical import sslUtilities
# .../plogical/virtualHostUtilities.py

638                 if retValues[0] == 0:
639                     raise BaseException(retValues[1])
640 
641             close_old_connections()                 # <-- ADDED
642             selectedPackage = Package.objects.get(packageName=packageName)
643 
644             if LimitsCheck:
645                 website = Websites(admin=admin, package=selectedPackage, domain=virtualHostName,
  • What to change:
    • Add from django.db import close_old_connections right after django.setup() (after line 17).
    • Add close_old_connections() immediately before selectedPackage = Package.objects.get(...) (line 641).

It works
Thank you

1 Like

This topic was automatically closed 3 hours after the last reply. New replies are no longer allowed.