Merge branch 'v2.0.3' into v2.0.4-dev

This commit is contained in:
Usman Nasir 2020-12-03 12:08:27 +05:00
commit 47cf699dd0
6 changed files with 450 additions and 9 deletions

View File

@ -188,9 +188,11 @@ class InstallCyberPanel:
'lsphp7?-ldap lsphp7?-mysql lsphp7?-opcache lsphp7?-pspell lsphp7?-recode ' \
'lsphp7?-sqlite3 lsphp7?-tidy'
res = os.system(command)
if res != 0:
InstallCyberPanel.stdOut("Failed to install PHP on Ubuntu.", 1, 1)
os.system(command)
command = 'DEBIAN_FRONTEND=noninteractive apt-get -y install lsphp80*'
os.system(command)
elif self.distro == centos:
command = 'yum -y groupinstall lsphp-all'
@ -232,8 +234,11 @@ class InstallCyberPanel:
install.preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR)
command = 'yum install lsphp80* -y'
subprocess.call(command, shell=True)
if self.distro == cent8:
command = 'dnf install lsphp71* lsphp72* lsphp73* lsphp74* --exclude lsphp73-pecl-zip -y'
command = 'dnf install lsphp71* lsphp72* lsphp73* lsphp74* lsphp80* --exclude lsphp73-pecl-zip -y'
subprocess.call(command, shell=True)
def installMySQL(self, mysql):

275
managePHP/php80.xml Executable file
View File

@ -0,0 +1,275 @@
<?xml version="1.0" ?>
<php>
<name>php80</name>
<extension>
<extensionName>lsphp80-debuginfo</extensionName>
<extensionDescription>Debug information for package lsphp80</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pecl-igbinary-debuginfo</extensionName>
<extensionDescription>Debug information for package lsphp80-pecl-igbinary</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pecl-mcrypt-debuginfo</extensionName>
<extensionDescription>lsphp80 lsphp80-pecl-mcrypt-debuginfo Extension</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-bcmath</extensionName>
<extensionDescription>A extension for PHP applications for using the bcmath library.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-common</extensionName>
<extensionDescription>Common files for PHP.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-dba</extensionName>
<extensionDescription>A database abstraction layer extension for PHP applications.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-devel</extensionName>
<extensionDescription>Files needed for building PHP extensions.</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-enchant</extensionName>
<extensionDescription>Enchant spelling extension for PHP applications.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-gd</extensionName>
<extensionDescription>A extension for PHP applications for using the gd graphics library.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-gmp</extensionName>
<extensionDescription>A extension for PHP applications for using the GNU MP library.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-imap</extensionName>
<extensionDescription>A extension for PHP applications that use IMAP.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-intl</extensionName>
<extensionDescription>Internationalization extension for PHP applications.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-json</extensionName>
<extensionDescription>lsphp80 Json PHP Extension</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-ldap</extensionName>
<extensionDescription>A extension for PHP applications that use LDAP.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-mbstring</extensionName>
<extensionDescription>A extension for PHP applications which need multi-byte string handling.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-mysqlnd</extensionName>
<extensionDescription>A extension for PHP applications that use MySQL databases.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-odbc</extensionName>
<extensionDescription>A extension for PHP applications that use ODBC databases.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-opcache</extensionName>
<extensionDescription>The Zend OPcache.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-pdo</extensionName>
<extensionDescription>A database access abstraction extension for PHP applications.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-pear</extensionName>
<extensionDescription>PHP Extension and Application Repository framework.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-pecl-apcu</extensionName>
<extensionDescription>APC User Cache.</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pecl-apcu-devel</extensionName>
<extensionDescription>APCu developer files (header).</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pecl-apcu-panel</extensionName>
<extensionDescription>APCu control panel.</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pecl-igbinary</extensionName>
<extensionDescription>Replacement for the standard PHP serializer.</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pecl-igbinary-devel</extensionName>
<extensionDescription>Igbinary developer files (header).</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pecl-mcrypt</extensionName>
<extensionDescription>lsphp80 lsphp80-pecl-mcrypt Extension.</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pecl-memcache</extensionName>
<extensionDescription>Extension to work with the Memcached caching daemon.</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pecl-memcached</extensionName>
<extensionDescription>Extension to work with the Memcached caching daemon.</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pecl-msgpack</extensionName>
<extensionDescription>API for communicating with MessagePack serialization.</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pecl-msgpack-devel</extensionName>
<extensionDescription>MessagePack developer files (header).</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pecl-redis</extensionName>
<extensionDescription>Extension for communicating with the Redis key-value store.</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pgsql</extensionName>
<extensionDescription>A PostgreSQL database extension for PHP.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-process</extensionName>
<extensionDescription>extensions for PHP script using system process interfaces.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-pspell</extensionName>
<extensionDescription>A extension for PHP applications for using pspell interfaces.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-recode</extensionName>
<extensionDescription>A extension for PHP applications for using the recode library.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-snmp</extensionName>
<extensionDescription>A extension for PHP applications that query SNMP-managed devices.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-soap</extensionName>
<extensionDescription>A extension for PHP applications that use the SOAP protocol.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-tidy</extensionName>
<extensionDescription>Standard PHP extension provides tidy library support.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-xml</extensionName>
<extensionDescription>A module for PHP applications which use XML.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-xmlrpc</extensionName>
<extensionDescription>A extension for PHP applications which use the XML-RPC protocol.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-zip</extensionName>
<extensionDescription>ZIP archive management extension for PHP</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-mcrypt</extensionName>
<extensionDescription>Standard PHP extension provides mcrypt library support.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-dbg</extensionName>
<extensionDescription>php73-dbg lsphp80-package</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-ioncube</extensionName>
<extensionDescription>ioncube loaders</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pecl-imagick</extensionName>
<extensionDescription>Extension to create and modify images using ImageMagick</extensionDescription>
<status>0</status>
</extension>
</php>

View File

@ -13,13 +13,13 @@ class PHPManager:
def findPHPVersions():
distro = ProcessUtilities.decideDistro()
if distro == ProcessUtilities.centos:
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']
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', 'PHP 8.0']
elif distro == ProcessUtilities.cent8:
return ['PHP 7.1','PHP 7.2', 'PHP 7.3', 'PHP 7.4']
return ['PHP 7.1','PHP 7.2', 'PHP 7.3', 'PHP 7.4', 'PHP 8.0']
elif distro == ProcessUtilities.ubuntu20:
return ['PHP 7.2', 'PHP 7.3', 'PHP 7.4']
return ['PHP 7.2', 'PHP 7.3', 'PHP 7.4', 'PHP 8.0']
else:
return ['PHP 7.0', 'PHP 7.1', 'PHP 7.2', 'PHP 7.3', 'PHP 7.4']
return ['PHP 7.0', 'PHP 7.1', 'PHP 7.2', 'PHP 7.3', 'PHP 7.4', 'PHP 8.0']
@staticmethod
def getPHPString(phpVersion):
@ -42,6 +42,8 @@ class PHPManager:
php = "73"
elif phpVersion == "PHP 7.4":
php = "74"
elif phpVersion == "PHP 8.0":
php = "80"
return php

125
managePHP/ubuntuphp80.xml Executable file
View File

@ -0,0 +1,125 @@
<?xml version="1.0" ?>
<php>
<name>php80</name>
<extension>
<extensionName>lsphp80-common</extensionName>
<extensionDescription>Most of what you need.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-curl</extensionName>
<extensionDescription>Curl (common web tools) required for PHP</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-dbg</extensionName>
<extensionDescription>Debugging extension</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-dev</extensionName>
<extensionDescription>Development features almost always required.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-imap</extensionName>
<extensionDescription>Email extensions for PHP.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-intl</extensionName>
<extensionDescription>Extensions for countries other than the U.S.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-json</extensionName>
<extensionDescription>PHP extensions for JavaScript Object Notation.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-ldap</extensionName>
<extensionDescription>PHP extensions for LDAP (directory access protocol)</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-modules-source</extensionName>
<extensionDescription>PHP source modules for virtually everything. Very large.</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-mysql</extensionName>
<extensionDescription>PHP extension for MySQL or MariaDB databases.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-opcache</extensionName>
<extensionDescription>PHP low-level caching of code. Very important for performance.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-pgsql</extensionName>
<extensionDescription>A PostgreSQL database extension for PHP.</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-pspell</extensionName>
<extensionDescription>PHP spell checking extensions.</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-recode</extensionName>
<extensionDescription>PHP extension to transform data between different character sets.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-snmp</extensionName>
<extensionDescription>PHP network management extensions.</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-sqlite3</extensionName>
<extensionDescription>An extension for PHP applications that use the SQLite v3 features.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-sybase</extensionName>
<extensionDescription>An extension for PHP applications that use Sybase databases.</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-tidy</extensionName>
<extensionDescription>PHP extensions for manipulating HTML, XHTML and XML documents.</extensionDescription>
<status>1</status>
</extension>
<extension>
<extensionName>lsphp80-ioncube</extensionName>
<extensionDescription>ioncube loaders</extensionDescription>
<status>0</status>
</extension>
<extension>
<extensionName>lsphp80-imagick</extensionName>
<extensionDescription>Extension to create and modify images using ImageMagick</extensionDescription>
<status>0</status>
</extension>
</php>

View File

@ -1218,6 +1218,34 @@ def installExtensions(request):
status=status)
phpExtension.save()
try:
newPHP80 = PHP(phpVers="php80")
newPHP80.save()
php80Path = ''
if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8:
php80Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'php80.xml')
else:
php80Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'ubuntuphp80.xml')
php80 = ElementTree.parse(php80Path)
php80Extensions = php80.findall('extension')
for extension in php80Extensions:
extensionName = extension.find('extensionName').text
extensionDescription = extension.find('extensionDescription').text
status = int(extension.find('status').text)
phpExtension = installedPackages(phpVers=newPHP80,
extensionName=extensionName,
description=extensionDescription,
status=status)
phpExtension.save()
except:
pass
return render(request, 'managePHP/installExtensions.html', {'phps': PHPManager.findPHPVersions()})
except KeyError:

View File

@ -1923,7 +1923,6 @@ echo $oConfig->Save() ? 'Done' : 'Error';
@staticmethod
def installPHP73():
try:
if Upgrade.installedOutput.find('lsphp73') == -1:
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 ' \
@ -1939,6 +1938,10 @@ echo $oConfig->Save() ? 'Done' : 'Error';
Upgrade.executioner(command, 'Install PHP 74, 0')
if Upgrade.installedOutput.find('lsphp80') == -1:
command = 'yum install lsphp80* -y'
subprocess.call(command, shell=True)
except:
command = 'DEBIAN_FRONTEND=noninteractive apt-get -y install ' \
'lsphp7? lsphp7?-common lsphp7?-curl lsphp7?-dev lsphp7?-imap lsphp7?-intl lsphp7?-json ' \
@ -1946,6 +1949,9 @@ echo $oConfig->Save() ? 'Done' : 'Error';
'lsphp7?-sqlite3 lsphp7?-tidy'
Upgrade.executioner(command, 'Install PHP 73, 0')
command = 'DEBIAN_FRONTEND=noninteractive apt-get -y install lsphp80*'
os.system(command)
CentOSPath = '/etc/redhat-release'
if not os.path.exists(CentOSPath):