diff --git a/ApachController/ApacheController.py b/ApachController/ApacheController.py index cca886dc4..6aa2a81cf 100755 --- a/ApachController/ApacheController.py +++ b/ApachController/ApacheController.py @@ -181,7 +181,7 @@ LoadModule mpm_event_module modules/mod_mpm_event.so if ProcessUtilities.executioner(command, None, True) == 0: return "Apache run apache2-suexec-pristine" - command = 'a2enmod suexec proxy ssl proxy_fcgi proxy rewrite' + command = 'a2enmod suexec proxy ssl proxy_fcgi proxy rewrite headers' if ProcessUtilities.executioner(command, None, True) == 0: return "Apache run suexec proxy ssl" diff --git a/baseTemplate/static/baseTemplate/assets/finalBase/favicon.png b/baseTemplate/static/baseTemplate/assets/finalBase/favicon.png new file mode 100644 index 000000000..f72790ed5 Binary files /dev/null and b/baseTemplate/static/baseTemplate/assets/finalBase/favicon.png differ diff --git a/baseTemplate/templates/baseTemplate/index.html b/baseTemplate/templates/baseTemplate/index.html index 3a5ee8c6c..6d062bd32 100755 --- a/baseTemplate/templates/baseTemplate/index.html +++ b/baseTemplate/templates/baseTemplate/index.html @@ -90,7 +90,7 @@ href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css"> - + {% block styles %} @@ -448,10 +448,10 @@ title="{% trans 'List Websites' %}">{% trans "List Websites" %}
  • {% trans "Create New Domain" %} + title="{% trans 'Create Sub-Domain' %}">{% trans "Create Sub-Domain" %}
  • {% trans "List Domains" %} + title="{% trans 'List Sub-Domains' %}">{% trans "List Sub-Domains" %}
  • {% if admin or modifyWebsite %}
  • /etc/cyberpanel/adminPass" >> /usr/bin/adminPass chmod 700 /usr/bin/adminPass rm -f /usr/bin/php -ln -s /usr/local/lsws/lsphp74/bin/php /usr/bin/php +ln -s /usr/local/lsws/lsphp80/bin/php /usr/bin/php if [[ "$Server_OS" = "CentOS" ]] ; then #all centos 7/8 post change goes here diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index c620ec8cb..a7629ce64 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -108,8 +108,8 @@ if [[ ! -f /etc/os-release ]] ; then exit fi -if ! uname -m | grep -q x86_64 ; then - echo -e "x86_64 system is required...\n" +if ! uname -m | grep -qE 'x86_64|aarch64' ; then + echo -e "x86_64 or ARM system is required...\n" exit fi diff --git a/cyberpanel_utility.sh b/cyberpanel_utility.sh index 2dcb7531f..46a67c0ab 100644 --- a/cyberpanel_utility.sh +++ b/cyberpanel_utility.sh @@ -19,7 +19,7 @@ check_OS() { Server_OS="AlmaLinux" elif grep -q -E "CloudLinux 7|CloudLinux 8" /etc/os-release ; then Server_OS="CloudLinux" - elif grep -q -E "Ubuntu 18.04|Ubuntu 20.04|Ubuntu 20.10" /etc/os-release ; then + elif grep -q -E "Ubuntu 18.04|Ubuntu 20.04|Ubuntu 20.10|Ubuntu 22.04" /etc/os-release ; then Server_OS="Ubuntu" elif grep -q -E "Rocky Linux" /etc/os-release ; then Server_OS="RockyLinux" @@ -28,8 +28,7 @@ check_OS() { else echo -e "Unable to detect your system..." echo -e "\nCyberPanel is supported on x86_64 based Ubuntu 18.04, Ubuntu 20.04, Ubuntu 20.10, Ubuntu 22.04, CentOS 7, CentOS 8, AlmaLinux 8, RockyLinux 8, CloudLinux 7, CloudLinux 8, openEuler 20.03, openEuler 22.03...\n" - Debug_Log2 "CyberPanel is supported on x86_64 based Ubuntu 18.04, Ubuntu 20.04, Ubuntu 20.10, Ubuntu 22.04, CentOS 7, CentOS 8, AlmaLinux 8, RockyLinux 8, CloudLinux 7, CloudLinux 8, openEuler 20.03, openEuler 22.03... [404]" - exit + exit fi Server_OS_Version=$(grep VERSION_ID /etc/os-release | awk -F[=,] '{print $2}' | tr -d \" | head -c2 | tr -d . ) diff --git a/filemanager/filemanager.py b/filemanager/filemanager.py index 3aedb1fd4..0608d55f1 100755 --- a/filemanager/filemanager.py +++ b/filemanager/filemanager.py @@ -209,7 +209,8 @@ class FileManager: try: currentFile = items.split(' ') currentFile = [a for a in currentFile if a != ''] - if currentFile[-1] == '.' or currentFile[-1] == '..' or currentFile[0] == 'total': + + if currentFile[-1] == '.' or currentFile[-1] == '..' or currentFile[0] == 'total' or currentFile[-1].startswith('mail.'): continue if len(currentFile) > 9: diff --git a/install/install.py b/install/install.py index bd3388187..1ab1b78ef 100755 --- a/install/install.py +++ b/install/install.py @@ -102,7 +102,7 @@ class preFlightsChecks: debug = 1 cyberPanelMirror = "mirror.cyberpanel.net/pip" cdn = 'cyberpanel.sh' - SnappyVersion = '2.25.3' + SnappyVersion = '2.28.1' def __init__(self, rootPath, ip, path, cwd, cyberPanelPath, distro, remotemysql=None, mysqlhost=None, mysqldb=None, mysqluser=None, mysqlpassword=None, mysqlport=None): @@ -1403,7 +1403,7 @@ $cfg['Servers'][$i]['LogoutURL'] = 'phpmyadminsignin.php?logout'; command = f'wget -O /usr/local/CyberCP/snappymail_cyberpanel.php https://raw.githubusercontent.com/the-djmaze/snappymail/master/integrations/cyberpanel/install.php' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - command = f'/usr/local/lsws/lsphp74/bin/php /usr/local/CyberCP/snappymail_cyberpanel.php' + command = f'/usr/local/lsws/lsphp80/bin/php /usr/local/CyberCP/snappymail_cyberpanel.php' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) @@ -1551,11 +1551,36 @@ $cfg['Servers'][$i]['LogoutURL'] = 'phpmyadminsignin.php?logout'; lscpdPath = '/usr/local/lscp/bin/lscpd' - lscpdSelection = 'lscpd-0.3.1' - if os.path.exists('/etc/lsb-release'): - result = open('/etc/lsb-release', 'r').read() - if result.find('22.04') > -1: - lscpdSelection = 'lscpd.0.4.0' + # if subprocess.check_output('uname -a').decode("utf-8").find("aarch64") == -1: + # lscpdPath = '/usr/local/lscp/bin/lscpd' + # + # lscpdSelection = 'lscpd-0.3.1' + # if os.path.exists('/etc/lsb-release'): + # result = open('/etc/lsb-release', 'r').read() + # if result.find('22.04') > -1: + # lscpdSelection = 'lscpd.0.4.0' + # else: + # lscpdSelection = 'lscpd.aarch64' + + try: + result = subprocess.run('uname -a', capture_output=True, text=True, shell=True) + + if result.stdout.find('aarch64') == -1: + lscpdSelection = 'lscpd-0.3.1' + if os.path.exists('/etc/lsb-release'): + result = open('/etc/lsb-release', 'r').read() + if result.find('22.04') > -1: + lscpdSelection = 'lscpd.0.4.0' + else: + lscpdSelection = 'lscpd.aarch64' + + except: + + lscpdSelection = 'lscpd-0.3.1' + if os.path.exists('/etc/lsb-release'): + result = open('/etc/lsb-release', 'r').read() + if result.find('22.04') > -1: + lscpdSelection = 'lscpd.0.4.0' command = f'cp -f /usr/local/CyberCP/{lscpdSelection} /usr/local/lscp/bin/{lscpdSelection}' @@ -1577,7 +1602,7 @@ $cfg['Servers'][$i]['LogoutURL'] = 'phpmyadminsignin.php?logout'; try: os.remove("/usr/local/lscp/fcgi-bin/lsphp") - shutil.copy("/usr/local/lsws/lsphp74/bin/lsphp", "/usr/local/lscp/fcgi-bin/lsphp") + shutil.copy("/usr/local/lsws/lsphp80/bin/lsphp", "/usr/local/lscp/fcgi-bin/lsphp") except: pass diff --git a/install/installCyberPanel.py b/install/installCyberPanel.py index 067d1ee53..73f955098 100755 --- a/install/installCyberPanel.py +++ b/install/installCyberPanel.py @@ -505,7 +505,7 @@ class InstallCyberPanel: install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - if get_Ubuntu_release() > 20: + if get_Ubuntu_release() > 21.00: ### change mysql md5 to crypt command = "sed -i 's/MYSQLCrypt md5/MYSQLCrypt crypt/g' /etc/pure-ftpd/db/mysql.conf" diff --git a/lscpd.aarch64 b/lscpd.aarch64 new file mode 100644 index 000000000..7279af547 Binary files /dev/null and b/lscpd.aarch64 differ diff --git a/mailServer/mailserverManager.py b/mailServer/mailserverManager.py index fda01047e..66249eb2a 100755 --- a/mailServer/mailserverManager.py +++ b/mailServer/mailserverManager.py @@ -518,7 +518,6 @@ class MailServerManager(multi.Thread): else: return ACLManager.loadErrorJson() try: - emailDomain = Domains.objects.get(domain=selectedDomain) except: raise BaseException('No emails exist for this domain.') diff --git a/plogical/Backupsv2.py b/plogical/Backupsv2.py index 2479c69b7..29f467c4a 100644 --- a/plogical/Backupsv2.py +++ b/plogical/Backupsv2.py @@ -50,6 +50,8 @@ class CPBackupsV2(multi.Thread): except: pass + statusRes, message = self.InstallRustic() + ### set self.website as it is needed in many functions from websiteFunctions.models import Websites self.website = Websites.objects.get(domain=self.data['domain']) diff --git a/plogical/applicationInstaller.py b/plogical/applicationInstaller.py index c1d1cb530..408f47519 100755 --- a/plogical/applicationInstaller.py +++ b/plogical/applicationInstaller.py @@ -31,7 +31,7 @@ class ApplicationInstaller(multi.Thread): LOCALHOST = 'localhost' REMOTE = 0 PORT = '3306' - MauticVersion = '4.1.2' + MauticVersion = '4.4.0' PrestaVersion = '1.7.8.3' def __init__(self, installApp, extraArgs): @@ -242,7 +242,7 @@ $parameters = array( command = 'cp %s %s/app/config/local.php' % (localDB, finalPath) ProcessUtilities.executioner(command, externalApp) - command = "/usr/local/lsws/lsphp74/bin/php bin/console mautic:install http://%s -f" % (finalURL) + command = "/usr/local/lsws/lsphp80/bin/php bin/console mautic:install http://%s -f" % (finalURL) result = ProcessUtilities.outputExecutioner(command, externalApp, None, finalPath) if result.find('Install complete') == -1: @@ -1692,20 +1692,21 @@ $parameters = array( DataToPass['domainName'] = self.data['domainName'] DataToPass['adminEmail'] = self.data['adminEmail'] - DataToPass['phpSelection'] = "PHP 7.4" + DataToPass['phpSelection'] = "PHP 8.0" DataToPass['websiteOwner'] = self.data['websiteOwner'] DataToPass['package'] = self.data['package'] DataToPass['ssl'] = 1 DataToPass['dkimCheck'] = 0 DataToPass['openBasedir'] = 0 DataToPass['mailDomain'] = 0 + DataToPass['apacheBackend'] = self.extraArgs['apacheBackend'] UserID = self.data['adminID'] try: website = Websites.objects.get(domain=DataToPass['domainName']) if website.phpSelection == 'PHP 7.3': - website.phpSelection = 'PHP 7.4' + website.phpSelection = 'PHP 8.0' website.save() if ACLManager.checkOwnership(website.domain, self.extraArgs['adminID'], diff --git a/plogical/childDomain.py b/plogical/childDomain.py index 828bae8ce..af1e385f8 100755 --- a/plogical/childDomain.py +++ b/plogical/childDomain.py @@ -23,17 +23,20 @@ class ChildDomainManager: checker = 0 for items in childDomains: - dic = { - 'childDomain': items.domain, - 'path': items.path, - 'childLunch': '/websites/' + self.masterDomain + '/' + items.domain - } - - if checker == 0: - json_data = json_data + json.dumps(dic) - checker = 1 + if items.domain == f'mail.{master.domain}': + pass else: - json_data = json_data + ',' + json.dumps(dic) + dic = { + 'childDomain': items.domain, + 'path': items.path, + 'childLunch': '/websites/' + self.masterDomain + '/' + items.domain + } + + if checker == 0: + json_data = json_data + json.dumps(dic) + checker = 1 + else: + json_data = json_data + ',' + json.dumps(dic) json_data = json_data + ']' diff --git a/plogical/sslv2.py b/plogical/sslv2.py index 918a7c490..ee4a4f5e7 100755 --- a/plogical/sslv2.py +++ b/plogical/sslv2.py @@ -438,7 +438,7 @@ class sslUtilities: try: command = acmePath + f" --issue -d {virtualHostName} -d *.{virtualHostName}" \ + ' --cert-file ' + existingCertPath + '/cert.pem' + ' --key-file ' + existingCertPath + '/privkey.pem' \ - + ' --fullchain-file ' + existingCertPath + '/fullchain.pem' + f' --dns {DNS_TO_USE} -k ec-256 --force --server letsencrypt' + + ' --fullchain-file ' + existingCertPath + '/fullchain.pem' + f' --dns {DNS_TO_USE} -k ec-256 --force --server letsencrypt --dnssleep 20' #ResultText = open(logging.CyberCPLogFileWriter.fileName, 'r').read() #CurrentMessage = "Trying to obtain SSL for: " + virtualHostName + " and: www." + virtualHostName # logging.CyberCPLogFileWriter.writeToFile(CurrentMessage, 0) @@ -461,7 +461,7 @@ class sslUtilities: try: command = acmePath + " --issue -d " + virtualHostName + ' --cert-file ' + existingCertPath \ + '/cert.pem' + ' --key-file ' + existingCertPath + '/privkey.pem' \ - + ' --fullchain-file ' + existingCertPath + '/fullchain.pem' + f' --dns {DNS_TO_USE} -k ec-256 --force --server letsencrypt' + + ' --fullchain-file ' + existingCertPath + '/fullchain.pem' + f' --dns {DNS_TO_USE} -k ec-256 --force --server letsencrypt --dnssleep 20' #ResultText = open(logging.CyberCPLogFileWriter.fileName, 'r').read() CurrentMessage = '%s\nTrying to obtain SSL for: %s' % (finalText, virtualHostName) @@ -495,7 +495,7 @@ class sslUtilities: command = acmePath + " --issue -d " + virtualHostName + " -d www." + virtualHostName \ + ' -d ' + aliasDomain + ' -d www.' + aliasDomain\ + ' --cert-file ' + existingCertPath + '/cert.pem' + ' --key-file ' + existingCertPath + '/privkey.pem' \ - + ' --fullchain-file ' + existingCertPath + '/fullchain.pem' + f' --dns {DNS_TO_USE} -k ec-256 --force --server letsencrypt' + + ' --fullchain-file ' + existingCertPath + '/fullchain.pem' + f' --dns {DNS_TO_USE} -k ec-256 --force --server letsencrypt --dnssleep 20' output = subprocess.check_output(shlex.split(command)).decode("utf-8") logging.CyberCPLogFileWriter.writeToFile( diff --git a/plogical/upgrade.py b/plogical/upgrade.py index f8ce2a9d9..481125153 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -38,7 +38,7 @@ class Upgrade: UbuntuPath = '/etc/lsb-release' openEulerPath = '/etc/openEuler-release' FromCloud = 0 - SnappyVersion = '2.25.3' + SnappyVersion = '2.28.1' AdminACL = '{"adminStatus":1, "versionManagement": 1, "createNewUser": 1, "listUsers": 1, "deleteUser":1 , "resellerCenter": 1, ' \ '"changeUserACL": 1, "createWebsite": 1, "modifyWebsite": 1, "suspendWebsite": 1, "deleteWebsite": 1, ' \ @@ -513,7 +513,7 @@ $cfg['Servers'][$i]['LogoutURL'] = 'phpmyadminsignin.php?logout'; command = f'wget -O /usr/local/CyberCP/snappymail_cyberpanel.php https://raw.githubusercontent.com/the-djmaze/snappymail/master/integrations/cyberpanel/install.php' Upgrade.executioner(command, 'verify certificate', 0) - command = f'/usr/local/lsws/lsphp74/bin/php /usr/local/CyberCP/snappymail_cyberpanel.php' + command = f'/usr/local/lsws/lsphp80/bin/php /usr/local/CyberCP/snappymail_cyberpanel.php' Upgrade.executioner(command, 'verify certificate', 0) # labsPath = '/usr/local/lscp/cyberpanel/rainloop/data/_data_/_default_/configs/application.ini' @@ -2161,11 +2161,26 @@ CREATE TABLE `websiteFunctions_backupsv2` (`id` integer AUTO_INCREMENT NOT NULL if os.path.exists(lscpdPath): os.remove(lscpdPath) - lscpdSelection = 'lscpd-0.3.1' - if os.path.exists(Upgrade.UbuntuPath): - result = open(Upgrade.UbuntuPath, 'r').read() - if result.find('22.04') > -1: - lscpdSelection = 'lscpd.0.4.0' + + try: + result = subprocess.run('uname -a', capture_output=True, text=True, shell=True) + + if result.stdout.find('aarch64') == -1: + lscpdSelection = 'lscpd-0.3.1' + if os.path.exists(Upgrade.UbuntuPath): + result = open(Upgrade.UbuntuPath, 'r').read() + if result.find('22.04') > -1: + lscpdSelection = 'lscpd.0.4.0' + else: + lscpdSelection = 'lscpd.aarch64' + + except: + + lscpdSelection = 'lscpd-0.3.1' + if os.path.exists(Upgrade.UbuntuPath): + result = open(Upgrade.UbuntuPath, 'r').read() + if result.find('22.04') > -1: + lscpdSelection = 'lscpd.0.4.0' command = f'cp -f /usr/local/CyberCP/{lscpdSelection} /usr/local/lscp/bin/{lscpdSelection}' Upgrade.executioner(command, command, 0) @@ -3006,7 +3021,7 @@ vmail except: pass - command = 'cp /usr/local/lsws/lsphp74/bin/lsphp %s' % (phpPath) + command = 'cp /usr/local/lsws/lsphp80/bin/lsphp %s' % (phpPath) Upgrade.executioner(command, 0) try: diff --git a/websiteFunctions/static/websiteFunctions/websiteFunctions.js b/websiteFunctions/static/websiteFunctions/websiteFunctions.js index 915766d9b..05f3a7fb3 100755 --- a/websiteFunctions/static/websiteFunctions/websiteFunctions.js +++ b/websiteFunctions/static/websiteFunctions/websiteFunctions.js @@ -301,6 +301,14 @@ app.controller('createWordpress', function ($scope, $http, $timeout, $compile, $ $scope.currentStatus = "Starting creation.."; + var apacheBackend = 0; + + if ($scope.apacheBackend === true) { + apacheBackend = 1; + } else { + apacheBackend = 0 + } + var package = $scope.packageForWebsite; var websiteOwner = $scope.websiteOwner; var WPtitle = $scope.WPtitle; @@ -361,6 +369,7 @@ app.controller('createWordpress', function ($scope, $http, $timeout, $compile, $ package: package, home: home, path: path, + apacheBackend: apacheBackend } var config = { @@ -512,7 +521,7 @@ function DeployToProductionInitial(vall) { var create_staging_domain_check = 0; function create_staging_checkbox_function() { - + try { var checkBox = document.getElementById("Create_Staging_Check"); @@ -530,8 +539,8 @@ function create_staging_checkbox_function() { document.getElementById('Website_Create_Own_Domain').style.display = "block"; create_staging_domain_check = 1; } - }catch (e) { - + } catch (e) { + } // alert(domain_check); diff --git a/websiteFunctions/templates/websiteFunctions/ApacheManager.html b/websiteFunctions/templates/websiteFunctions/ApacheManager.html index c440de014..a5727ebb3 100755 --- a/websiteFunctions/templates/websiteFunctions/ApacheManager.html +++ b/websiteFunctions/templates/websiteFunctions/ApacheManager.html @@ -7,212 +7,331 @@ {% get_current_language as LANGUAGE_CODE %} -
    -
    -

    {% trans "Apache Manager" %}

    -

    {% trans "Switch between Apache (as reverse proxy) and OpenLiteSpeed." %}

    -
    + {% if apachemanager %} +
    +
    +

    {% trans "Apache Manager" %}

    +

    {% trans "Switch between Apache (as reverse proxy) and OpenLiteSpeed." %}

    +
    -
    -
    -

    - {{ domainName }} -

    +
    +
    +

    + {{ domainName }} +

    -
    -
    {{ domainName }} is currently using Apache as Reverse - Proxy to - OpenLiteSpeed.
    - -
    -
    -
    - - -
    -
    -
    -
    Switch to pure - OpenLiteSpeed. - - -
    - -
    - -
    -

    Apache Configurations

    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    - - - -
    -

    PHP-FPM Configurations +

    {{ domainName }} is currently using Apache as Reverse + Proxy to + OpenLiteSpeed.
    - -
    -
    -
    -
    - - -
    -
    -
    -
    - - -
    -
    -
    - -
    -
    -
    - - -
    -
    -
    -
    - - -
    -
    -
    -
    - Tune PHP-FPM Settings. - -

    {{ domainName }} is currently using pure - OpenLiteSpeed, PHP-FPM - is - not used with OpenLiteSpeed, thus tuning is disabled.

    - -

    {{ domainName }} is using LiteSpeed Enterprise. - PHP-FPM is not - used - with LiteSpeed - Enterprise.

    -
    - - - - - - -
    - -

    {{ domainName }} is currently using pure OpenLiteSpeed.

    -
    -
    -
    - - -
    -
    -
    - Switch to OpenLiteSpeed + - Apache - as reverse proxy. - -

    {{ domainName }} is using LiteSpeed Enterprise. When - LiteSpeed - Enterprise is active switching is not required.

    -
    - - -
    + {% else %} + +
    +
    +

    OpenLiteSpeed + Apache as Backend

    +

    Introducing CyberPanel's Revolutionary Hybrid Web Server: OpenLiteSpeed + Apache!

    +

    + Are you seeking the ultimate web hosting solution that combines blazing-fast performance with + unparalleled feature versatility? Look no further! CyberPanel is proud to present its groundbreaking + new feature: the OpenLiteSpeed + Apache hybrid web server. This cutting-edge innovation is designed + to take your website's performance and functionality to unprecedented heights, offering the best of + both worlds in a single, seamless package. +

    + +

    Unmatched Speed with OpenLiteSpeed:

    +

    + Harness the raw power of OpenLiteSpeed, the industry-leading, high-performance web server that + ensures lightning-fast response times and unparalleled efficiency. OpenLiteSpeed is renowned for its + remarkable performance capabilities, enabling your websites to handle a massive influx of traffic + without compromising on speed or reliability. Experience near-instantaneous page loads and swift + data transfers, providing an unbeatable user experience that keeps visitors engaged and coming back + for more. +

    + +

    Unrivaled Features with Apache:

    +

    + While OpenLiteSpeed excels in speed and efficiency, we understand that Apache is favored by many web + developers for its extensive feature set and compatibility. CyberPanel's innovative hybrid approach + allows you to harness the full potential of Apache as a backend, granting access to an impressive + array of modules, scripts, and configurations. Enjoy the freedom to leverage the vast Apache + ecosystem, ensuring seamless integration with a wide range of applications and platforms. +

    + +

    The Perfect Fusion:

    +

    + By merging OpenLiteSpeed and Apache, CyberPanel has created a truly game-changing web server + solution that combines the unparalleled speed of OpenLiteSpeed with the feature-rich environment of + Apache. The result is a synergistic combination that sets new industry standards, empowering you to + elevate your web hosting to unprecedented levels of performance and functionality. +

    + +

    Key Features and Benefits:

    +
      +
    1. Lightning-Fast Performance: Experience unrivaled speed and responsiveness, ensuring your + websites load at blazing speeds, delighting visitors and improving search engine rankings. +
    2. +
    3. Versatile Feature Set: Harness the extensive features of Apache while benefiting from the speed + and efficiency of OpenLiteSpeed, providing unmatched flexibility and compatibility. +
    4. +
    5. Enhanced Security: CyberPanel's OpenLiteSpeed + Apache configuration includes robust security + measures to safeguard your websites and data against potential threats. +
    6. +
    7. Scalability and Stability: Enjoy the ability to handle high traffic loads effortlessly, ensuring + your websites remain stable and responsive under any circumstances. +
    8. +
    9. Easy Management: CyberPanel's user-friendly interface makes it simple to manage and configure + the OpenLiteSpeed + Apache hybrid web server, even for less experienced users. +
    10. +
    11. Cost-Effective Solution: Optimize your web hosting infrastructure with CyberPanel's innovative + hybrid web server, eliminating the need for costly hardware upgrades while boosting overall + performance. +
    12. +
    + +

    + Unleash the true potential of your websites with CyberPanel's OpenLiteSpeed + Apache hybrid web + server. Experience unparalleled speed, efficiency, and versatility in one unified solution. Upgrade + your web hosting experience today and revolutionize the way you deliver content to your audience. + Embrace the future of web hosting with CyberPanel's groundbreaking innovation! +

    +
    +

    + +

    +
    + + + + + + +
    + +
    + {% endif %} {% endblock %} \ No newline at end of file diff --git a/websiteFunctions/templates/websiteFunctions/WPCreate.html b/websiteFunctions/templates/websiteFunctions/WPCreate.html index 3958fc76c..8e3fc9298 100644 --- a/websiteFunctions/templates/websiteFunctions/WPCreate.html +++ b/websiteFunctions/templates/websiteFunctions/WPCreate.html @@ -146,6 +146,25 @@ class="current-pack">{% trans "Invalid Domain (Note: You don't need to add 'http' or 'https')" %}
    +
    + + +
    +
    + +
    +
    +
    + {# My Work #} {#
    #} diff --git a/websiteFunctions/templates/websiteFunctions/createWebsite.html b/websiteFunctions/templates/websiteFunctions/createWebsite.html index 18044b814..c9a7225cd 100755 --- a/websiteFunctions/templates/websiteFunctions/createWebsite.html +++ b/websiteFunctions/templates/websiteFunctions/createWebsite.html @@ -174,8 +174,14 @@
    diff --git a/websiteFunctions/website.py b/websiteFunctions/website.py index 7255b54e5..d3eb0a9c7 100755 --- a/websiteFunctions/website.py +++ b/websiteFunctions/website.py @@ -446,8 +446,10 @@ class WebsiteManager: else: return ACLManager.loadError() - # php = VirtualHost.getPHPString(self.data['PHPVersion']) - # FinalPHPPath = '/usr/local/lsws/lsphp%s/bin/php' % (php) + from managePHP.phpManager import PHPManager + + php = PHPManager.getPHPString(WPobj.owner.phpSelection) + FinalPHPPath = '/usr/local/lsws/lsphp%s/bin/php' % (php) url = "https://platform.cyberpersons.com/CyberpanelAdOns/Adonpermission" data = { @@ -465,11 +467,11 @@ class WebsiteManager: password = randomPassword.generate_pass(10) - command = 'sudo -u %s wp user create autologin %s --role=administrator --user_pass="%s" --path=%s --skip-plugins --skip-themes' % ( + command = f'sudo -u %s {FinalPHPPath} /usr/bin/wp user create autologin %s --role=administrator --user_pass="%s" --path=%s --skip-plugins --skip-themes' % ( WPobj.owner.externalApp, 'autologin@cloudpages.cloud', password, WPobj.path) ProcessUtilities.executioner(command) - command = 'sudo -u %s wp user update autologin --user_pass="%s" --path=%s --skip-plugins --skip-themes' % ( + command = f'sudo -u %s {FinalPHPPath} /usr/bin/wp user update autologin --user_pass="%s" --path=%s --skip-plugins --skip-themes' % ( WPobj.owner.externalApp, password, WPobj.path) ProcessUtilities.executioner(command) @@ -2063,6 +2065,7 @@ class WebsiteManager: extraArgs['websiteOwner'] = data['websiteOwner'] extraArgs['package'] = data['package'] extraArgs['home'] = data['home'] + extraArgs['apacheBackend'] = data['apacheBackend'] try: extraArgs['path'] = data['path'] if extraArgs['path'] == '': @@ -2382,7 +2385,10 @@ class WebsiteManager: for web in websites: for child in web.childdomains_set.all(): - childDomains.append(child) + if child.domain == f'mail.{web.domain}': + pass + else: + childDomains.append(child) pagination = self.getPagination(len(childDomains), recordsToShow) json_data = self.findChildsListJson(childDomains[finalPageNumber:endPageNumber]) @@ -6442,7 +6448,12 @@ StrictHostKeyChecking no phps = PHPManager.findPHPVersions() - proc = httpProc(request, 'websiteFunctions/ApacheManager.html', {'domainName': self.domain, 'phps': phps}) + if ACLManager.CheckForPremFeature('all'): + apachemanager = 1 + else: + apachemanager = 0 + + proc = httpProc(request, 'websiteFunctions/ApacheManager.html', {'domainName': self.domain, 'phps': phps, 'apachemanager':apachemanager}) return proc.render() def saveApacheConfigsToFile(self, userID=None, data=None):