HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/managePHP/views.py
# -*- coding: utf-8 -*-

import sys
import importlib

from ApachController.ApacheController import ApacheController

importlib.reload(sys)
from django.shortcuts import render, redirect
from loginSystem.views import loadLoginPage
from .models import PHP, installedPackages, ApachePHP, installedPackagesApache
from django.http import HttpResponse
import json
from plogical.phpUtilities import phpUtilities
import os
from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging
import re
from plogical.virtualHostUtilities import virtualHostUtilities
import shlex
from random import randint
from xml.etree import ElementTree
from plogical.acl import ACLManager
from plogical.processUtilities import ProcessUtilities
from .phpManager import PHPManager
from plogical.httpProc import httpProc


# Create your views here.

def loadPHPHome(request):
    try:
        userID = request.session['userID']

        proc = httpProc(request, 'managePHP/index.html',
                        None, 'admin')
        return proc.render()

    except KeyError:
        return redirect(loadLoginPage)

def installExtensions(request):
    try:

        if PHP.objects.count() == 0:
            for i in range(3, 7):
                php = "php" + str(5) + str(i)
                newPHP = PHP(phpVers=php)
                newPHP.save()

            newPHP = PHP(phpVers="php70")
            newPHP.save()
            newPHP = PHP(phpVers="php71")
            newPHP.save()

            ### Gather php 53 information

            php53 = PHP.objects.get(phpVers="php53")

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-bcmath",
                                             description="A module for PHP applications for using the bcmath library",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-common",
                                             description="Common files for PHP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-dba",
                                             description="A database abstraction layer module for PHP applications",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-enchant",
                                             description="Human Language and Character Encoding Support",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-gd",
                                             description="A module for PHP applications for using the gd graphics library",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-imap",
                                             description="A module for PHP applications that use IMAP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-intl",
                                             description="Internationalization extension for PHP application",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-ioncube-loader",
                                             description="Ioncube Loader",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-ldap",
                                             description="A module for PHP applications that use LDAP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-mbstring",
                                             description="A module for PHP applications which need multi-byte string handling",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-mcrypt",
                                             description="Standard PHP module provides mcrypt library support",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-mysql",
                                             description="A module for PHP applications that use MySQL databases",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-odbc",
                                             description="A module for PHP applications that use ODBC databases",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-pdo",
                                             description="A database access abstraction module for PHP applications",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-pear",
                                             description="PHP Extension and Application Repository framework",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-pecl-apc",
                                             description="APC caches and optimizes PHP intermediate code",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-pgsql",
                                             description="A PostgreSQL database module for PHP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-process",
                                             description="Modules for PHP script using system process interfaces",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-pspell",
                                             description="A module for PHP applications for using pspell interfaces",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-recode",
                                             description="A module for PHP applications for using the recode library",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-snmp",
                                             description="A module for PHP applications that query SNMP-managed devices",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-soap",
                                             description="A module for PHP applications that use the SOAP protocol",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-tidy",
                                             description="Standard PHP module provides tidy library support",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-xml",
                                             description="A module for PHP applications which use XML",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-xmlrpc",
                                             description="A module for PHP applications which use the XML-RPC protocol",
                                             status=1)

            phpExtension.save()

            ## non-active packages


            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-debuginfo",
                                             description="Debug information for package lsphp53",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-lsphp53-devel",
                                             description="Files needed for building PHP extensions",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-mysql56",
                                             description="PHP scripting language for creating dynamic web sites",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-mysqlnd",
                                             description="A module for PHP applications that use MySQL databases",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-opcache",
                                             description="The Zend OPcache",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-pecl-apc-devel",
                                             description="APC developer files (header)",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-pecl-apc-panel",
                                             description="APC control panel",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-sqlite",
                                             description="Extension for the SQLite V2 Embeddable SQL Database Engine",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-xcache",
                                             description="PHP accelerator, optimizer, encoder and dynamic content cacher",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp53-xcache-admin",
                                             description="XCache Administration",
                                             status=0)

            phpExtension.save()

            ### ################ #################

            ##### Gather php 54 information

            ### ################ #################

            php54 = PHP.objects.get(phpVers="php54")

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-bcmath",
                                             description="A module for PHP applications for using the bcmath library",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-common",
                                             description="Common files for PHP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp53-dba",
                                             description="A database abstraction layer module for PHP applications",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp54-enchant",
                                             description="Human Language and Character Encoding Support",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-gd",
                                             description="A module for PHP applications for using the gd graphics library",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-imap",
                                             description="A module for PHP applications that use IMAP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp54-intl",
                                             description="Internationalization extension for PHP application",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-ioncube-loader",
                                             description="Ioncube Loader",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-ldap",
                                             description="A module for PHP applications that use LDAP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-mbstring",
                                             description="A module for PHP applications which need multi-byte string handling",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-mcrypt",
                                             description="Standard PHP module provides mcrypt library support",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-mysql",
                                             description="A module for PHP applications that use MySQL databases",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-odbc",
                                             description="A module for PHP applications that use ODBC databases",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-pdo",
                                             description="A database access abstraction module for PHP applications",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-pear",
                                             description="PHP Extension and Application Repository framework",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-pecl-apc",
                                             description="APC caches and optimizes PHP intermediate code",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php53,
                                             extensionName="lsphp54-pgsql",
                                             description="A PostgreSQL database module for PHP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-process",
                                             description="Modules for PHP script using system process interfaces",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-pspell",
                                             description="A module for PHP applications for using pspell interfaces",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-recode",
                                             description="A module for PHP applications for using the recode library",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-snmp",
                                             description="A module for PHP applications that query SNMP-managed devices",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-soap",
                                             description="A module for PHP applications that use the SOAP protocol",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-tidy",
                                             description="Standard PHP module provides tidy library support",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-xml",
                                             description="A module for PHP applications which use XML",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-xmlrpc",
                                             description="A module for PHP applications which use the XML-RPC protocol",
                                             status=1)

            phpExtension.save()

            ## non-active packages


            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-debuginfo",
                                             description="Debug information for package lsphp54",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-mysql56-debuginfo",
                                             description="Debug information for package lsphp54-mysql56",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-lsphp53-devel",
                                             description="Files needed for building PHP extensions",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-mysql56",
                                             description="PHP scripting language for creating dynamic web sites",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-mysqlnd",
                                             description="A module for PHP applications that use MySQL databases",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-opcache",
                                             description="The Zend OPcache",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-pecl-apc-devel",
                                             description="APC developer files (header)",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-pecl-apc-panel",
                                             description="APC control panel",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-sqlite",
                                             description="Extension for the SQLite V2 Embeddable SQL Database Engine",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-xcache",
                                             description="PHP accelerator, optimizer, encoder and dynamic content cacher",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp54-xcache-admin",
                                             description="XCache Administration",
                                             status=0)

            phpExtension.save()

            ### ################ #################

            ##### Gather php 55 information

            ### ################ #################

            php55 = PHP.objects.get(phpVers="php55")

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-bcmath",
                                             description="A module for PHP applications for using the bcmath library",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-common",
                                             description="Common files for PHP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-dba",
                                             description="A database abstraction layer module for PHP applications",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-enchant",
                                             description="Human Language and Character Encoding Support",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-gd",
                                             description="A module for PHP applications for using the gd graphics library",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-imap",
                                             description="A module for PHP applications that use IMAP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-intl",
                                             description="Internationalization extension for PHP application",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-ioncube-loader",
                                             description="Ioncube Loader",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-ldap",
                                             description="A module for PHP applications that use LDAP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-mbstring",
                                             description="A module for PHP applications which need multi-byte string handling",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-mcrypt",
                                             description="Standard PHP module provides mcrypt library support",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-mysql",
                                             description="A module for PHP applications that use MySQL databases",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-odbc",
                                             description="A module for PHP applications that use ODBC databases",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-pdo",
                                             description="A database access abstraction module for PHP applications",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-pear",
                                             description="PHP Extension and Application Repository framework",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-pgsql",
                                             description="A PostgreSQL database module for PHP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-process",
                                             description="Modules for PHP script using system process interfaces",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-pspell",
                                             description="A module for PHP applications for using pspell interfaces",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-recode",
                                             description="A module for PHP applications for using the recode library",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-snmp",
                                             description="A module for PHP applications that query SNMP-managed devices",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-soap",
                                             description="A module for PHP applications that use the SOAP protocol",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-tidy",
                                             description="Standard PHP module provides tidy library support",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-xml",
                                             description="A module for PHP applications which use XML",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-xmlrpc",
                                             description="A module for PHP applications which use the XML-RPC protocol",
                                             status=1)

            phpExtension.save()

            ## non-active packages


            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-debuginfo",
                                             description="Debug information for package lsphp55",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-mysql56-debuginfo",
                                             description="Debug information for package lsphp55-mysql56",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-lsphp53-devel",
                                             description="Files needed for building PHP extensions",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php54,
                                             extensionName="lsphp55-mysql56",
                                             description="PHP scripting language for creating dynamic web sites",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-mysqlnd",
                                             description="A module for PHP applications that use MySQL databases",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-opcache",
                                             description="The Zend OPcache",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-sqlite",
                                             description="Extension for the SQLite V2 Embeddable SQL Database Engine",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-xcache",
                                             description="PHP accelerator, optimizer, encoder and dynamic content cacher",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp55-xcache-admin",
                                             description="XCache Administration",
                                             status=0)

            phpExtension.save()

            ### ################ #################

            ##### Gather php 56 information

            ### ################ #################

            php56 = PHP.objects.get(phpVers="php56")

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-bcmath",
                                             description="A module for PHP applications for using the bcmath library",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-common",
                                             description="Common files for PHP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-dba",
                                             description="A database abstraction layer module for PHP applications",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-enchant",
                                             description="Human Language and Character Encoding Support",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-gd",
                                             description="A module for PHP applications for using the gd graphics library",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-gmp",
                                             description="A module for PHP applications for using the GNU MP library",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-imap",
                                             description="A module for PHP applications that use IMAP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-intl",
                                             description="Internationalization extension for PHP application",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-ioncube-loader",
                                             description="Ioncube Loader",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-ldap",
                                             description="A module for PHP applications that use LDAP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-mbstring",
                                             description="A module for PHP applications which need multi-byte string handling",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-mcrypt",
                                             description="Standard PHP module provides mcrypt library support",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-mysql",
                                             description="A module for PHP applications that use MySQL databases",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-odbc",
                                             description="A module for PHP applications that use ODBC databases",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-pdo",
                                             description="A database access abstraction module for PHP applications",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php55,
                                             extensionName="lsphp56-pear",
                                             description="PHP Extension and Application Repository framework",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-pgsql",
                                             description="A PostgreSQL database module for PHP",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-process",
                                             description="Modules for PHP script using system process interfaces",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-pspell",
                                             description="A module for PHP applications for using pspell interfaces",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-recode",
                                             description="A module for PHP applications for using the recode library",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-snmp",
                                             description="A module for PHP applications that query SNMP-managed devices",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-soap",
                                             description="A module for PHP applications that use the SOAP protocol",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-tidy",
                                             description="Standard PHP module provides tidy library support",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-xml",
                                             description="A module for PHP applications which use XML",
                                             status=1)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-xmlrpc",
                                             description="A module for PHP applications which use the XML-RPC protocol",
                                             status=1)

            phpExtension.save()


            ## non-active packages


            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-debuginfo",
                                             description="Debug information for package lsphp56",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-mysql56-debuginfo",
                                             description="Debug information for package lsphp56-mysql56",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-devel",
                                             description="Files needed for building PHP extensions",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-mysql56",
                                             description="PHP scripting language for creating dynamic web sites",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-mysqlnd",
                                             description="A module for PHP applications that use MySQL databases",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-opcache",
                                             description="The Zend OPcache",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-sqlite",
                                             description="Extension for the SQLite V2 Embeddable SQL Database Engine",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-xcache",
                                             description="PHP accelerator, optimizer, encoder and dynamic content cacher",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-xcache-admin",
                                             description="XCache Administration",
                                             status=0)

            phpExtension.save()

            phpExtension = installedPackages(phpVers=php56,
                                             extensionName="lsphp56-pecl-imagick",
                                             description="Extension to create and modify images using ImageMagick",
                                             status=0)

            phpExtension.save()

            ### ################ #################

            ##### Gather php 70 information

            ### ################ #################

            phpVersion = PHP.objects.get(phpVers="php70")

            phpPath = ''

            if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8:
                phpPath = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'php70.xml')
            else:
                phpPath = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'ubuntuphp70.xml')

            php = ElementTree.parse(phpPath)

            phpExtensions = php.findall('extension')

            for extension in phpExtensions:
                extensionName = extension.find('extensionName').text
                extensionDescription = extension.find('extensionDescription').text
                status = int(extension.find('status').text)

                phpExtension = installedPackages(phpVers=phpVersion,
                                                 extensionName=extensionName,
                                                 description=extensionDescription,
                                                 status=status)

                phpExtension.save()

            ### ################ #################

            ##### Gather php 71 information

            ### ################ #################

            phpVersion = PHP.objects.get(phpVers="php71")

            phpPath = ''

            if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8:
                phpPath = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'php71.xml')
            else:
                phpPath = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'ubuntuphp71.xml')

            php = ElementTree.parse(phpPath)

            phpExtensions = php.findall('extension')

            for extension in phpExtensions:
                extensionName = extension.find('extensionName').text
                extensionDescription = extension.find('extensionDescription').text
                status = int(extension.find('status').text)

                phpExtension = installedPackages(phpVers=phpVersion,
                                                 extensionName=extensionName,
                                                 description=extensionDescription,
                                                 status=status)

                phpExtension.save()

        if PHP.objects.count() == 6:

            newPHP72 = PHP(phpVers="php72")
            newPHP72.save()

            php72Path = ''

            if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8:
                php72Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'php72.xml')
            else:
                php72Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'ubuntuphp72.xml')

            php72 = ElementTree.parse(php72Path)

            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()

        if PHP.objects.count() == 7:

            newPHP73 = PHP(phpVers="php73")
            newPHP73.save()

            php73Path = ''

            if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8:
                php73Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'php73.xml')
            else:
                php73Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'ubuntuphp73.xml')

            php73 = ElementTree.parse(php73Path)

            php73Extensions = php73.findall('extension')

            for extension in php73Extensions:
                extensionName = extension.find('extensionName').text
                extensionDescription = extension.find('extensionDescription').text
                status = int(extension.find('status').text)

                phpExtension = installedPackages(phpVers=newPHP73,
                                                 extensionName=extensionName,
                                                 description=extensionDescription,
                                                 status=status)

                phpExtension.save()

        if PHP.objects.count() == 8:

            newPHP74 = PHP(phpVers="php74")
            newPHP74.save()

            php74Path = ''

            if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8:
                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()
        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
        
        try:
            newPHP81 = PHP(phpVers="php81")
            newPHP81.save()

            php81Path = ''

            if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8:
                php81Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'php81.xml')
            else:
                php81Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'ubuntuphp81.xml')

            php81 = ElementTree.parse(php81Path)

            php81Extensions = php81.findall('extension')

            for extension in php81Extensions:
                extensionName = extension.find('extensionName').text
                extensionDescription = extension.find('extensionDescription').text
                status = int(extension.find('status').text)

                phpExtension = installedPackages(phpVers=newPHP81,
                                                 extensionName=extensionName,
                                                 description=extensionDescription,
                                                 status=status)

                phpExtension.save()
        except:
            pass

        apache = ApacheController.checkIfApacheInstalled()

        if apache:
            if request.GET.get('apache', None) == None:
                phps = PHPManager.findPHPVersions()
            else:
                phps = PHPManager.findApachePHPVersions()
        else:
            phps = PHPManager.findPHPVersions()

        proc = httpProc(request, 'managePHP/installExtensions.html',
                        {'phps': phps, 'apache': apache}, 'admin')
        return proc.render()

    except KeyError:
        return redirect(loadLoginPage)

def getExtensionsInformation(request):
    try:
        userID = request.session['userID']
        currentACL = ACLManager.loadedACL(userID)

        if currentACL['admin'] == 1:
            pass
        else:
            return ACLManager.loadErrorJson('fetchStatus', 0)

        try:
            if request.method == 'POST':

                data = json.loads(request.body)
                phpVers = data['phpSelection']

                if request.GET.get('apache', None) == None:
                    phpVers = f"lsphp{PHPManager.getPHPString(phpVers)}"
                else:
                    if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8:
                        phpVers = f"php{PHPManager.getPHPString(phpVers)}"
                    else:
                        phpVers = phpVers.replace(' ', '').lower()

                    if os.path.exists(ProcessUtilities.debugPath):
                        logging.writeToFile(f'PHP Version apache {phpVers}')

                # php = PHP.objects.get(phpVers=phpVers)

                if os.path.exists('/etc/lsb-release'):
                    command = f'apt list | grep {phpVers}'
                else:
                    command = 'yum list installed'
                    resultInstalled = ProcessUtilities.outputExecutioner(command)

                    command = f'yum list | grep ^{phpVers} | xargs -n3 | column -t'

                result = ProcessUtilities.outputExecutioner(command).split('\n')

                #records = php.installedpackages_set.all()

                json_data = "["
                checker = 0
                counter = 1

                for items in result:
                    if os.path.exists('/etc/lsb-release'):
                        if items.find(phpVers) > -1:
                            if items.find('installed') == -1:
                                status = "Not-Installed"
                            else:
                                status = "Installed"

                            dic = {'id': counter,
                                   'phpVers': phpVers,
                                   'extensionName': items.split('/')[0],
                                   'description': items,
                                   'status': status
                                   }

                            if checker == 0:
                                json_data = json_data + json.dumps(dic)
                                checker = 1
                            else:
                                json_data = json_data + ',' + json.dumps(dic)
                            counter += 1
                    else:
                        ResultExt = items.split(' ')
                        extesnion = ResultExt[0]

                        if extesnion.find(phpVers) > -1:
                            if resultInstalled.find(extesnion) == -1:
                                status = "Not-Installed"
                            else:
                                status = "Installed"

                            dic = {'id': counter,
                                   'phpVers': phpVers,
                                   'extensionName': extesnion,
                                   'description': items,
                                   'status': status
                                   }


                            if checker == 0:
                                json_data = json_data + json.dumps(dic)
                                checker = 1
                            else:
                                json_data = json_data + ',' + json.dumps(dic)
                            counter += 1

                json_data = json_data + ']'
                final_json = json.dumps({'fetchStatus': 1, 'error_message': "None", "data": json_data})
                return HttpResponse(final_json)

        except BaseException as msg:
            final_dic = {'fetchStatus': 0, 'error_message': str(msg)}
            final_json = json.dumps(final_dic)

            return HttpResponse(final_json)
    except KeyError:
        final_dic = {'fetchStatus': 0, 'error_message': "Not Logged In, please refresh the page or login again."}
        final_json = json.dumps(final_dic)
        return HttpResponse(final_json)

def submitExtensionRequest(request):
    try:
        userID = request.session['userID']
        currentACL = ACLManager.loadedACL(userID)

        if currentACL['admin'] == 1:
            pass
        else:
            return ACLManager.loadErrorJson('extensionRequestStatus', 0)
        try:
            if request.method == 'POST':

                data = json.loads(request.body)
                extensionName = data['extensionName']
                type = data['type']

                if type == "install":
                    execPath = "/usr/local/CyberCP/bin/python " + virtualHostUtilities.cyberPanel + "/plogical/phpUtilities.py"
                    execPath = execPath + " installPHPExtension --extension " + extensionName
                else:
                    execPath = "/usr/local/CyberCP/bin/python " + virtualHostUtilities.cyberPanel + "/plogical/phpUtilities.py"
                    execPath = execPath + " unInstallPHPExtension --extension " + extensionName

                ProcessUtilities.popenExecutioner(execPath)

                final_json = json.dumps({'extensionRequestStatus': 1, 'error_message': "None"})
                return HttpResponse(final_json)

        except BaseException as msg:
            final_dic = {'extensionRequestStatus': 0, 'error_message': str(msg)}
            final_json = json.dumps(final_dic)

            return HttpResponse(final_json)
    except KeyError:
        final_dic = {'extensionRequestStatus': 0,
                     'error_message': "Not Logged In, please refresh the page or login again."}
        final_json = json.dumps(final_dic)
        return HttpResponse(final_json)

def getRequestStatus(request):
    try:
        userID = request.session['userID']
        currentACL = ACLManager.loadedACL(userID)

        if currentACL['admin'] == 1:
            pass
        else:
            return ACLManager.loadErrorJson('extensionRequestStatus', 0)

        try:
            if request.method == 'POST':
                data = json.loads(request.body)
                size = data['size']
                extensionName = data['extensionName']

                checkCommand = ''

                if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8:
                    checkCommand = 'yum list installed'
                    checkCommand = shlex.split(checkCommand)
                else:
                    checkCommand = 'dpkg --list'
                    checkCommand = shlex.split(checkCommand)

                command = "sudo cat " + phpUtilities.installLogPath
                requestStatus = ProcessUtilities.outputExecutioner(command)

                if requestStatus.find('No such') > -1:
                    requestStatus = ""

                requestStatusSize = len(requestStatus)

                if requestStatus.find("PHP Extension Installed") > -1:

                    command = "sudo rm -f " + phpUtilities.installLogPath
                    ProcessUtilities.executioner(command)

                    # if ProcessUtilities.outputExecutioner(checkCommand).find(extensionName) > -1:
                    #     ext = installedPackages.objects.get(extensionName=extensionName)
                    #     ext.status = 1
                    #     ext.save()
                    # else:
                    #     ext = installedPackages.objects.get(extensionName=extensionName)
                    #     ext.status = 0
                    #     ext.save()

                    final_json = json.dumps({'finished': 1, 'extensionRequestStatus': 1,
                                             'error_message': "None",
                                             'requestStatus': requestStatus,
                                             'size': requestStatusSize})
                    return HttpResponse(final_json)
                elif requestStatus.find("Can not be installed") > -1:

                    command = "sudo rm -f " + phpUtilities.installLogPath
                    ProcessUtilities.executioner(command)

                    # if ProcessUtilities.outputExecutioner(checkCommand).find(extensionName) > -1:
                    #     ext = installedPackages.objects.get(extensionName=extensionName)
                    #     ext.status = 1
                    #     ext.save()
                    #
                    # else:
                    #     ext = installedPackages.objects.get(extensionName=extensionName)
                    #     ext.status = 0
                    #     ext.save()

                    final_json = json.dumps({'finished': 1, 'extensionRequestStatus': 1,
                                             'error_message': "None",
                                             'requestStatus': requestStatus,
                                             'size': requestStatusSize})
                    return HttpResponse(final_json)
                elif requestStatus.find("Can not un-install Extension") > -1:

                    command = "sudo rm -f " + phpUtilities.installLogPath
                    ProcessUtilities.executioner(command)

                    # if ProcessUtilities.outputExecutioner(checkCommand).find(extensionName) > -1:
                    #     ext = installedPackages.objects.get(extensionName=extensionName)
                    #     ext.status = 1
                    #     ext.save()
                    #
                    # else:
                    #     ext = installedPackages.objects.get(extensionName=extensionName)
                    #     ext.status = 0
                    #     ext.save()

                    final_json = json.dumps({'finished': 1, 'extensionRequestStatus': 1,
                                             'error_message': "None",
                                             'requestStatus': requestStatus,
                                             'size': requestStatusSize})
                    return HttpResponse(final_json)
                elif requestStatus.find("PHP Extension Removed") > -1:

                    command = "sudo rm -f " + phpUtilities.installLogPath
                    ProcessUtilities.executioner(command)

                    # ext = installedPackages.objects.get(extensionName=extensionName)
                    # ext.status = 0
                    # ext.save()

                    final_json = json.dumps({'finished': 1, 'extensionRequestStatus': 1,
                                             'error_message': "None",
                                             'requestStatus': requestStatus,
                                             'size': requestStatusSize})
                    return HttpResponse(final_json)
                else:
                    final_json = json.dumps({'finished': 0, 'extensionRequestStatus': 1,
                                             'error_message': "None",
                                             'requestStatus': requestStatus,
                                             'size': requestStatusSize})
                    return HttpResponse(final_json)



        except BaseException as msg:
            final_dic = {'extensionRequestStatus': 0, 'error_message': str(msg)}
            final_json = json.dumps(final_dic)
            return HttpResponse(final_json)
    except KeyError:
        final_dic = {'extensionRequestStatus': 0,
                     'error_message': "Not Logged In, please refresh the page or login again."}
        final_json = json.dumps(final_dic)
        return HttpResponse(final_json)

def getRequestStatusApache(request):
    try:
        userID = request.session['userID']
        currentACL = ACLManager.loadedACL(userID)

        if currentACL['admin'] == 1:
            pass
        else:
            return ACLManager.loadErrorJson('extensionRequestStatus', 0)

        try:
            if request.method == 'POST':
                data = json.loads(request.body)
                size = data['size']
                extensionName = data['extensionName']

                checkCommand = ''

                if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8:
                    checkCommand = 'yum list installed'
                    checkCommand = shlex.split(checkCommand)
                else:
                    checkCommand = 'dpkg --list'
                    checkCommand = shlex.split(checkCommand)

                command = "sudo cat " + phpUtilities.installLogPath
                requestStatus = ProcessUtilities.outputExecutioner(command)

                requestStatusSize = len(requestStatus)

                if requestStatus.find("PHP Extension Installed") > -1:

                    command = "sudo rm -f " + phpUtilities.installLogPath
                    ProcessUtilities.executioner(command)

                    if ProcessUtilities.outputExecutioner(checkCommand).find(extensionName) > -1:
                        ext = installedPackagesApache.objects.get(extensionName=extensionName)
                        ext.status = 1
                        ext.save()
                    else:
                        ext = installedPackagesApache.objects.get(extensionName=extensionName)
                        ext.status = 0
                        ext.save()

                    final_json = json.dumps({'status': 1, 'finished': 1, 'extensionRequestStatus': 1,
                                             'error_message': "None",
                                             'requestStatus': requestStatus,
                                             'size': requestStatusSize})
                    return HttpResponse(final_json)
                elif requestStatus.find("Can not be installed") > -1:

                    command = "sudo rm -f " + phpUtilities.installLogPath
                    ProcessUtilities.executioner(command)

                    if ProcessUtilities.outputExecutioner(checkCommand).find(extensionName) > -1:
                        ext = installedPackagesApache.objects.get(extensionName=extensionName)
                        ext.status = 1
                        ext.save()

                    else:
                        ext = installedPackagesApache.objects.get(extensionName=extensionName)
                        ext.status = 0
                        ext.save()

                    final_json = json.dumps({'status': 1, 'finished': 1, 'extensionRequestStatus': 1,
                                             'error_message': "None",
                                             'requestStatus': requestStatus,
                                             'size': requestStatusSize})
                    return HttpResponse(final_json)
                elif requestStatus.find("Can not un-install Extension") > -1:

                    command = "sudo rm -f " + phpUtilities.installLogPath
                    ProcessUtilities.executioner(command)

                    if ProcessUtilities.outputExecutioner(checkCommand).find(extensionName) > -1:
                        ext = installedPackagesApache.objects.get(extensionName=extensionName)
                        ext.status = 1
                        ext.save()

                    else:
                        ext = installedPackages.objects.get(extensionName=extensionName)
                        ext.status = 0
                        ext.save()

                    final_json = json.dumps({'status': 1, 'finished': 1, 'extensionRequestStatus': 1,
                                             'error_message': "None",
                                             'requestStatus': requestStatus,
                                             'size': requestStatusSize})
                    return HttpResponse(final_json)
                elif requestStatus.find("PHP Extension Removed") > -1:

                    command = "sudo rm -f " + phpUtilities.installLogPath
                    ProcessUtilities.executioner(command)

                    ext = installedPackagesApache.objects.get(extensionName=extensionName)
                    ext.status = 0
                    ext.save()

                    final_json = json.dumps({'status': 1, 'finished': 1, 'extensionRequestStatus': 1,
                                             'error_message': "None",
                                             'requestStatus': requestStatus,
                                             'size': requestStatusSize})
                    return HttpResponse(final_json)
                else:
                    final_json = json.dumps({'status': 1, 'finished': 0, 'extensionRequestStatus': 1,
                                             'error_message': "None",
                                             'requestStatus': requestStatus,
                                             'size': requestStatusSize})
                    return HttpResponse(final_json)



        except BaseException as msg:
            logging.writeToFile(str(msg) + ' [getRequestStatusApache]')
            final_dic = {'status': 0, 'extensionRequestStatus': 0, 'error_message': str(msg)}
            final_json = json.dumps(final_dic)
            return HttpResponse(final_json)
    except KeyError as msg:
        logging.writeToFile(str(msg) + ' [getRequestStatusApache]')
        final_dic = {'status': 0, 'extensionRequestStatus': 0,
                     'error_message': "Not Logged In, please refresh the page or login again."}
        final_json = json.dumps(final_dic)
        return HttpResponse(final_json)

def editPHPConfigs(request):
    try:
        apache = ApacheController.checkIfApacheInstalled()

        if apache:
            if request.GET.get('apache', None) == None:
                phps = PHPManager.findPHPVersions()
            else:
                phps = PHPManager.findApachePHPVersions()
        else:
            phps = PHPManager.findPHPVersions()

        proc = httpProc(request, 'managePHP/editPHPConfig.html',
                        {'phps': phps, 'apache': apache}, 'admin')
        return proc.render()

    except KeyError:
        return redirect(loadLoginPage)

def getCurrentPHPConfig(request):
    try:
        userID = request.session['userID']
        currentACL = ACLManager.loadedACL(userID)

        if currentACL['admin'] == 1:
            pass
        else:
            return ACLManager.loadErrorJson('fetchStatus', 0)
        try:
            if request.method == 'POST':

                data = json.loads(request.body)
                phpVers = data['phpSelection']

                if os.path.exists(ProcessUtilities.debugPath):
                    logging.writeToFile(f"apache value {request.GET.get('apache', None)}")

                from ApachController.ApacheVhosts import ApacheVhost
                path = ApacheVhost.DecidePHPPathforManager(request.GET.get('apache', None), phpVers)

                allow_url_fopen = "0"
                display_errors = "0"
                file_uploads = "0"
                allow_url_include = "0"
                memory_limit = ""
                max_execution_time = ""
                upload_max_filesize = ""
                max_input_time = ""

                command = "sudo cat " + path
                data = ProcessUtilities.outputExecutioner(command).split('\n')

                for items in data:
                    if items.find("allow_url_fopen") > -1 and items.find("=") > -1:
                        if items.find("On") > -1:
                            allow_url_fopen = "1"
                    if items.find("display_errors") > -1 and items.find("=") > -1:
                        if items.find("On") > -1:
                            display_errors = "1"
                    if items.find("file_uploads") > -1 and items.find("=") > -1:
                        if items.find("On") > -1:
                            file_uploads = "1"
                    if items.find("allow_url_include") > -1 and items.find("=") > -1:
                        if items.find("On") > -1:
                            allow_url_include = "1"
                    if items.find("memory_limit") > -1 and items.find("=") > -1:
                        memory_limit = re.findall(r"[A-Za-z0-9_]+", items)[1]
                    if items.find("max_execution_time") > -1 and items.find("=") > -1:
                        max_execution_time = re.findall(r"[A-Za-z0-9_]+", items)[1]
                    if items.find("upload_max_filesize") > -1 and items.find("=") > -1:
                        upload_max_filesize = re.findall(r"[A-Za-z0-9_]+", items)[1]
                    if items.find("max_input_time") > -1 and items.find("=") > -1:
                        max_input_time = re.findall(r"[A-Za-z0-9_]+", items)[1]
                    if items.find("post_max_size") > -1 and items.find("=") > -1:
                        post_max_size = re.findall(r"[A-Za-z0-9_]+", items)[1]

                final_dic = {'fetchStatus': 1,
                             'allow_url_fopen': allow_url_fopen,
                             'display_errors': display_errors,
                             'file_uploads': file_uploads,
                             'allow_url_include': allow_url_include,
                             'memory_limit': memory_limit,
                             'max_execution_time': max_execution_time,
                             'upload_max_filesize': upload_max_filesize,
                             'max_input_time': max_input_time,
                             'post_max_size': post_max_size}

                final_json = json.dumps(final_dic)

                return HttpResponse(final_json)

        except BaseException as msg:
            final_dic = {'fetchStatus': 0, 'error_message': str(msg)}
            final_json = json.dumps(final_dic)

            return HttpResponse(final_json)

        proc = httpProc(request, 'managePHP/editPHPConfig.html',
                        None, 'admin')
        return proc.render()
    except KeyError:
        return redirect(loadLoginPage)

def savePHPConfigBasic(request):
    try:
        userID = request.session['userID']
        currentACL = ACLManager.loadedACL(userID)

        if currentACL['admin'] == 1:
            pass
        else:
            return ACLManager.loadErrorJson('saveStatus', 0)
        try:
            if request.method == 'POST':

                data = json.loads(request.body)
                phpVers = data['phpSelection']
                allow_url_fopen = data['allow_url_fopen']
                display_errors = data['display_errors']
                file_uploads = data['file_uploads']
                allow_url_include = data['allow_url_include']
                memory_limit = data['memory_limit']
                max_execution_time = data['max_execution_time']
                upload_max_filesize = data['upload_max_filesize']
                max_input_time = data['max_input_time']
                post_max_size = data['post_max_size']

                if allow_url_fopen == True:
                    allow_url_fopen = "allow_url_fopen = On"
                else:
                    allow_url_fopen = "allow_url_fopen = Off"

                if display_errors == True:
                    display_errors = "display_errors = On"
                else:
                    display_errors = "display_errors = Off"

                if file_uploads == True:
                    file_uploads = "file_uploads = On"
                else:
                    file_uploads = "file_uploads = Off"

                if allow_url_include == True:
                    allow_url_include = "allow_url_include = On"
                else:
                    allow_url_include = "allow_url_include = Off"

                #phpVers = "php" + PHPManager.getPHPString(phpVers)

                if request.GET.get('apache', None) == None:
                    apache = 0
                else:
                    apache = 1

                ##

                execPath = "/usr/local/CyberCP/bin/python " + virtualHostUtilities.cyberPanel + "/plogical/phpUtilities.py"
                execPath = execPath + " savePHPConfigBasic --phpVers '" + phpVers + "' --allow_url_fopen '" + allow_url_fopen +\
                           "' --display_errors '" + display_errors + "' --file_uploads '" + file_uploads + "' --allow_url_include '" \
                           + allow_url_include + "' --memory_limit " + memory_limit + " --max_execution_time " + \
                           max_execution_time + " --upload_max_filesize " + upload_max_filesize \
                           + " --max_input_time " + max_input_time + " --post_max_size " + post_max_size + f" --apache {str(apache)}"

                output = ProcessUtilities.outputExecutioner(execPath)

                if output.find("1,None") > -1:
                    data_ret = {'saveStatus': 1}
                    final_json = json.dumps(data_ret)
                    return HttpResponse(final_json)
                else:
                    final_dic = {'saveStatus': 0, 'error_message': output}
                    final_json = json.dumps(final_dic)
                    return HttpResponse(final_json)

        except BaseException as msg:
            final_dic = {'saveStatus': 0, 'error_message': str(msg)}
            final_json = json.dumps(final_dic)
            return HttpResponse(final_json)
    except KeyError:
        return redirect(loadLoginPage)


#### Get Advance PHP Configs

def getCurrentAdvancedPHPConfig(request):
    try:
        userID = request.session['userID']
        currentACL = ACLManager.loadedACL(userID)

        if currentACL['admin'] == 1:
            pass
        else:
            return ACLManager.loadErrorJson('fetchStatus', 0)
        try:
            if request.method == 'POST':

                data = json.loads(request.body)
                phpVers = data['phpSelection']

                if os.path.exists(ProcessUtilities.debugPath):
                    logging.writeToFile(f"apache value advanced config {request.GET.get('apache', None)}")

                from ApachController.ApacheVhosts import ApacheVhost
                path = ApacheVhost.DecidePHPPathforManager(request.GET.get('apache', None), phpVers)

                command = "sudo cat " + path
                configData = ProcessUtilities.outputExecutioner(command)

                status = {"fetchStatus": 1, "configData": configData}
                final_json = json.dumps(status)
                return HttpResponse(final_json)


        except BaseException as msg:
            final_dic = {'fetchStatus': 0, 'error_message': str(msg)}
            final_json = json.dumps(final_dic)
            return HttpResponse(final_json)
    except KeyError:
        return redirect(loadLoginPage)


def savePHPConfigAdvance(request):
    try:
        userID = request.session['userID']
        currentACL = ACLManager.loadedACL(userID)

        if currentACL['admin'] == 1:
            pass
        else:
            return ACLManager.loadErrorJson('saveStatus', 0)

        if request.method == 'POST':
            try:
                data = json.loads(request.body)
                phpVers = data['phpSelection']
                phpVersS = phpVers

                from ApachController.ApacheVhosts import ApacheVhost
                path = ApacheVhost.DecidePHPPathforManager(request.GET.get('apache', None), phpVers)

                tempPath = "/home/cyberpanel/" + str(randint(1000, 9999))

                vhost = open(tempPath, "w")
                vhost.write(data['configData'])
                vhost.close()

                execPath = "/usr/local/CyberCP/bin/python " + virtualHostUtilities.cyberPanel + "/plogical/phpUtilities.py"
                execPath = execPath + " savePHPConfigAdvance --phpVers " + path + " --tempPath " + tempPath

                output = ProcessUtilities.outputExecutioner(execPath)

                if output.find("1,None") > -1:
                    status = {"saveStatus": 1, "configData": data['configData']}
                    final_json = json.dumps(status)
                    return HttpResponse(final_json)
                else:
                    data_ret = {'saveStatus': 0, 'error_message': output}
                    json_data = json.dumps(data_ret)
                    return HttpResponse(json_data)

            except BaseException as msg:
                data_ret = {'saveStatus': 0, 'error_message': str(msg)}
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

    except KeyError as msg:
        logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[saveConfigsToFile]")
        return HttpResponse("Not Logged in as admin")

## Restart PHP

def restartPHP(request):
    try:
        userID = request.session['userID']
        currentACL = ACLManager.loadedACL(userID)

        if currentACL['admin'] == 1:
            pass
        else:
            return ACLManager.loadErrorJson('status', 0)

        command = 'killall lsphp'
        ProcessUtilities.executioner(command)

        status = {"status": 1}
        final_json = json.dumps(status)
        return HttpResponse(final_json)

    except BaseException as msg:
        final_dic = {'status': 0, 'error_message': str(msg)}
        final_json = json.dumps(final_dic)
        return HttpResponse(final_json)