Files
CyberPanel/install/installCyberPanel.py

1226 lines
50 KiB
Python
Raw Normal View History

2017-10-24 19:16:36 +05:00
import shutil
import subprocess
import os
import pexpect
from mysqlUtilities import mysqlUtilities
2018-10-26 16:25:13 -04:00
import install
2017-10-24 19:16:36 +05:00
import installLog as logging
import shlex
import randomPassword
import errno
import time
import sys
2017-10-24 19:16:36 +05:00
2018-10-26 14:24:28 -04:00
#distros
centos=0
ubuntu=1
2017-10-24 19:16:36 +05:00
class InstallCyberPanel:
mysql_Root_password = ""
mysqlPassword = ""
2018-10-26 14:24:28 -04:00
def __init__(self,rootPath,cwd,distro):
2017-10-24 19:16:36 +05:00
self.server_root_path = rootPath
self.cwd = cwd
2018-10-26 14:24:28 -04:00
self.distro=distro
2017-10-24 19:16:36 +05:00
@staticmethod
def stdOut(message, log = 0, exit = 0, code = os.EX_OK):
install.preFlightsChecks.stdOut(message, log, exit, code)
2017-10-24 19:16:36 +05:00
def installLiteSpeed(self):
try:
count = 0
while (1):
2018-10-26 14:24:28 -04:00
if self.distro == ubuntu:
command = "apt-get -y install openlitespeed"
2018-10-26 14:24:28 -04:00
else:
command = 'yum install -y openlitespeed'
cmd = shlex.split(command)
2017-10-24 19:16:36 +05:00
res = subprocess.call(cmd)
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to install OpenLiteSpeed, trying again, try number: " + str(count))
2017-10-24 19:16:36 +05:00
if count == 3:
logging.InstallLog.writeToFile("Failed to install OpenLiteSpeed, exiting installer! [installLiteSpeed]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
2017-10-24 19:16:36 +05:00
else:
logging.InstallLog.writeToFile("OpenLiteSpeed successfully installed!")
InstallCyberPanel.stdOut("OpenLiteSpeed successfully installed!")
2017-10-24 19:16:36 +05:00
break
except OSError, msg:
logging.InstallLog.writeToFile(str(msg) + " [installLiteSpeed]")
return 0
except ValueError, msg:
logging.InstallLog.writeToFile(str(msg) + " [installLiteSpeed]")
return 0
return 1
def reStartLiteSpeed(self):
try:
cmd = []
count = 0
2017-10-24 19:16:36 +05:00
while(1):
cmd.append(self.server_root_path+"bin/lswsctrl")
cmd.append("restart")
2017-10-24 19:16:36 +05:00
res = subprocess.call(cmd)
2017-10-24 19:16:36 +05:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to restart OpenLiteSpeed, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile("Failed to restart OpenLiteSpeed, you can do this manually later using: systemctl restart lsws! [reStartLiteSpeed]")
break
else:
logging.InstallLog.writeToFile("OpenLiteSpeed successfully restarted!")
InstallCyberPanel.stdOut("OpenLiteSpeed successfully restarted!")
break
2017-10-24 19:16:36 +05:00
except OSError, msg:
logging.InstallLog.writeToFile(str(msg) + " [reStartLiteSpeed]")
return 0
except ValueError, msg:
logging.InstallLog.writeToFile(str(msg) + " [reStartLiteSpeed]")
return 0
return 1
2017-12-09 22:30:10 +05:00
def fix_ols_configs(self):
try:
InstallCyberPanel.stdOut("Fixing OpenLiteSpeed configurations!")
logging.InstallLog.writeToFile("Fixing OpenLiteSpeed configurations!")
2017-12-09 22:30:10 +05:00
## cache module settings
2017-12-09 22:30:10 +05:00
cacheStart = "module cache {\n"
2018-07-05 15:22:48 +05:00
ls_enabled = "ls_enabled 1\n"
2017-12-09 22:30:10 +05:00
enableCache = "enableCache 0\n"
qsCache = "qsCache 1\n"
reqCookieCache = "reqCookieCache 1\n"
respCookieCache = "respCookieCache 1\n"
ignoreReqCacheCtrl = "ignoreReqCacheCtrl 1\n"
ignoreRespCacheCtrl = "ignoreRespCacheCtrl 0\n"
enablePrivateCache = "enablePrivateCache 0\n"
privateExpireInSeconds = "privateExpireInSeconds 1000\n"
expireInSeconds = "expireInSeconds 1000\n"
storagePath = "storagePath cachedata\n"
checkPrivateCache = "checkPrivateCache 1\n"
checkPublicCache = "checkPublicCache 1\n"
cacheEnd = "}\n"
writeDataToFile = open(self.server_root_path+"conf/httpd_config.conf", 'a')
writeDataToFile.writelines(cacheStart)
2018-07-05 15:22:48 +05:00
writeDataToFile.writelines(ls_enabled)
2017-12-09 22:30:10 +05:00
writeDataToFile.writelines(enableCache)
writeDataToFile.writelines(qsCache)
writeDataToFile.writelines(reqCookieCache)
writeDataToFile.writelines(respCookieCache)
writeDataToFile.writelines(ignoreReqCacheCtrl)
writeDataToFile.writelines(ignoreRespCacheCtrl)
writeDataToFile.writelines(enablePrivateCache)
writeDataToFile.writelines(privateExpireInSeconds)
writeDataToFile.writelines(expireInSeconds)
writeDataToFile.writelines(storagePath)
writeDataToFile.writelines(checkPrivateCache)
writeDataToFile.writelines(checkPublicCache)
writeDataToFile.writelines(cacheEnd)
writeDataToFile.writelines("\n")
writeDataToFile.writelines("\n")
writeDataToFile.close()
## remove example virtual host
data = open(self.server_root_path+"conf/httpd_config.conf",'r').readlines()
writeDataToFile = open(self.server_root_path + "conf/httpd_config.conf", 'w')
for items in data:
if items.find("map") > -1 and items.find("Example") > -1:
continue
else:
writeDataToFile.writelines(items)
writeDataToFile.close()
InstallCyberPanel.stdOut("OpenLiteSpeed Configurations fixed!")
logging.InstallLog.writeToFile("OpenLiteSpeed Configurations fixed!")
2017-12-09 22:30:10 +05:00
except IOError, msg:
logging.InstallLog.writeToFile(str(msg) + " [fix_ols_configs]")
return 0
return self.reStartLiteSpeed()
2017-10-24 19:16:36 +05:00
def changePortTo80(self):
try:
InstallCyberPanel.stdOut("Changing default port to 80..")
logging.InstallLog.writeToFile("Changing default port to 80..")
2017-10-24 19:16:36 +05:00
data = open(self.server_root_path+"conf/httpd_config.conf").readlines()
writeDataToFile = open(self.server_root_path+"conf/httpd_config.conf", 'w')
for items in data:
if (items.find("*:8088") > -1):
writeDataToFile.writelines(items.replace("*:8088","*:80"))
else:
writeDataToFile.writelines(items)
writeDataToFile.close()
InstallCyberPanel.stdOut("Default port is now 80 for OpenLiteSpeed!")
logging.InstallLog.writeToFile("Default port is now 80 for OpenLiteSpeed!")
2017-10-24 19:16:36 +05:00
except IOError, msg:
logging.InstallLog.writeToFile(str(msg) + " [changePortTo80]")
return 0
return self.reStartLiteSpeed()
2017-12-09 22:30:10 +05:00
def setupFileManager(self):
2017-10-24 19:16:36 +05:00
try:
logging.InstallLog.writeToFile("Setting up Filemanager files..")
InstallCyberPanel.stdOut("Setting up Filemanager files..")
2017-10-24 19:16:36 +05:00
2017-12-09 22:30:10 +05:00
os.chdir(self.cwd)
2017-10-24 19:16:36 +05:00
2017-12-09 22:30:10 +05:00
fileManagerPath = self.server_root_path+"Example/html/FileManager"
shutil.copytree("FileManager",fileManagerPath)
## remove unnecessary files
fileManagerPath = self.server_root_path + "Example/html/"
shutil.rmtree(fileManagerPath+"protected")
shutil.rmtree(fileManagerPath+"blocked")
os.remove(fileManagerPath+"phpinfo.php")
os.remove(fileManagerPath + "upload.html")
os.remove(fileManagerPath + "upload.php")
logging.InstallLog.writeToFile("Filemanager files are set!")
InstallCyberPanel.stdOut("Filemanager files are set!")
2017-12-09 22:30:10 +05:00
except OSError, msg:
logging.InstallLog.writeToFile(str(msg) + " [setupFileManager]")
2017-10-24 19:16:36 +05:00
return 0
2017-12-09 22:30:10 +05:00
except ValueError, msg:
logging.InstallLog.writeToFile(str(msg) + " [setupFileManager]")
2017-10-24 19:16:36 +05:00
return 0
return 1
def installAllPHPVersions(self):
try:
count = 0
while (1):
2018-10-26 14:24:28 -04:00
if self.distro == ubuntu:
command = 'apt-get -y install lsphp*'
else:
command = 'yum -y groupinstall lsphp-all'
cmd = shlex.split(command)
2017-10-24 19:16:36 +05:00
res = subprocess.call(cmd)
2017-10-24 19:16:36 +05:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to install LiteSpeed PHPs, trying again, try number: " + str(count))
2017-10-24 19:16:36 +05:00
if count == 3:
logging.InstallLog.writeToFile("Failed to install LiteSpeed PHPs, exiting installer! [installAllPHPVersions]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
2017-10-24 19:16:36 +05:00
else:
logging.InstallLog.writeToFile("LiteSpeed PHPs successfully installed!")
InstallCyberPanel.stdOut("LiteSpeed PHPs successfully installed!")
2017-10-24 19:16:36 +05:00
## only php 71
2018-10-26 14:24:28 -04:00
if self.distro == centos:
count = 0
while(1):
command = 'yum install lsphp71 lsphp71-json lsphp71-xmlrpc lsphp71-xml lsphp71-tidy lsphp71-soap lsphp71-snmp lsphp71-recode lsphp71-pspell lsphp71-process lsphp71-pgsql lsphp71-pear lsphp71-pdo lsphp71-opcache lsphp71-odbc lsphp71-mysqlnd lsphp71-mcrypt lsphp71-mbstring lsphp71-ldap lsphp71-intl lsphp71-imap lsphp71-gmp lsphp71-gd lsphp71-enchant lsphp71-dba lsphp71-common lsphp71-bcmath -y'
cmd = shlex.split(command)
res = subprocess.call(cmd)
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to install LiteSpeed PHP 7.1, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile("Failed to install LiteSpeed PHP 7.1, exiting installer! [installAllPHPVersions]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
os._exit(0)
else:
logging.InstallLog.writeToFile("LiteSpeed PHP 7.1 successfully installed!")
InstallCyberPanel.stdOut("LiteSpeed PHP 7.1 successfully installed!")
break
## only php 72
count = 0
while (1):
command = 'yum install -y lsphp72 lsphp72-json lsphp72-xmlrpc lsphp72-xml lsphp72-tidy lsphp72-soap lsphp72-snmp lsphp72-recode lsphp72-pspell lsphp72-process lsphp72-pgsql lsphp72-pear lsphp72-pdo lsphp72-opcache lsphp72-odbc lsphp72-mysqlnd lsphp72-mcrypt lsphp72-mbstring lsphp72-ldap lsphp72-intl lsphp72-imap lsphp72-gmp lsphp72-gd lsphp72-enchant lsphp72-dba lsphp72-common lsphp72-bcmath'
cmd = shlex.split(command)
res = subprocess.call(cmd)
if res == 1:
count = count + 1
InstallCyberPanel.stdOut(
"Trying to install LiteSpeed PHP 7.1, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile(
"Failed to install LiteSpeed PHP 7.1, exiting installer! [installAllPHPVersions]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
os._exit(0)
else:
logging.InstallLog.writeToFile("LiteSpeed PHP 7.1 successfully installed!")
InstallCyberPanel.stdOut("LiteSpeed PHP 7.1 successfully installed!")
break
## break for outer loop
2017-10-24 19:16:36 +05:00
break
except OSError, msg:
logging.InstallLog.writeToFile(str(msg) + " [installAllPHPVersion]")
return 0
except ValueError, msg:
logging.InstallLog.writeToFile(str(msg) + " [installAllPHPVersion]")
return 0
return 1
def setup_mariadb_repo(self):
2018-10-26 14:24:28 -04:00
if self.distro == ubuntu:
# Only needed if the repo is broken or we need the latest version.
#command = "apt-get -y install software-properties-common"
#command = "apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8"
#command = "add-apt-repository 'deb [arch=amd64] http://mirror.zol.co.zw/mariadb/repo/10.3/ubuntu bionic main'"
return
2017-10-24 19:16:36 +05:00
2018-10-26 14:24:28 -04:00
try:
logging.InstallLog.writeToFile("Setting up MariaDB Repo..")
InstallCyberPanel.stdOut("Setting up MariaDB Repo..")
2017-10-24 19:16:36 +05:00
os.chdir(self.cwd)
2017-10-24 19:16:36 +05:00
shutil.copy("mysql/MariaDB.repo","/etc/yum.repos.d/MariaDB.repo")
logging.InstallLog.writeToFile("MariaDB repo set!")
InstallCyberPanel.stdOut("MariaDB repo set!")
2017-10-24 19:16:36 +05:00
except OSError, msg:
logging.InstallLog.writeToFile(str(msg) + " [setup_mariadb_repo]")
return 0
except BaseException, msg:
logging.InstallLog.writeToFile(str(msg) + " [setup_mariadb_repo]")
return 0
def installMySQL(self, mysql):
2017-10-24 19:16:36 +05:00
try:
############## Install mariadb ######################
count = 0
while (1):
2018-10-26 14:24:28 -04:00
if self.distro == ubuntu:
command = "apt-get -y install mariadb-server"
else:
command = 'yum -y install mariadb-server'
cmd = shlex.split(command)
2017-10-24 19:16:36 +05:00
res = subprocess.call(cmd)
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to install MariaDB, trying again, try number: " + str(count))
2017-10-24 19:16:36 +05:00
if count == 3:
logging.InstallLog.writeToFile("Failed to install MariaDB, exiting installer! [installMySQL]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
2017-10-24 19:16:36 +05:00
else:
logging.InstallLog.writeToFile("MariaDB successfully installed!")
InstallCyberPanel.stdOut("MariaDB successfully installed!")
2017-10-24 19:16:36 +05:00
break
## Fix configurations if two MYSQL are used
2017-10-24 19:16:36 +05:00
if mysql == 'Two':
logging.InstallLog.writeToFile("Setting up MariaDB configurations!")
InstallCyberPanel.stdOut("Setting up MariaDB configurations!")
pathConf = "/etc/my.cnf"
pathServiceFile = "/etc/systemd/system/mysqld@.service"
2017-10-24 19:16:36 +05:00
if os.path.exists(pathConf):
os.remove(pathConf)
2017-10-24 19:16:36 +05:00
if os.path.exists(pathServiceFile):
os.remove(pathServiceFile)
2017-10-24 19:16:36 +05:00
os.chdir(self.cwd)
2017-10-24 19:16:36 +05:00
shutil.copy("mysql/my.cnf", pathConf)
shutil.copy("mysql/mysqld@.service", pathServiceFile)
logging.InstallLog.writeToFile("MariaDB configurations set!")
InstallCyberPanel.stdOut("MariaDB configurations set!")
##
count = 0
while (1):
command = "mysql_install_db --user=mysql --datadir=/var/lib/mysql1"
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
InstallCyberPanel.stdOut(
"Trying to create data directories for second MariaDB instance, trying again, try number: " + str(
count))
if count == 3:
logging.InstallLog.writeToFile(
"Failed to create data directories for second MariaDB instance, exiting installer! [installMySQL]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
else:
logging.InstallLog.writeToFile("Data directories created for second MariaDB instance!")
InstallCyberPanel.stdOut("Data directories created for second MariaDB instance!")
break
2017-10-24 19:16:36 +05:00
##
count = 0
while (1):
command = "systemctl start mysqld@1"
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
InstallCyberPanel.stdOut(
"Trying to start first MariaDB instance, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile(
"Failed to start first MariaDB instance, exiting installer! [installMySQL]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
else:
logging.InstallLog.writeToFile("First MariaDB instance successfully started!")
InstallCyberPanel.stdOut("First MariaDB instance successfully started!")
break
2017-10-24 19:16:36 +05:00
count = 0
while (1):
command = "systemctl enable mysqld@1"
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
InstallCyberPanel.stdOut(
"Trying to enable first MariaDB instance to start and system restart, trying again, try number: " + str(
count))
if count == 3:
logging.InstallLog.writeToFile(
"Failed to enable first MariaDB instance to run at system restart, exiting installer! [installMySQL]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
else:
logging.InstallLog.writeToFile("First MariaDB instance successfully enabled at system restart!")
InstallCyberPanel.stdOut("First MariaDB instance successfully enabled at system restart!")
break
2017-10-24 19:16:36 +05:00
except OSError, msg:
logging.InstallLog.writeToFile(str(msg) + " [installMySQL]")
return 0
except ValueError, msg:
logging.InstallLog.writeToFile(str(msg) + " [installMySQL]")
return 0
############## Start mariadb ######################
self.startMariaDB()
############## Enable mariadb at system startup ######################
try:
count = 0
2017-10-24 19:16:36 +05:00
while(1):
2017-10-24 19:16:36 +05:00
2018-10-26 16:25:13 -04:00
if self.distro == ubuntu:
command = "systemctl enable mariadb"
else:
command = "systemctl enable mysql"
res = subprocess.call(shlex.split(command))
2017-10-24 19:16:36 +05:00
if res == 1:
count = count + 1
2018-10-26 16:25:13 -04:00
InstallCyberPanel.stdOut("Trying to enable MariaDB instance to start at system restart, "
"trying again, try number: " + str(count))
if count == 3:
2018-10-26 14:24:28 -04:00
logging.InstallLog.writeToFile("Failed to enable MariaDB instance to run at system restart, "
"you can do this later using systemctl enable mysql! [installMySQL]")
break
else:
logging.InstallLog.writeToFile("MariaDB instance successfully enabled at system restart!")
InstallCyberPanel.stdOut("MariaDB instance successfully enabled at system restart!")
break
2017-10-24 19:16:36 +05:00
except OSError, msg:
logging.InstallLog.writeToFile(str(msg) + " Could not add mariadb to startup [installMySQL]")
return 0
except ValueError, msg:
logging.InstallLog.writeToFile(str(msg) + " Could not add mariadb to startup [installMySQL]")
return 0
return 1
def changeMYSQLRootPassword(self):
try:
logging.InstallLog.writeToFile("Changing MariaDB root password..")
InstallCyberPanel.stdOut("Changing MariaDB root password..")
2017-10-24 19:16:36 +05:00
expectation = "Enter password:"
securemysql = pexpect.spawn("mysql -u root -p", timeout=5)
securemysql.expect(expectation)
securemysql.sendline("")
expectation = "clear the current input statement."
securemysql.expect(expectation)
securemysql.sendline("use mysql;")
expectation = "Database changed"
securemysql.expect(expectation)
securemysql.sendline("update user set password=PASSWORD('"+InstallCyberPanel.mysql_Root_password+"') where User='root';")
expectation = "Query OK"
securemysql.expect(expectation)
securemysql.sendline("flush privileges;")
expectation = "Query OK"
securemysql.expect(expectation)
securemysql.sendline("quit")
securemysql.wait()
logging.InstallLog.writeToFile("MariaDB root password changed!")
InstallCyberPanel.stdOut("MariaDB root password changed!")
2017-10-24 19:16:36 +05:00
except pexpect.EOF, msg:
logging.InstallLog.writeToFile(str(msg) + " Exception EOF [changeMYSQLRootPassword]")
except pexpect.TIMEOUT, msg:
print securemysql.before
logging.InstallLog.writeToFile(str(msg) + " Exception EOF [changeMYSQLRootPassword]")
except BaseException, msg:
logging.InstallLog.writeToFile(str(msg) + "[changeMYSQLRootPassword]")
return 0
def changeMYSQLRootPasswordCyberPanel(self, mysql):
2017-10-24 19:16:36 +05:00
try:
logging.InstallLog.writeToFile("Changing CyberPanel MariaDB root password..")
InstallCyberPanel.stdOut("Changing CyberPanel MariaDB root password..")
2017-10-24 19:16:36 +05:00
expectation = "Enter password:"
if mysql == 'Two':
securemysql = pexpect.spawn("mysql --host=127.0.0.1 --port=3307 -u root -p", timeout=5)
else:
securemysql = pexpect.spawn("mysql -u root -p", timeout=5)
2017-10-24 19:16:36 +05:00
securemysql.expect(expectation)
securemysql.sendline("")
expectation = "clear the current input statement."
securemysql.expect(expectation)
securemysql.sendline("use mysql;")
expectation = "Database changed"
securemysql.expect(expectation)
securemysql.sendline("update user set password=PASSWORD('"+InstallCyberPanel.mysql_Root_password+"') where User='root';")
expectation = "Query OK"
securemysql.expect(expectation)
securemysql.sendline("flush privileges;")
expectation = "Query OK"
securemysql.expect(expectation)
securemysql.sendline("quit")
securemysql.wait()
logging.InstallLog.writeToFile("CyberPanel MariaDB root password changed!")
InstallCyberPanel.stdOut("CyberPanel MariaDB root password changed!")
2017-10-24 19:16:36 +05:00
except pexpect.EOF, msg:
logging.InstallLog.writeToFile(str(msg) + " Exception EOF [changeMYSQLRootPasswordCyberPanel]")
except pexpect.TIMEOUT, msg:
print securemysql.before
logging.InstallLog.writeToFile(str(msg) + " Exception EOF [changeMYSQLRootPasswordCyberPanel]")
except BaseException, msg:
logging.InstallLog.writeToFile(str(msg) + "[changeMYSQLRootPasswordCyberPanel]")
return 0
def startMariaDB(self):
############## Start mariadb ######################
try:
count = 0
2017-10-24 19:16:36 +05:00
while(1):
command = "systemctl start mysql"
res = subprocess.call(shlex.split(command))
2017-10-24 19:16:36 +05:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to start MariaDB instance, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile("Failed to start MariaDB instance, exiting installer! [startMariaDB]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
else:
logging.InstallLog.writeToFile("MariaDB instance successfully started!")
InstallCyberPanel.stdOut("MariaDB instance successfully started!")
break
2017-10-24 19:16:36 +05:00
except OSError, msg:
logging.InstallLog.writeToFile(str(msg) + " [startMariaDB]")
return 0
except ValueError, msg:
logging.InstallLog.writeToFile(str(msg) + " [startMariaDB]")
return 0
return 1
def installPureFTPD(self):
try:
count = 0
while (1):
2018-10-26 14:24:28 -04:00
if self.distro == ubuntu:
command = 'apt-get -y install pure-ftpd'
else:
command = "yum install -y pure-ftpd"
res = subprocess.call(shlex.split(command))
2017-10-24 19:16:36 +05:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to install PureFTPD, trying again, try number: " + str(count))
2017-10-24 19:16:36 +05:00
if count == 3:
logging.InstallLog.writeToFile("Failed to install PureFTPD, exiting installer! [installPureFTPD]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
2017-10-24 19:16:36 +05:00
else:
logging.InstallLog.writeToFile("PureFTPD successfully installed!")
InstallCyberPanel.stdOut("PureFTPD successfully installed!")
2017-10-24 19:16:36 +05:00
break
####### Install pureftpd to system startup
count = 0
2017-10-24 19:16:36 +05:00
while(1):
2017-10-24 19:16:36 +05:00
command = "systemctl enable pure-ftpd"
res = subprocess.call(shlex.split(command))
2017-10-24 19:16:36 +05:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to enable PureFTPD to start and system restart, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile("Failed to enable PureFTPD to run at system restart, exiting installer! [installPureFTPD]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
else:
logging.InstallLog.writeToFile("PureFTPD successfully enabled at system restart!")
InstallCyberPanel.stdOut("PureFTPD successfully enabled at system restart!")
break
2017-10-24 19:16:36 +05:00
###### FTP Groups and user settings settings
count = 0
2017-10-24 19:16:36 +05:00
while(1):
cmd = []
cmd.append("groupadd")
cmd.append("-g")
cmd.append("2001")
cmd.append("ftpgroup")
2017-10-24 19:16:36 +05:00
res = subprocess.call(cmd)
2017-10-24 19:16:36 +05:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to create group for FTP, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile("Failed to create group for FTP, exiting installer! [installPureFTPD]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
else:
logging.InstallLog.writeToFile("System group for FTP successfully created!")
InstallCyberPanel.stdOut("System group for FTP successfully created!")
break
2017-10-24 19:16:36 +05:00
count = 0
2017-10-24 19:16:36 +05:00
while(1):
2017-10-24 19:16:36 +05:00
cmd = []
2017-10-24 19:16:36 +05:00
cmd.append("useradd")
cmd.append("-u")
cmd.append("2001")
cmd.append("-s")
cmd.append("/bin/false")
cmd.append("-d")
cmd.append("/bin/null")
cmd.append("-c")
cmd.append('"pureftpd user"')
cmd.append("-g")
cmd.append("ftpgroup")
cmd.append("ftpuser")
2017-10-24 19:16:36 +05:00
res = subprocess.call(cmd)
2017-10-24 19:16:36 +05:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to create user for FTP, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile("Failed to create user for FTP, exiting installer! [installPureFTPD]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
else:
logging.InstallLog.writeToFile("System user for FTP successfully created!")
InstallCyberPanel.stdOut("System user for FTP successfully created!")
break
2017-10-24 19:16:36 +05:00
except OSError, msg:
logging.InstallLog.writeToFile(str(msg) + " [installPureFTPD]")
return 0
except ValueError, msg:
logging.InstallLog.writeToFile(str(msg) + " [installPureFTPD]")
return 0
return 1
def startPureFTPD(self):
############## Start pureftpd ######################
2017-10-24 19:16:36 +05:00
try:
count = 0
while(1):
cmd = []
2017-10-24 19:16:36 +05:00
cmd.append("systemctl")
cmd.append("start")
cmd.append("pure-ftpd")
2017-10-24 19:16:36 +05:00
res = subprocess.call(cmd)
2017-10-24 19:16:36 +05:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to start PureFTPD instance, trying again, try number: " + str(count))
if count == 3:
2018-10-26 14:24:28 -04:00
logging.InstallLog.writeToFile("Failed to start PureFTPD instance, you can do this manually "
"later using systemctl start pure-ftpd [startPureFTPD]")
break
else:
logging.InstallLog.writeToFile("PureFTPD instance successfully started!")
InstallCyberPanel.stdOut("PureFTPD instance successfully started!")
break
2017-10-24 19:16:36 +05:00
except OSError, msg:
logging.InstallLog.writeToFile(str(msg) + " [startPureFTPD]")
return 0
except ValueError, msg:
logging.InstallLog.writeToFile(str(msg) + " [startPureFTPD]")
return 0
return 1
def installPureFTPDConfigurations(self, mysql):
2017-10-24 19:16:36 +05:00
try:
2017-12-09 22:30:10 +05:00
## setup ssl for ftp
logging.InstallLog.writeToFile("Configuring PureFTPD..")
InstallCyberPanel.stdOut("Configuring PureFTPD..")
2017-12-09 22:30:10 +05:00
try:
os.mkdir("/etc/ssl/private")
except:
logging.InstallLog.writeToFile("Could not create directory for FTP SSL")
count = 0
while(1):
2018-10-26 14:24:28 -04:00
command = 'openssl req -newkey rsa:1024 -new -nodes -x509 -days 3650 -subj ' \
'"/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" ' \
'-keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem'
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to create SSL for PureFTPD, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile("Failed to create SSL for PureFTPD! [installPureFTPDConfigurations]")
break
else:
logging.InstallLog.writeToFile("SSL for PureFTPD successfully created!")
InstallCyberPanel.stdOut("SSL for PureFTPD successfully created!")
break
2017-12-09 22:30:10 +05:00
2017-10-24 19:16:36 +05:00
os.chdir(self.cwd)
ftpdPath = "/etc/pure-ftpd"
if os.path.exists(ftpdPath):
shutil.rmtree(ftpdPath)
if mysql == 'Two':
shutil.copytree("pure-ftpd",ftpdPath)
else:
shutil.copytree("pure-ftpd-one", ftpdPath)
2017-10-24 19:16:36 +05:00
else:
if mysql == 'Two':
shutil.copytree("pure-ftpd",ftpdPath)
else:
shutil.copytree("pure-ftpd-one", ftpdPath)
2017-10-24 19:16:36 +05:00
data = open(ftpdPath+"/pureftpd-mysql.conf","r").readlines()
writeDataToFile = open(ftpdPath+"/pureftpd-mysql.conf","w")
dataWritten = "MYSQLPassword "+InstallCyberPanel.mysqlPassword+'\n'
for items in data:
if items.find("MYSQLPassword")>-1:
writeDataToFile.writelines(dataWritten)
else:
writeDataToFile.writelines(items)
writeDataToFile.close()
logging.InstallLog.writeToFile("PureFTPD configured!")
InstallCyberPanel.stdOut("PureFTPD configured!")
2017-10-24 19:16:36 +05:00
except IOError, msg:
logging.InstallLog.writeToFile(str(msg) + " [installPureFTPDConfigurations]")
return 0
return 1
def installPowerDNS(self):
try:
count = 0
if self.distro == ubuntu:
command = 'systemctl stop systemd-resolved'
res = subprocess.call(shlex.split(command))
if res != 0:
InstallCyberPanel.stdOut('Unable to stop systemd.resolved, prohits install of PowerDNS, error #' +
str(res), 1, 1, os.EX_OSERR)
command = 'systemctl disable systemd-resolved.service'
res = subprocess.call(shlex.split(command))
if res != 0:
InstallCyberPanel.stdOut('Unable to disable systemd.resolved, prohits install of PowerDNS, error #' +
str(res), 1, 1, os.EX_OSERR)
try:
os.rename('/etc/resolv.conf', 'etc/resolved.conf')
except OSError as e:
if e.errno != errno.EEXIST and e.errno != errno.ENOENT:
InstallCyberPanel.stdOut("Unable to rename /etc/resolv.conf to install PowerDNS: " +
str(e), 1, 1, os.EX_OSERR)
try:
os.remove('/etc/resolv.conf')
except OSError as e1:
InstallCyberPanel.stdOut("Unable to remove existing /etc/resolv.conf to install PowerDNS: " +
str(e1), 1, 1, os.EX_OSERR)
command = 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
res = subprocess.call(shlex.split(command))
if (res != 0):
InstallCyberPanel.stdOut("Unable to create new /etc/resolv.conf to point to 'nameserver 8.8.8.8'"
" You may need to do this manually to continue", 1, 1, os.EX_OSERR)
2018-10-26 14:24:28 -04:00
if self.distro == centos:
while (1):
command = 'yum -y install epel-release yum-plugin-priorities'
cmd = shlex.split(command)
res = subprocess.call(cmd)
2017-10-24 19:16:36 +05:00
2018-10-26 14:24:28 -04:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to install PowerDNS Repositories, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile("Failed to install PowerDNS Repositories, exiting installer! [installPowerDNS]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
os._exit(0)
else:
logging.InstallLog.writeToFile("PowerDNS Repositories successfully installed!")
InstallCyberPanel.stdOut("PowerDNS Repositories successfully installed!")
break
2017-10-24 19:16:36 +05:00
2018-10-26 14:24:28 -04:00
count = 0
2017-10-24 19:16:36 +05:00
2018-10-26 14:24:28 -04:00
while(1):
2017-10-24 19:16:36 +05:00
2018-10-26 14:24:28 -04:00
command = 'curl -o /etc/yum.repos.d/powerdns-auth-master.repo ' \
'https://repo.powerdns.com/repo-files/centos-auth-master.repo'
cmd = shlex.split(command)
res = subprocess.call(cmd)
2017-10-24 19:16:36 +05:00
2018-10-26 14:24:28 -04:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut(
"Trying to install PowerDNS Repositories, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile(
"Failed to install PowerDNS Repositories, exiting installer! [installPowerDNS]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
os._exit(0)
else:
logging.InstallLog.writeToFile("PowerDNS Repositories successfully installed!")
InstallCyberPanel.stdOut("PowerDNS Repositories successfully installed!")
break
2017-10-24 19:16:36 +05:00
count = 1
2017-10-24 19:16:36 +05:00
while(1):
2018-10-26 14:24:28 -04:00
if self.distro == ubuntu:
2018-10-26 16:25:13 -04:00
command = "apt-get -y install pdns-server pdns-backend-mysql"
2018-10-26 14:24:28 -04:00
else:
command = 'yum -y install pdns pdns-backend-mysql'
2017-10-24 19:16:36 +05:00
cmd = shlex.split(command)
res = subprocess.call(cmd)
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to install PowerDNS, trying again, try number: " + str(count))
2017-10-24 19:16:36 +05:00
if count == 3:
logging.InstallLog.writeToFile("Failed to install PowerDNS, exiting installer! [installPowerDNS]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
2017-10-24 19:16:36 +05:00
else:
logging.InstallLog.writeToFile("PowerDNS successfully installed!")
InstallCyberPanel.stdOut("PowerDNS successfully installed!")
2017-10-24 19:16:36 +05:00
break
except OSError, msg:
logging.InstallLog.writeToFile(str(msg) + " [powerDNS]")
return 0
except ValueError, msg:
logging.InstallLog.writeToFile(str(msg) + " [powerDNS]")
return 0
return 1
def installPowerDNSConfigurations(self,mysqlPassword, mysql):
2017-10-24 19:16:36 +05:00
try:
logging.InstallLog.writeToFile("Configuring PowerDNS..")
InstallCyberPanel.stdOut("Configuring PowerDNS..")
2017-10-24 19:16:36 +05:00
os.chdir(self.cwd)
dnsPath = "/etc/pdns/pdns.conf"
if os.path.exists(dnsPath):
os.remove(dnsPath)
if mysql == 'Two':
shutil.copy("dns/pdns.conf", dnsPath)
else:
shutil.copy("dns-one/pdns.conf", dnsPath)
2017-10-24 19:16:36 +05:00
else:
if mysql == 'Two':
shutil.copy("dns/pdns.conf", dnsPath)
else:
shutil.copy("dns-one/pdns.conf", dnsPath)
2017-10-24 19:16:36 +05:00
data = open(dnsPath, "r").readlines()
writeDataToFile = open(dnsPath, "w")
dataWritten = "gmysql-password=" + mysqlPassword + "\n"
for items in data:
if items.find("gmysql-password") > -1:
writeDataToFile.writelines(dataWritten)
else:
writeDataToFile.writelines(items)
writeDataToFile.close()
logging.InstallLog.writeToFile("PowerDNS configured!")
InstallCyberPanel.stdOut("PowerDNS configured!")
2017-10-24 19:16:36 +05:00
except IOError, msg:
logging.InstallLog.writeToFile(str(msg) + " [installPowerDNSConfigurations]")
return 0
return 1
def startPowerDNS(self):
############## Start PowerDNS ######################
2017-10-24 19:16:36 +05:00
try:
count = 0
2017-10-24 19:16:36 +05:00
while(1):
2017-10-24 19:16:36 +05:00
cmd = []
2017-10-24 19:16:36 +05:00
cmd.append("systemctl")
cmd.append("enable")
cmd.append("pdns")
2017-10-24 19:16:36 +05:00
res = subprocess.call(cmd)
2017-10-24 19:16:36 +05:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to enable PowerDNS to start and system restart, trying again, try number: " + str(count))
if count == 3:
2018-10-26 14:24:28 -04:00
logging.InstallLog.writeToFile("Failed to enable PowerDNS to run at system restart, you can "
"manually do this later using systemctl enable pdns! "
"[startPowerDNS]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
break
else:
logging.InstallLog.writeToFile("PowerDNS successfully enabled at system restart!")
InstallCyberPanel.stdOut("PowerDNS successfully enabled at system restart!")
break
2017-10-24 19:16:36 +05:00
count = 1
2017-10-24 19:16:36 +05:00
while(1):
command = 'systemctl start pdns'
cmd = shlex.split(command)
res = subprocess.call(cmd)
2017-10-24 19:16:36 +05:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to start PowerDNS instance, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile("Failed to start PowerDNS instance, exiting installer! [startPowerDNS]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
else:
logging.InstallLog.writeToFile("PowerDNS instance successfully started!")
InstallCyberPanel.stdOut("PowerDNS instance successfully started!")
break
2017-10-24 19:16:36 +05:00
except OSError, msg:
logging.InstallLog.writeToFile(str(msg) + " [startPowerDNS]")
2017-10-24 19:16:36 +05:00
return 0
except ValueError, msg:
logging.InstallLog.writeToFile(str(msg) + " [startPowerDNS]")
2017-10-24 19:16:36 +05:00
return 0
return 1
def installLSCPD(self):
try:
logging.InstallLog.writeToFile("Starting LSCPD installation..")
InstallCyberPanel.stdOut("Starting LSCPD installation..")
2017-10-24 19:16:36 +05:00
os.chdir(self.cwd)
2017-10-24 19:16:36 +05:00
count = 0
2017-10-24 19:16:36 +05:00
while(1):
2018-10-26 14:24:28 -04:00
if self.distro == ubuntu:
command = "apt-get -y install gcc g++ make autoconf rcs"
else:
command = 'yum -y install gcc gcc-c++ make autoconf glibc rcs'
cmd = shlex.split(command)
res = subprocess.call(cmd)
2017-10-24 19:16:36 +05:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to install LSCPD prerequisites, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile("Failed to install LSCPD prerequisites, exiting installer! [installLSCPD]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
else:
logging.InstallLog.writeToFile("LSCPD prerequisites successfully installed!")
InstallCyberPanel.stdOut("LSCPD prerequisites successfully installed!")
break
2017-10-24 19:16:36 +05:00
count = 0
2017-10-24 19:16:36 +05:00
while(1):
2018-10-26 14:24:28 -04:00
if self.distro == ubuntu:
command = "apt-get -y install libpcre3 libpcre3-dev openssl libexpat1 libexpat1-dev libgeoip-dev" \
" zlib1g zlib1g-dev libudns-dev whichman curl"
else:
command = 'yum -y install pcre-devel openssl-devel expat-devel geoip-devel zlib-devel udns-devel' \
' which curl'
cmd = shlex.split(command)
res = subprocess.call(cmd)
2017-10-24 19:16:36 +05:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to install LSCPD prerequisites, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile("Failed to install LSCPD prerequisites, exiting installer! [installLSCPD]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
else:
logging.InstallLog.writeToFile("LSCPD prerequisites successfully installed!")
InstallCyberPanel.stdOut("LSCPD prerequisites successfully installed!")
break
2017-10-24 19:16:36 +05:00
count = 0
2017-10-24 19:16:36 +05:00
while(1):
2017-10-24 19:16:36 +05:00
2018-10-12 18:18:10 +05:00
command = 'tar zxf lscp.tar.gz -C /usr/local/'
cmd = shlex.split(command)
2017-12-09 22:30:10 +05:00
res = subprocess.call(cmd)
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to configure LSCPD, trying again, try number: " + str(count))
2017-12-09 22:30:10 +05:00
if count == 3:
logging.InstallLog.writeToFile("Failed to configure LSCPD, exiting installer! [installLSCPD]")
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
2018-07-05 15:22:48 +05:00
os._exit(0)
2017-12-09 22:30:10 +05:00
else:
logging.InstallLog.writeToFile("LSCPD successfully configured!")
InstallCyberPanel.stdOut("LSCPD successfully extracted!")
2017-12-09 22:30:10 +05:00
break
count = 0
while(1):
2017-12-09 22:30:10 +05:00
2018-10-26 14:24:28 -04:00
command = 'openssl req -newkey rsa:1024 -new -nodes -x509 -days 3650 -subj ' \
'"/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout /usr/local/lscp/key.pem ' \
'-out /usr/local/lscp/cert.pem'
cmd = shlex.split(command)
res = subprocess.call(cmd)
2017-12-09 22:30:10 +05:00
if res == 1:
count = count + 1
InstallCyberPanel.stdOut("Trying to create SSL for LSCPD, trying again, try number: " + str(count))
if count == 3:
logging.InstallLog.writeToFile("Failed to create SSL for LSCPD! [installLSCPD]")
2017-12-09 22:30:10 +05:00
break
else:
logging.InstallLog.writeToFile("SSL for LSCPD successfully created!")
InstallCyberPanel.stdOut("SSL for LSCPD successfully created!")
break
2017-12-09 22:30:10 +05:00
try:
os.remove("/usr/local/lscp/fcgi-bin/lsphp")
shutil.copy("/usr/local/lsws/lsphp70/bin/lsphp","/usr/local/lscp/fcgi-bin/lsphp")
except:
pass
2017-12-09 22:30:10 +05:00
2018-10-12 18:18:10 +05:00
command = 'adduser lscpd -M -d /usr/local/lscp'
cmd = shlex.split(command)
res = subprocess.call(cmd)
command = 'groupadd lscpd'
cmd = shlex.split(command)
res = subprocess.call(cmd)
command = 'usermod -a -G lscpd lscpd'
cmd = shlex.split(command)
res = subprocess.call(cmd)
command = 'usermod -a -G lsadm lscpd'
cmd = shlex.split(command)
res = subprocess.call(cmd)
os.mkdir('/usr/local/lscp/cyberpanel')
2017-12-09 22:30:10 +05:00
logging.InstallLog.writeToFile("LSCPD successfully installed!")
InstallCyberPanel.stdOut("LSCPD successfully installed!")
2017-12-09 22:30:10 +05:00
except OSError, msg:
logging.InstallLog.writeToFile(str(msg) + " [installLSCPD]")
2017-12-09 22:30:10 +05:00
return 0
except ValueError, msg:
logging.InstallLog.writeToFile(str(msg) + " [installLSCPD]")
2017-12-09 22:30:10 +05:00
return 0
return 1
2017-10-24 19:16:36 +05:00
2018-10-26 14:24:28 -04:00
def Main(cwd, mysql, distro):
2017-12-09 22:30:10 +05:00
2017-10-24 19:16:36 +05:00
InstallCyberPanel.mysqlPassword = randomPassword.generate_pass()
InstallCyberPanel.mysql_Root_password = randomPassword.generate_pass()
2018-10-26 16:25:13 -04:00
password = open("/etc/cyberpanel/mysqlPassword", "w")
2017-10-24 19:16:36 +05:00
password.writelines(InstallCyberPanel.mysql_Root_password)
password.close()
2018-10-26 16:25:13 -04:00
installer = InstallCyberPanel("/usr/local/lsws/", cwd, distro)
2017-10-24 19:16:36 +05:00
installer.installLiteSpeed()
installer.changePortTo80()
2017-12-09 22:30:10 +05:00
installer.setupFileManager()
2017-10-24 19:16:36 +05:00
installer.installAllPHPVersions()
2017-12-09 22:30:10 +05:00
installer.fix_ols_configs()
2017-10-24 19:16:36 +05:00
installer.setup_mariadb_repo()
installer.installMySQL(mysql)
2017-10-24 19:16:36 +05:00
installer.changeMYSQLRootPassword()
installer.changeMYSQLRootPasswordCyberPanel(mysql)
2017-10-24 19:16:36 +05:00
installer.startMariaDB()
2018-10-26 16:25:13 -04:00
mysqlUtilities.createDatabaseCyberPanel("cyberpanel", "cyberpanel", InstallCyberPanel.mysqlPassword, mysql)
2017-10-24 19:16:36 +05:00
installer.installPureFTPD()
installer.installPureFTPDConfigurations(mysql)
2017-10-24 19:16:36 +05:00
installer.startPureFTPD()
installer.installPowerDNS()
installer.installPowerDNSConfigurations(InstallCyberPanel.mysqlPassword, mysql)
2017-10-24 19:16:36 +05:00
installer.startPowerDNS()
installer.installLSCPD()