diff --git a/CLScript/CloudLinuxUsers.py b/CLScript/CloudLinuxUsers.py new file mode 100755 index 000000000..ae2b4d8c6 --- /dev/null +++ b/CLScript/CloudLinuxUsers.py @@ -0,0 +1,58 @@ +#!/usr/local/CyberCP/bin/python +import sys +import os.path +import django + +sys.path.append('/usr/local/CyberCP') +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings") +try: + django.setup() +except: + pass +from websiteFunctions.models import Websites +from CLManager.CLPackages import CLPackages +import argparse +import pwd +import json +from CLScript.CLMain import CLMain + + +class CloudLinuxUsers(CLMain): + + def __init__(self): + CLMain.__init__(self) + + def listAll(self, owner=None): + users = [] + + for webs in Websites.objects.all(): + itemPackage = webs.package + clPackage = CLPackages.objects.get(owner=itemPackage) + package = {'name': clPackage.name, 'owner': webs.externalApp} + + user = {'id': pwd.getpwnam(webs.externalApp).pw_uid, + 'username': webs.externalApp, + 'owner': webs.externalApp, + 'domain': webs.domain, + 'package': package, + 'email': webs.adminEmail, + "locale_code": "EN_us" + } + + users.append(user) + + final = {'data': users, 'metadata': self.initialMeta} + print(json.dumps(final)) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='CyberPanel CloudLinux Manager') + parser.add_argument('--owner', help='Owner') + + args = parser.parse_args() + + pi = CloudLinuxUsers() + try: + pi.listAll(args.owner) + except: + pi.listAll() diff --git a/install/installCyberPanel.py b/install/installCyberPanel.py index 03253cb6c..fb7ec92fa 100755 --- a/install/installCyberPanel.py +++ b/install/installCyberPanel.py @@ -189,12 +189,19 @@ class InstallCyberPanel: install.preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - ## only php 72 - command = 'yum install -y lsphp73 lsphp73-json lsphp73-xmlrpc lsphp73-xml lsphp73-soap lsphp73-snmp ' \ + + ## only php 73 + command = 'yum install -y lsphp73 lsphp73-json lsphp73-xmlrpc lsphp73-xml lsphp73-tidy lsphp73-soap lsphp73-snmp ' \ 'lsphp73-recode lsphp73-pspell lsphp73-process lsphp73-pgsql lsphp73-pear lsphp73-pdo lsphp73-opcache ' \ 'lsphp73-odbc lsphp73-mysqlnd lsphp73-mcrypt lsphp73-mbstring lsphp73-ldap lsphp73-intl lsphp73-imap ' \ 'lsphp73-gmp lsphp73-gd lsphp73-enchant lsphp73-dba lsphp73-common lsphp73-bcmath' + ## only php 74 + command = 'yum install -y lsphp74 lsphp74-json lsphp74-xmlrpc lsphp74-xml lsphp74-tidy lsphp74-soap lsphp74-snmp ' \ + 'lsphp74-recode lsphp74-pspell lsphp74-process lsphp74-pgsql lsphp74-pear lsphp74-pdo lsphp74-opcache ' \ + 'lsphp74-odbc lsphp74-mysqlnd lsphp74-mcrypt lsphp74-mbstring lsphp74-ldap lsphp74-intl lsphp74-imap ' \ + 'lsphp74-gmp lsphp74-gd lsphp74-enchant lsphp74-dba lsphp74-common lsphp74-bcmath' + install.preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) def setup_mariadb_repo(self): diff --git a/managePHP/php74.xml b/managePHP/php74.xml new file mode 100755 index 000000000..54676d132 --- /dev/null +++ b/managePHP/php74.xml @@ -0,0 +1,275 @@ + + + php74 + + + lsphp74-debuginfo + Debug information for package lsphp74 + 0 + + + + lsphp74-pecl-igbinary-debuginfo + Debug information for package lsphp74-pecl-igbinary + 0 + + + + lsphp74-pecl-mcrypt-debuginfo + lsphp74 lsphp74-pecl-mcrypt-debuginfo Extension + 0 + + + + lsphp74-bcmath + A extension for PHP applications for using the bcmath library. + 1 + + + + lsphp74-common + Common files for PHP. + 1 + + + + lsphp74-dba + A database abstraction layer extension for PHP applications. + 1 + + + + lsphp74-devel + Files needed for building PHP extensions. + 0 + + + + lsphp74-enchant + Enchant spelling extension for PHP applications. + 1 + + + + lsphp74-gd + A extension for PHP applications for using the gd graphics library. + 1 + + + + lsphp74-gmp + A extension for PHP applications for using the GNU MP library. + 1 + + + + lsphp74-imap + A extension for PHP applications that use IMAP. + 1 + + + + lsphp74-intl + Internationalization extension for PHP applications. + 1 + + + + lsphp74-json + lsphp74 Json PHP Extension + 1 + + + + lsphp74-ldap + A extension for PHP applications that use LDAP. + 1 + + + + lsphp74-mbstring + A extension for PHP applications which need multi-byte string handling. + 1 + + + + lsphp74-mysqlnd + A extension for PHP applications that use MySQL databases. + 1 + + + + lsphp74-odbc + A extension for PHP applications that use ODBC databases. + 1 + + + + lsphp74-opcache + The Zend OPcache. + 1 + + + + lsphp74-pdo + A database access abstraction extension for PHP applications. + 1 + + + + lsphp74-pear + PHP Extension and Application Repository framework. + 1 + + + + lsphp74-pecl-apcu + APC User Cache. + 0 + + + + lsphp74-pecl-apcu-devel + APCu developer files (header). + 0 + + + + lsphp74-pecl-apcu-panel + APCu control panel. + 0 + + + + lsphp74-pecl-igbinary + Replacement for the standard PHP serializer. + 0 + + + + lsphp74-pecl-igbinary-devel + Igbinary developer files (header). + 0 + + + + lsphp74-pecl-mcrypt + lsphp74 lsphp74-pecl-mcrypt Extension. + 0 + + + + lsphp74-pecl-memcache + Extension to work with the Memcached caching daemon. + 0 + + + + lsphp74-pecl-memcached + Extension to work with the Memcached caching daemon. + 0 + + + + lsphp74-pecl-msgpack + API for communicating with MessagePack serialization. + 0 + + + + lsphp74-pecl-msgpack-devel + MessagePack developer files (header). + 0 + + + + lsphp74-pecl-redis + Extension for communicating with the Redis key-value store. + 0 + + + + lsphp74-pgsql + A PostgreSQL database extension for PHP. + 1 + + + + lsphp74-process + extensions for PHP script using system process interfaces. + 1 + + + + lsphp74-pspell + A extension for PHP applications for using pspell interfaces. + 1 + + + + lsphp74-recode + A extension for PHP applications for using the recode library. + 1 + + + + lsphp74-snmp + A extension for PHP applications that query SNMP-managed devices. + 1 + + + + lsphp74-soap + A extension for PHP applications that use the SOAP protocol. + 1 + + + + lsphp74-tidy + Standard PHP extension provides tidy library support. + 1 + + + + lsphp74-xml + Standard PHP extension provides tidy library support. + 1 + + + + lsphp74-xmlrpc + A extension for PHP applications which use the XML-RPC protocol. + 1 + + + + lsphp74-zip + ZIP archive management extension for PHP + 0 + + + + lsphp74-mcrypt + Standard PHP extension provides mcrypt library support. + 1 + + + + lsphp74-dbg + php73-dbg lsphp74-package + 0 + + + + lsphp74-ioncube + ioncube loaders + 0 + + + + lsphp74-pecl-imagick + Extension to create and modify images using ImageMagick + 0 + + + \ No newline at end of file diff --git a/managePHP/phpManager.py b/managePHP/phpManager.py index 53aabf04a..a75034667 100755 --- a/managePHP/phpManager.py +++ b/managePHP/phpManager.py @@ -14,10 +14,10 @@ class PHPManager: distro = ProcessUtilities.decideDistro() if distro == ProcessUtilities.centos: if distro == ProcessUtilities.cent8: - return ['PHP 7.1', 'PHP 7.2', 'PHP 7.3'] - return ['PHP 5.3', 'PHP 5.4', 'PHP 5.5', 'PHP 5.6', 'PHP 7.0', 'PHP 7.1', 'PHP 7.2', 'PHP 7.3'] + return ['PHP 7.1', 'PHP 7.2', 'PHP 7.3', 'PHP 7.4'] + return ['PHP 5.3', 'PHP 5.4', 'PHP 5.5', 'PHP 5.6', 'PHP 7.0', 'PHP 7.1', 'PHP 7.2', 'PHP 7.3', 'PHP 7.4'] else: - return ['PHP 7.0', 'PHP 7.1', 'PHP 7.2', 'PHP 7.3'] + return ['PHP 7.0', 'PHP 7.1', 'PHP 7.2', 'PHP 7.3', 'PHP 7.4'] @staticmethod def getPHPString(phpVersion): @@ -38,6 +38,8 @@ class PHPManager: php = "72" elif phpVersion == "PHP 7.3": php = "73" + elif phpVersion == "PHP 7.4": + php = "74" return php diff --git a/managePHP/ubuntuphp74.xml b/managePHP/ubuntuphp74.xml new file mode 100755 index 000000000..f60add02a --- /dev/null +++ b/managePHP/ubuntuphp74.xml @@ -0,0 +1,125 @@ + + + php74 + + + lsphp73-common + Most of what you need. + 1 + + + + lsphp74-curl + Curl (common web tools) required for PHP + 1 + + + + lsphp74-dbg + Debugging extension + 0 + + + + lsphp74-dev + Development features almost always required. + 1 + + + + lsphp74-imap + Email extensions for PHP. + 1 + + + + lsphp74-intl + Extensions for countries other than the U.S. + 1 + + + + lsphp74-json + PHP extensions for JavaScript Object Notation. + 1 + + + + lsphp74-ldap + PHP extensions for LDAP (directory access protocol) + 1 + + + + lsphp74-modules-source + PHP source modules for virtually everything. Very large. + 0 + + + + lsphp74-mysql + PHP extension for MySQL or MariaDB databases. + 1 + + + + lsphp74-opcache + PHP low-level caching of code. Very important for performance. + 1 + + + + lsphp74-pgsql + A PostgreSQL database extension for PHP. + 0 + + + + lsphp74-pspell + PHP spell checking extensions. + 0 + + + + lsphp74-recode + PHP extension to transform data between different character sets. + 1 + + + + lsphp74-snmp + PHP network management extensions. + 0 + + + + lsphp74-sqlite3 + An extension for PHP applications that use the SQLite v3 features. + 1 + + + + lsphp74-sybase + An extension for PHP applications that use Sybase databases. + 0 + + + + lsphp74-tidy + PHP extensions for manipulating HTML, XHTML and XML documents. + 1 + + + + lsphp74-ioncube + ioncube loaders + 0 + + + + lsphp74-imagick + Extension to create and modify images using ImageMagick + 0 + + + diff --git a/managePHP/views.py b/managePHP/views.py index 08a4391e4..4ef3a6ecc 100755 --- a/managePHP/views.py +++ b/managePHP/views.py @@ -1193,6 +1193,34 @@ def installExtensions(request): phpExtension.save() + if PHP.objects.count() == 8: + + newPHP74 = PHP(phpVers="php74") + newPHP74.save() + + php74Path = '' + + if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + php74Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'php74.xml') + else: + php74Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'ubuntuphp74.xml') + + php74 = ElementTree.parse(php74Path) + + php74Extensions = php74.findall('extension') + + for extension in php74Extensions: + extensionName = extension.find('extensionName').text + extensionDescription = extension.find('extensionDescription').text + status = int(extension.find('status').text) + + phpExtension = installedPackages(phpVers=newPHP74, + extensionName=extensionName, + description=extensionDescription, + status=status) + + phpExtension.save() + return render(request, 'managePHP/installExtensions.html', {'phps': PHPManager.findPHPVersions()}) except KeyError: return redirect(loadLoginPage) diff --git a/plogical/upgrade.py b/plogical/upgrade.py index 195ee242b..02b21d0bf 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -448,7 +448,7 @@ class Upgrade: #### - command = "virtualenv --system-site-packages /usr/local/CyberCP" + command = "virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberCP" Upgrade.executioner(command, 'Setting up VirtualEnv [One]', 1) ## @@ -463,7 +463,7 @@ class Upgrade: command = "pip install --ignore-installed -r /usr/local/CyberCP/requirments.txt" Upgrade.executioner(command, 'CyberPanel requirements', 0) - command = "virtualenv --system-site-packages /usr/local/CyberCP" + command = "virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberCP" Upgrade.executioner(command, 'Setting up VirtualEnv [Two]', 0) Upgrade.stdOut('Virtual enviroment for CyberPanel successfully installed.') @@ -1207,11 +1207,11 @@ class Upgrade: cwd = os.getcwd() os.chdir('/usr/local/CyberCP') - command = '/usr/local/CyberPanel/bin/python2 manage.py makemigrations' + command = '/usr/local/CyberPanel/bin/python manage.py makemigrations' Upgrade.executioner(command, 'python manage.py makemigrations', 0) - command = '/usr/local/CyberPanel/bin/python2 manage.py makemigrations' - Upgrade.executioner(command, '/usr/local/CyberPanel/bin/python2 manage.py migrate', 0) + command = '/usr/local/CyberPanel/bin/python manage.py makemigrations' + Upgrade.executioner(command, '/usr/local/CyberPanel/bin/python manage.py migrate', 0) os.chdir(cwd) @@ -1476,6 +1476,7 @@ CSRF_COOKIE_SECURE = True for items in data: if items.find('DATA_UPLOAD_MAX_MEMORY_SIZE') > -1: DATA_UPLOAD_MAX_MEMORY_SIZE = 0 + writeToFile.writelines("\nDATA_UPLOAD_MAX_MEMORY_SIZE = 52428800\n") if DATA_UPLOAD_MAX_MEMORY_SIZE == 1: writeToFile.writelines("\nDATA_UPLOAD_MAX_MEMORY_SIZE = 52428800\n") @@ -1731,6 +1732,13 @@ CSRF_COOKIE_SECURE = True 'lsphp73-odbc lsphp73-mysqlnd lsphp73-mcrypt lsphp73-mbstring lsphp73-ldap lsphp73-intl lsphp73-imap ' \ 'lsphp73-gmp lsphp73-gd lsphp73-enchant lsphp73-dba lsphp73-common lsphp73-bcmath' Upgrade.executioner(command, 'Install PHP 73, 0') + + command = 'yum install -y lsphp74 lsphp74-json lsphp74-xmlrpc lsphp74-xml lsphp74-tidy lsphp74-soap lsphp74-snmp ' \ + 'lsphp74-recode lsphp74-pspell lsphp74-process lsphp74-pgsql lsphp74-pear lsphp74-pdo lsphp74-opcache ' \ + 'lsphp74-odbc lsphp74-mysqlnd lsphp74-mcrypt lsphp74-mbstring lsphp74-ldap lsphp74-intl lsphp74-imap ' \ + 'lsphp74-gmp lsphp74-gd lsphp74-enchant lsphp74-dba lsphp74-common lsphp74-bcmath' + + Upgrade.executioner(command, 'Install PHP 74, 0') except: command = 'DEBIAN_FRONTEND=noninteractive apt-get -y install ' \ 'lsphp7? lsphp7?-common lsphp7?-curl lsphp7?-dev lsphp7?-imap lsphp7?-intl lsphp7?-json ' \ diff --git a/preUpgrade.sh b/preUpgrade.sh index 8125347df..24c312222 100644 --- a/preUpgrade.sh +++ b/preUpgrade.sh @@ -1,10 +1,10 @@ if [ ! -d "/usr/local/CyberPanel" ]; then - virtualenv --system-site-packages /usr/local/CyberPanel + virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel source /usr/local/CyberPanel/bin/activate rm -rf requirments.txt wget https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/requirments.txt pip install --ignore-installed -r requirments.txt - virtualenv --system-site-packages /usr/local/CyberPanel + virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel fi rm -rf upgrade.py wget https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/plogical/upgrade.py