PHP 7.2 Support.

This commit is contained in:
usmannasir
2018-03-04 13:37:58 +05:00
parent a0633eddc2
commit 5e362b704d
12 changed files with 315 additions and 119 deletions

View File

@@ -12,6 +12,8 @@ import time
class preFlightsChecks:
cyberPanelMirror = "mirror.cyberpanel.net"
def __init__(self,rootPath,ip,path,cwd,cyberPanelPath):
self.ipAddr = ip
self.path = path

257
managePHP/php72.xml Normal file
View File

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

View File

@@ -54,6 +54,7 @@
<option>PHP 5.6</option>
<option>PHP 7.0</option>
<option>PHP 7.1</option>
<option>PHP 7.2</option>
</select>
</div>
<img ng-hide="loadingPHP" src="{% static 'images/loading.gif' %}">
@@ -187,6 +188,7 @@
<option>PHP 5.6</option>
<option>PHP 7.0</option>
<option>PHP 7.1</option>
<option>PHP 7.2</option>
</select>
</div>
<img ng-hide="loadingPHP" src="{% static 'images/loading.gif' %}">

View File

@@ -34,6 +34,7 @@
<option>PHP 5.6</option>
<option>PHP 7.0</option>
<option>PHP 7.1</option>
<option>PHP 7.2</option>
</select>
</div>
</div>

View File

@@ -21,6 +21,7 @@ import subprocess
import shlex
import plogical.CyberCPLogFileWriter as logging
from random import randint
from xml.etree import ElementTree
# Create your views here.
@@ -28,6 +29,11 @@ def loadPHPHome(request):
try:
val = request.session['userID']
admin = Administrator.objects.get(pk=val)
if admin.type == 3:
return HttpResponse("You don't have enough priviliges to access this page.")
return render(request,'managePHP/index.html')
except KeyError:
return redirect(loadLoginPage)
@@ -1725,6 +1731,30 @@ def installExtensions(request):
phpExtension.save()
if PHP.objects.count() == 6:
newPHP72 = PHP(phpVers="php72")
newPHP72.save()
extensionDetailsPath = os.path.join('/usr','local','CyberCP','managePHP','php72.xml')
php72 = ElementTree.parse(extensionDetailsPath)
php72Extensions = php72.findall('extension')
for extension in php72Extensions:
extensionName = extension.find('extensionName').text
extensionDescription = extension.find('extensionDescription').text
status = int(extension.find('status').text)
phpExtension = installedPackages(phpVers=newPHP72,
extensionName=extensionName,
description=extensionDescription,
status=status)
phpExtension.save()
return render(request,'managePHP/installExtensions.html')
except KeyError:
return redirect(loadLoginPage)
@@ -1752,6 +1782,8 @@ def getExtensionsInformation(request):
phpVers = "php70"
elif phpVers == "PHP 7.1":
phpVers = "php71"
elif phpVers == "PHP 7.2":
phpVers = "php72"
php = PHP.objects.get(phpVers=phpVers)
@@ -1965,6 +1997,8 @@ def getCurrentPHPConfig(request):
phpVers = "php70"
elif phpVers == "PHP 7.1":
phpVers = "php71"
elif phpVers == "PHP 7.2":
phpVers = "php72"
path = "/usr/local/lsws/ls"+phpVers+"/etc/php.ini"
@@ -2085,6 +2119,8 @@ def savePHPConfigBasic(request):
phpVers = "php70"
elif phpVers == "PHP 7.1":
phpVers = "php71"
elif phpVers == "PHP 7.2":
phpVers = "php72"
##
@@ -2140,6 +2176,8 @@ def getCurrentAdvancedPHPConfig(request):
phpVers = "php70"
elif phpVers == "PHP 7.1":
phpVers = "php71"
elif phpVers == "PHP 7.2":
phpVers = "php72"
path = "/usr/local/lsws/ls"+phpVers+"/etc/php.ini"
@@ -2180,6 +2218,8 @@ def savePHPConfigAdvance(request):
phpVers = "php70"
elif phpVers == "PHP 7.1":
phpVers = "php71"
elif phpVers == "PHP 7.2":
phpVers = "php72"
path = "/usr/local/lsws/ls" + phpVers + "/etc/php.ini"

View File

@@ -1,86 +0,0 @@
<?xml version="1.0" ?>
<metaFile>
<masterDomain>cybertronproject.com</masterDomain>
<phpSelection>PHP 7.1</phpSelection>
<externalApp>cybertr</externalApp>
<ChildDomains>
<domain>
<domain>usman.com</domain>
<phpSelection>PHP 7.0</phpSelection>
<path>/home/cybertronproject.com/public_html/usman.com</path>
</domain>
</ChildDomains>
<Databases>
<database>
<dbName>LdH8eQ5j4T7lUw</dbName>
<dbUser>LdH8eQ5j4T7lUw</dbUser>
<password>*C8FF97B66E672C39EA314B6F1FF1991950AA4D94</password>
</database>
</Databases>
<dnsrecords>
<dnsrecord>
<type>SOA</type>
<name>cybertronproject.com</name>
<content>ns1.cybertronproject.com hostmaster.cybertronproject.com 1 10800 3600 604800 3600</content>
<priority>0</priority>
</dnsrecord>
<dnsrecord>
<type>NS</type>
<name>cybertronproject.com</name>
<content>ns1.cybertronproject.com</content>
<priority>0</priority>
</dnsrecord>
<dnsrecord>
<type>A</type>
<name>ns1.cybertronproject.com</name>
<content>139.59.214.173</content>
<priority>0</priority>
</dnsrecord>
<dnsrecord>
<type>NS</type>
<name>cybertronproject.com</name>
<content>ns2.cybertronproject.com</content>
<priority>0</priority>
</dnsrecord>
<dnsrecord>
<type>A</type>
<name>ns2.cybertronproject.com</name>
<content>139.59.214.173</content>
<priority>0</priority>
</dnsrecord>
<dnsrecord>
<type>A</type>
<name>cybertronproject.com</name>
<content>139.59.214.173</content>
<priority>0</priority>
</dnsrecord>
<dnsrecord>
<type>A</type>
<name>mail.cybertronproject.com</name>
<content>139.59.214.173</content>
<priority>0</priority>
</dnsrecord>
<dnsrecord>
<type>MX</type>
<name>cybertronproject.com</name>
<content>mail.cybertronproject.com</content>
<priority>10</priority>
</dnsrecord>
<dnsrecord>
<type>SPF</type>
<name>cybertronproject.com</name>
<content>v=spf1 a mx ip4:139.59.214.173 ?all</content>
<priority>0</priority>
</dnsrecord>
</dnsrecords>
<emails>
<emailAccount>
<email>rehan@cybertronproject.com</email>
<password>rehan</password>
</emailAccount>
<emailAccount>
<email>usman@cybertronproject.com</email>
<password>9xvps</password>
</emailAccount>
</emails>
</metaFile>

View File

@@ -1,29 +0,0 @@
import subprocess
import time
class CyberCPLogFileWriter:
fileName = "/home/cyberpanel.net/public_html/hello.txt"
@staticmethod
def writeToFile(message):
try:
file = open(CyberCPLogFileWriter.fileName,'a')
file.writelines("[" + time.strftime(
"%I-%M-%S-%a-%b-%Y") + "] "+ message + "\n")
file.close()
except IOError,msg:
return "Can not write to error file."
@staticmethod
def readLastNFiles(numberOfLines,fileName):
try:
lastFewLines = subprocess.check_output(["tail", "-n",str(numberOfLines),fileName])
return lastFewLines
except subprocess.CalledProcessError,msg:
return "File was empty"
CyberCPLogFileWriter.writeToFile("Hello")

View File

@@ -31,7 +31,7 @@ class virtualHostUtilities:
## adding user
command = "adduser "+virtualHostUser + " -M"
command = "adduser "+virtualHostUser + " -M -d " + path
cmd = shlex.split(command)
@@ -213,6 +213,8 @@ class virtualHostUtilities:
php = "70"
elif phpVersion == "PHP 7.1":
php = "71"
elif phpVersion == "PHP 7.2":
php = "72"
extprocessor = "extprocessor "+virtualHostUser+" {\n"
type = " type lsapi\n"
@@ -498,6 +500,8 @@ class virtualHostUtilities:
php = "70"
elif phpVersion == "PHP 7.1":
php = "71"
elif phpVersion == "PHP 7.2":
php = "72"
extprocessor = "extprocessor " + virtualHostUser+sockRandomPath + " {\n"
@@ -695,6 +699,8 @@ class virtualHostUtilities:
finalphp = 70
elif phpVersion == "PHP 7.1":
finalphp = 71
elif phpVersion == "PHP 7.2":
finalphp = 72
writeDataToFile = open(vhFile,"w")

View File

@@ -74,6 +74,7 @@
<option>PHP 5.6</option>
<option>PHP 7.0</option>
<option>PHP 7.1</option>
<option>PHP 7.2</option>
</select>
</div>
</div>

View File

@@ -80,6 +80,7 @@
<option>PHP 5.6</option>
<option>PHP 7.0</option>
<option>PHP 7.1</option>
<option>PHP 7.2</option>
</select>
</div>
</div>

View File

@@ -284,7 +284,7 @@
<img src="{% static 'images/icons/repeat.png' %}">
</a>
<a href="{% url 'listCron' %}" target="_blank" title="{% trans 'List Domains' %}" title="{% trans 'Add new Cron Job' %}">
<span style='font-size: 21px;font-family: "Times New Roman", Times, serif; padding-left: 2%'>{% trans "Cron Job" %}</span>
<span style='font-size: 21px;font-family: "Times New Roman", Times, serif; padding-left: 2%'>{% trans "Cron Jobs" %}</span>
</a>
</div>
@@ -329,6 +329,7 @@
<option>PHP 5.6</option>
<option>PHP 7.0</option>
<option>PHP 7.1</option>
<option>PHP 7.2</option>
</select>
</div>
</div>
@@ -456,6 +457,7 @@
<option>PHP 5.6</option>
<option>PHP 7.0</option>
<option>PHP 7.1</option>
<option>PHP 7.2</option>
</select>
</td>
<td><button type="button" ng-click="issueSSL(record.childDomain,record.path)" class="btn ra-100 btn-purple">{% trans "Issue" %}</button></td>
@@ -719,6 +721,7 @@
<option>PHP 5.6</option>
<option>PHP 7.0</option>
<option>PHP 7.1</option>
<option>PHP 7.2</option>
</select>
</div>

View File

@@ -891,8 +891,6 @@ def saveWebsiteChanges(request):
execPath = execPath + " changePHP --phpVersion '" + phpVersion + "' --path " + completePathToConfigFile
output = subprocess.check_output(shlex.split(execPath))
if output.find("1,None") > -1: