2017-10-24 19:16:36 +05:00
|
|
|
import shutil
|
|
|
|
|
import subprocess
|
|
|
|
|
import os
|
|
|
|
|
from mysqlUtilities import mysqlUtilities
|
|
|
|
|
import installLog as logging
|
|
|
|
|
import shlex
|
|
|
|
|
import randomPassword
|
2018-10-29 10:17:57 -04:00
|
|
|
import errno
|
2018-10-31 11:06:24 -04:00
|
|
|
import MySQLdb as mariadb
|
2018-11-06 00:19:58 +05:00
|
|
|
import install
|
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-11-10 16:05:40 +05:00
|
|
|
def __init__(self, rootPath, cwd, distro, ent, serial = None):
|
2017-10-24 19:16:36 +05:00
|
|
|
self.server_root_path = rootPath
|
|
|
|
|
self.cwd = cwd
|
2018-11-06 00:19:58 +05:00
|
|
|
self.distro = distro
|
2018-11-10 16:05:40 +05:00
|
|
|
self.ent = ent
|
|
|
|
|
self.serial = serial
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-02-04 21:15:30 +05:00
|
|
|
@staticmethod
|
2018-11-06 00:19:58 +05:00
|
|
|
def stdOut(message, log=0, exit=0, code=os.EX_OK):
|
2018-10-29 09:04:11 -04:00
|
|
|
install.preFlightsChecks.stdOut(message, log, exit, code)
|
2018-02-04 21:15:30 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
def installLiteSpeed(self):
|
2018-11-10 16:05:40 +05:00
|
|
|
if self.ent == 0:
|
2018-12-06 15:03:43 +05:00
|
|
|
if self.distro == ubuntu:
|
|
|
|
|
command = "apt-get -y install openlitespeed"
|
|
|
|
|
else:
|
|
|
|
|
command = 'yum install -y openlitespeed'
|
2018-11-10 16:05:40 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLiteSpeed]',
|
|
|
|
|
'Install LiteSpeed.',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2018-11-10 16:05:40 +05:00
|
|
|
else:
|
|
|
|
|
try:
|
2018-12-06 15:03:43 +05:00
|
|
|
try:
|
|
|
|
|
command = 'groupadd nobody'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLiteSpeed]',
|
|
|
|
|
'groupadd nobody',
|
|
|
|
|
1, 0, os.EX_OSERR)
|
|
|
|
|
except:
|
|
|
|
|
pass
|
2018-11-10 16:05:40 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
try:
|
|
|
|
|
command = 'usermod -a -G nobody nobody'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLiteSpeed]',
|
|
|
|
|
'groupadd nobody',
|
|
|
|
|
1, 0, os.EX_OSERR)
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
command = 'wget https://www.litespeedtech.com/packages/5.0/lsws-5.3.4-ent-x86_64-linux.tar.gz'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLiteSpeed]',
|
|
|
|
|
'Install LiteSpeed Webserver Enterprise.',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
|
|
|
|
|
|
|
|
|
command = 'tar zxf lsws-5.3.4-ent-x86_64-linux.tar.gz'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLiteSpeed]',
|
|
|
|
|
'Install LiteSpeed Webserver Enterprise.',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
|
|
|
|
|
|
|
|
|
writeSerial = open('lsws-5.3.4/serial.no', 'w')
|
|
|
|
|
writeSerial.writelines(self.serial)
|
|
|
|
|
writeSerial.close()
|
|
|
|
|
|
|
|
|
|
shutil.copy('litespeed/install.sh', 'lsws-5.3.4/')
|
|
|
|
|
shutil.copy('litespeed/functions.sh', 'lsws-5.3.4/')
|
|
|
|
|
|
|
|
|
|
os.chdir('lsws-5.3.4')
|
|
|
|
|
|
|
|
|
|
command = 'chmod +x install.sh'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLiteSpeed]',
|
|
|
|
|
'Install LiteSpeed Webserver Enterprise.',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
|
|
|
|
|
|
|
|
|
command = 'chmod +x functions.sh'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLiteSpeed]',
|
|
|
|
|
'Install LiteSpeed Webserver Enterprise.',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
|
|
|
|
|
|
|
|
|
command = './install.sh'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLiteSpeed]',
|
|
|
|
|
'Install LiteSpeed Webserver Enterprise.',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2018-11-10 16:05:40 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
os.chdir(self.cwd)
|
|
|
|
|
confPath = '/usr/local/lsws/conf/'
|
|
|
|
|
shutil.copy('litespeed/httpd_config.xml', confPath)
|
|
|
|
|
shutil.copy('litespeed/modsec.conf', confPath)
|
|
|
|
|
shutil.copy('litespeed/httpd.conf', confPath)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
command = 'chown -R lsadm:lsadm ' + confPath
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLiteSpeed]',
|
|
|
|
|
'Install LiteSpeed Webserver Enterprise.',
|
|
|
|
|
1, 0, os.EX_OSERR)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-11-10 16:05:40 +05:00
|
|
|
except OSError, msg:
|
|
|
|
|
logging.InstallLog.writeToFile(str(msg) + " [installLiteSpeed]")
|
|
|
|
|
return 0
|
|
|
|
|
except ValueError, msg:
|
|
|
|
|
logging.InstallLog.writeToFile(str(msg) + " [installLiteSpeed]")
|
|
|
|
|
return 0
|
|
|
|
|
|
|
|
|
|
return 1
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
def reStartLiteSpeed(self):
|
2018-12-06 15:03:43 +05:00
|
|
|
command = self.server_root_path+"bin/lswsctrl restart"
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[reStartLiteSpeed]',
|
|
|
|
|
'Restart LiteSpeed WebServer',
|
|
|
|
|
1, 0, os.EX_OSERR)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2017-12-09 22:30:10 +05:00
|
|
|
def fix_ols_configs(self):
|
|
|
|
|
try:
|
|
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("Fixing OpenLiteSpeed configurations!", 1)
|
2017-12-09 22:30:10 +05:00
|
|
|
|
|
|
|
|
## 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()
|
|
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("OpenLiteSpeed Configurations fixed!", 1)
|
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:
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("Changing default port to 80..", 1)
|
2018-02-04 21:15:30 +05:00
|
|
|
|
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()
|
|
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("Default port is now 80 for OpenLiteSpeed!", 1)
|
2018-02-04 21:15:30 +05:00
|
|
|
|
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):
|
2018-11-10 16:05:40 +05:00
|
|
|
if self.ent == 0:
|
|
|
|
|
try:
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("Setting up Filemanager files..", 1)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-11-10 16:05:40 +05:00
|
|
|
os.chdir(self.cwd)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-11-10 16:05:40 +05:00
|
|
|
fileManagerPath = self.server_root_path+"Example/html/FileManager"
|
|
|
|
|
shutil.copytree("FileManager",fileManagerPath)
|
2017-12-09 22:30:10 +05:00
|
|
|
|
2018-11-10 16:05:40 +05:00
|
|
|
## remove unnecessary files
|
2017-12-09 22:30:10 +05:00
|
|
|
|
2018-11-10 16:05:40 +05:00
|
|
|
fileManagerPath = self.server_root_path + "Example/html/"
|
2017-12-09 22:30:10 +05:00
|
|
|
|
2018-11-10 16:05:40 +05:00
|
|
|
shutil.rmtree(fileManagerPath+"protected")
|
|
|
|
|
shutil.rmtree(fileManagerPath+"blocked")
|
|
|
|
|
os.remove(fileManagerPath+"phpinfo.php")
|
|
|
|
|
os.remove(fileManagerPath + "upload.html")
|
|
|
|
|
os.remove(fileManagerPath + "upload.php")
|
2017-12-09 22:30:10 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("Filemanager files are set!", 1)
|
2018-02-04 21:15:30 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
except BaseException, msg:
|
2018-11-10 16:05:40 +05:00
|
|
|
logging.InstallLog.writeToFile(str(msg) + " [setupFileManager]")
|
|
|
|
|
else:
|
|
|
|
|
try:
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("Setting up Filemanager files..", 1)
|
2018-11-10 16:05:40 +05:00
|
|
|
|
|
|
|
|
os.chdir(self.cwd)
|
|
|
|
|
|
|
|
|
|
fileManagerPath = self.server_root_path + "/FileManager"
|
|
|
|
|
shutil.copytree("FileManager", fileManagerPath)
|
|
|
|
|
|
|
|
|
|
## remove unnecessary files
|
|
|
|
|
|
|
|
|
|
command = 'chmod -R 777 ' + fileManagerPath
|
2018-12-06 15:03:43 +05:00
|
|
|
install.preFlightsChecks.call(command, self.distro, '[setupFileManager]',
|
|
|
|
|
'Change Filemanager permissions.',
|
|
|
|
|
1, 0, os.EX_OSERR)
|
2018-11-10 16:05:40 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("Filemanager files are set!", 1)
|
2018-11-10 16:05:40 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
except BaseException, msg:
|
2018-11-10 16:05:40 +05:00
|
|
|
logging.InstallLog.writeToFile(str(msg) + " [setupFileManager]")
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
def installAllPHPVersions(self):
|
2018-12-06 15:03:43 +05:00
|
|
|
if self.distro == ubuntu:
|
|
|
|
|
command = 'DEBIAN_FRONTEND=noninteractive apt-get -y install ' \
|
|
|
|
|
'lsphp7? lsphp7?-common lsphp7?-curl lsphp7?-dev lsphp7?-imap lsphp7?-intl lsphp7?-json ' \
|
|
|
|
|
'lsphp7?-ldap lsphp7?-mysql lsphp7?-opcache lsphp7?-pspell lsphp7?-recode ' \
|
|
|
|
|
'lsphp7?-sqlite3 lsphp7?-tidy'
|
|
|
|
|
else:
|
|
|
|
|
command = 'yum -y groupinstall lsphp-all'
|
|
|
|
|
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installAllPHPVersions]',
|
|
|
|
|
'Install PHP',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
|
|
|
|
|
|
|
|
|
InstallCyberPanel.stdOut("LiteSpeed PHPs successfully installed!", 1)
|
|
|
|
|
|
|
|
|
|
## only php 71
|
|
|
|
|
if self.distro == centos:
|
|
|
|
|
|
|
|
|
|
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'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installAllPHPVersions]',
|
|
|
|
|
'Install PHP',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
|
|
|
|
## only php 72
|
|
|
|
|
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'
|
|
|
|
|
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installAllPHPVersions]',
|
|
|
|
|
'Install PHP',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
def setup_mariadb_repo(self):
|
2018-11-06 00:19:58 +05:00
|
|
|
try:
|
|
|
|
|
|
|
|
|
|
if self.distro == ubuntu:
|
2018-10-26 14:24:28 -04:00
|
|
|
# Only needed if the repo is broken or we need the latest version.
|
2018-11-06 00:19:58 +05:00
|
|
|
# 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-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("Setting up MariaDB Repo..", 1)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-02-04 21:15:30 +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")
|
|
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("MariaDB repo set!", 1)
|
|
|
|
|
|
2018-02-04 21:15:30 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
logging.InstallLog.writeToFile(str(msg) + " [setup_mariadb_repo]")
|
|
|
|
|
return 0
|
|
|
|
|
|
2018-05-29 20:20:05 +05:00
|
|
|
def installMySQL(self, mysql):
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
############## Install mariadb ######################
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
if self.distro == ubuntu:
|
|
|
|
|
command = "apt-get -y install mariadb-server"
|
|
|
|
|
else:
|
|
|
|
|
command = 'yum -y install mariadb-server'
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installMySQL]',
|
|
|
|
|
'Install MySQL',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2018-11-06 00:19:58 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
## Fix configurations if two MYSQL are used
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
if mysql == 'Two':
|
|
|
|
|
logging.InstallLog.writeToFile("Setting up MariaDB configurations!")
|
|
|
|
|
InstallCyberPanel.stdOut("Setting up MariaDB configurations!")
|
2018-02-04 21:15:30 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
pathConf = "/etc/my.cnf"
|
|
|
|
|
pathServiceFile = "/etc/systemd/system/mysqld@.service"
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
if os.path.exists(pathConf):
|
|
|
|
|
os.remove(pathConf)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
if os.path.exists(pathServiceFile):
|
|
|
|
|
os.remove(pathServiceFile)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
os.chdir(self.cwd)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
shutil.copy("mysql/my.cnf", pathConf)
|
|
|
|
|
shutil.copy("mysql/mysqld@.service", pathServiceFile)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
logging.InstallLog.writeToFile("MariaDB configurations set!")
|
|
|
|
|
InstallCyberPanel.stdOut("MariaDB configurations set!")
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
##
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
count = 0
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
while (1):
|
|
|
|
|
command = "mysql_install_db --user=mysql --datadir=/var/lib/mysql1"
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installMySQL]',
|
|
|
|
|
'Install MySQL',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
##
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-02-04 21:15:30 +05:00
|
|
|
count = 0
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
while (1):
|
|
|
|
|
command = "systemctl start mysqld@1"
|
2018-02-04 21:15:30 +05:00
|
|
|
res = subprocess.call(shlex.split(command))
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-11-14 11:37:17 -05:00
|
|
|
if install.preFlightsChecks.resFailed(self.distro, res):
|
2018-02-04 21:15:30 +05:00
|
|
|
count = count + 1
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut(
|
|
|
|
|
"Trying to start first MariaDB instance, trying again, try number: " + str(count))
|
2018-02-04 21:15:30 +05:00
|
|
|
if count == 3:
|
2018-12-06 15:03:43 +05:00
|
|
|
logging.InstallLog.writeToFile(
|
|
|
|
|
"Failed to start first MariaDB instance, exiting installer! [installMySQL]")
|
|
|
|
|
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
|
|
|
|
|
os._exit(0)
|
2018-02-04 21:15:30 +05:00
|
|
|
else:
|
2018-12-06 15:03:43 +05:00
|
|
|
logging.InstallLog.writeToFile("First MariaDB instance successfully started!")
|
|
|
|
|
InstallCyberPanel.stdOut("First MariaDB instance successfully started!")
|
2018-02-04 21:15:30 +05:00
|
|
|
break
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-02-04 21:15:30 +05:00
|
|
|
count = 0
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
while (1):
|
|
|
|
|
command = "systemctl enable mysqld@1"
|
2018-02-04 21:15:30 +05:00
|
|
|
res = subprocess.call(shlex.split(command))
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-11-14 11:37:17 -05:00
|
|
|
if install.preFlightsChecks.resFailed(self.distro, res):
|
2018-02-04 21:15:30 +05:00
|
|
|
count = count + 1
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut(
|
|
|
|
|
"Trying to enable first MariaDB instance to start and system restart, trying again, try number: " + str(
|
|
|
|
|
count))
|
2018-02-04 21:15:30 +05:00
|
|
|
if count == 3:
|
2018-12-06 15:03:43 +05:00
|
|
|
logging.InstallLog.writeToFile(
|
|
|
|
|
"Failed to enable first MariaDB instance to run at system restart, exiting installer! [installMySQL]")
|
2018-02-04 21:15:30 +05:00
|
|
|
InstallCyberPanel.stdOut("Installation failed, consult: /var/log/installLogs.txt")
|
2018-07-05 15:22:48 +05:00
|
|
|
os._exit(0)
|
2018-02-04 21:15:30 +05:00
|
|
|
else:
|
2018-12-06 15:03:43 +05:00
|
|
|
logging.InstallLog.writeToFile("First MariaDB instance successfully enabled at system restart!")
|
|
|
|
|
InstallCyberPanel.stdOut("First MariaDB instance successfully enabled at system restart!")
|
2018-02-04 21:15:30 +05:00
|
|
|
break
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
############## Start mariadb ######################
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
self.startMariaDB()
|
|
|
|
|
|
|
|
|
|
def changeMYSQLRootPassword(self):
|
|
|
|
|
passwordCMD = "use mysql;update user set password=PASSWORD('" + InstallCyberPanel.mysql_Root_password + "') where User='root';flush privileges;"
|
|
|
|
|
command = 'mysql -u root -e "' + passwordCMD + '"'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[changeMYSQLRootPassword]', 'MYSQL Root Password change.',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
|
|
|
|
|
|
|
|
|
def startMariaDB(self):
|
|
|
|
|
|
|
|
|
|
############## Start mariadb ######################
|
|
|
|
|
|
|
|
|
|
command = "systemctl start mysql"
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[startMariaDB]',
|
|
|
|
|
'Start MySQL',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
|
|
|
|
|
|
|
|
|
############## Enable mariadb at system startup ######################
|
|
|
|
|
|
|
|
|
|
if self.distro == ubuntu:
|
|
|
|
|
command = "systemctl enable mariadb"
|
|
|
|
|
else:
|
|
|
|
|
command = "systemctl enable mysql"
|
|
|
|
|
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installMySQL]',
|
|
|
|
|
'Install MySQL',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-10-31 11:06:24 -04:00
|
|
|
def fixMariaDB(self):
|
|
|
|
|
self.stdOut("Setup MariaDB so it can support Cyberpanel's needs")
|
2018-10-31 11:37:42 -04:00
|
|
|
|
|
|
|
|
conn = mariadb.connect(user='root', passwd=self.mysql_Root_password)
|
|
|
|
|
cursor = conn.cursor()
|
|
|
|
|
cursor.execute('set global innodb_file_per_table = on;')
|
2018-10-31 11:42:51 -04:00
|
|
|
cursor.execute('set global innodb_file_format = Barracuda;')
|
2018-10-31 11:37:42 -04:00
|
|
|
cursor.execute('set global innodb_large_prefix = on;')
|
|
|
|
|
cursor.close()
|
|
|
|
|
conn.close()
|
2018-10-31 11:06:24 -04:00
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
fileName = '/etc/mysql/mariadb.conf.d/50-server.cnf'
|
|
|
|
|
data = open(fileName, 'r').readlines()
|
|
|
|
|
|
|
|
|
|
writeDataToFile = open(fileName, 'w')
|
|
|
|
|
for line in data:
|
2018-11-06 00:19:58 +05:00
|
|
|
writeDataToFile.write(line.replace('utf8mb4', 'utf8'))
|
2018-10-31 11:06:24 -04:00
|
|
|
writeDataToFile.close()
|
|
|
|
|
except IOError as err:
|
|
|
|
|
self.stdOut("Error in setting: " + fileName + ": " + str(err), 1, 1, os.EX_OSERR)
|
|
|
|
|
|
|
|
|
|
os.system('systemctl restart mysql')
|
|
|
|
|
|
|
|
|
|
self.stdOut("MariaDB is now setup so it can support Cyberpanel's needs")
|
|
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
def installPureFTPD(self):
|
2018-12-06 15:03:43 +05:00
|
|
|
if self.distro == ubuntu:
|
|
|
|
|
command = 'apt-get -y install ' + install.preFlightsChecks.pureFTPDServiceName(self.distro)
|
|
|
|
|
else:
|
|
|
|
|
command = "yum install -y pure-ftpd"
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installPureFTPD]',
|
|
|
|
|
'Install FTP',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
####### Install pureftpd to system startup
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
command = "systemctl enable " + install.preFlightsChecks.pureFTPDServiceName(self.distro)
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installPureFTPD]',
|
|
|
|
|
'Install FTP',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
###### FTP Groups and user settings settings
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
command = 'groupadd -g 2001 ftpgroup'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installPureFTPD]',
|
|
|
|
|
'Install FTP',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
command = 'useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installPureFTPD]',
|
|
|
|
|
'Install FTP',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2018-11-07 08:54:16 -05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
def startPureFTPD(self):
|
2018-02-04 21:15:30 +05:00
|
|
|
############## Start pureftpd ######################
|
2018-12-06 15:03:43 +05:00
|
|
|
if self.distro == ubuntu:
|
|
|
|
|
command = 'systemctl start pure-ftpd-mysql'
|
|
|
|
|
else:
|
|
|
|
|
command = 'systemctl start pure-ftpd'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[startPureFTPD]',
|
|
|
|
|
'Start FTP',
|
|
|
|
|
1, 0, os.EX_OSERR)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-05-29 20:20:05 +05:00
|
|
|
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
|
|
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("Configuring PureFTPD..", 1)
|
2018-02-04 21:15:30 +05:00
|
|
|
|
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")
|
|
|
|
|
|
|
|
|
|
|
2018-12-06 15:03:43 +05: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'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installPureFTPDConfigurations]',
|
|
|
|
|
'FTP Configurations',
|
|
|
|
|
1, 0, os.EX_OSERR)
|
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)
|
2018-05-29 20:20:05 +05:00
|
|
|
if mysql == 'Two':
|
2018-11-07 16:00:00 -05:00
|
|
|
shutil.copytree("pure-ftpd", ftpdPath)
|
2018-05-29 20:20:05 +05:00
|
|
|
else:
|
|
|
|
|
shutil.copytree("pure-ftpd-one", ftpdPath)
|
2017-10-24 19:16:36 +05:00
|
|
|
else:
|
2018-05-29 20:20:05 +05:00
|
|
|
if mysql == 'Two':
|
|
|
|
|
shutil.copytree("pure-ftpd",ftpdPath)
|
|
|
|
|
else:
|
|
|
|
|
shutil.copytree("pure-ftpd-one", ftpdPath)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-11-07 09:56:45 -05:00
|
|
|
if self.distro == ubuntu:
|
|
|
|
|
try:
|
|
|
|
|
os.mkdir('/etc/pure-ftpd/conf')
|
|
|
|
|
os.mkdir('/etc/pure-ftpd/auth')
|
2018-11-08 12:11:42 +05:00
|
|
|
os.mkdir('/etc/pure-ftpd/db')
|
2018-11-07 09:56:45 -05:00
|
|
|
except OSError as err:
|
|
|
|
|
self.stdOut("Error creating extra pure-ftpd directories: " + str(err), ". Should be ok", 1)
|
|
|
|
|
|
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)
|
|
|
|
|
|
2018-11-14 13:36:34 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
writeDataToFile.close()
|
|
|
|
|
|
2018-11-08 12:11:42 +05:00
|
|
|
if self.distro == ubuntu:
|
|
|
|
|
command = 'apt install pure-ftpd-mysql -y'
|
2018-12-06 15:03:43 +05:00
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installPureFTPDConfigurations]',
|
|
|
|
|
'FTP Configurations',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2018-11-08 12:11:42 +05:00
|
|
|
|
|
|
|
|
if os.path.exists('/etc/pure-ftpd/db/mysql.conf'):
|
|
|
|
|
os.remove('/etc/pure-ftpd/db/mysql.conf')
|
|
|
|
|
shutil.copy(ftpdPath+"/pureftpd-mysql.conf", '/etc/pure-ftpd/db/mysql.conf')
|
|
|
|
|
else:
|
|
|
|
|
shutil.copy(ftpdPath + "/pureftpd-mysql.conf", '/etc/pure-ftpd/db/mysql.conf')
|
|
|
|
|
|
|
|
|
|
command = 'echo 1 > /etc/pure-ftpd/conf/TLS'
|
|
|
|
|
subprocess.call(command, shell=True)
|
|
|
|
|
|
|
|
|
|
command = 'systemctl restart pure-ftpd-mysql.service'
|
2018-12-06 15:03:43 +05:00
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installPureFTPDConfigurations]',
|
|
|
|
|
'FTP Configurations',
|
|
|
|
|
1, 0, os.EX_OSERR)
|
2018-11-08 12:11:42 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("PureFTPD configured!", 1)
|
2018-02-04 21:15:30 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
except IOError, msg:
|
|
|
|
|
logging.InstallLog.writeToFile(str(msg) + " [installPureFTPDConfigurations]")
|
|
|
|
|
return 0
|
|
|
|
|
|
|
|
|
|
def installPowerDNS(self):
|
|
|
|
|
try:
|
|
|
|
|
count = 0
|
|
|
|
|
|
2018-10-29 09:04:11 -04:00
|
|
|
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:
|
2018-11-06 00:19:58 +05:00
|
|
|
InstallCyberPanel.stdOut(
|
|
|
|
|
'Unable to disable systemd.resolved, prohits install of PowerDNS, error #' +
|
|
|
|
|
str(res), 1, 1, os.EX_OSERR)
|
2018-10-29 10:17:57 -04:00
|
|
|
try:
|
|
|
|
|
os.rename('/etc/resolv.conf', 'etc/resolved.conf')
|
|
|
|
|
except OSError as e:
|
2018-10-29 10:45:46 -04:00
|
|
|
if e.errno != errno.EEXIST and e.errno != errno.ENOENT:
|
2018-10-29 10:17:57 -04:00
|
|
|
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)
|
2018-10-29 11:27:50 -04:00
|
|
|
try:
|
|
|
|
|
f = open('/etc/resolv.conf', 'w')
|
|
|
|
|
f.write('nameserver 8.8.8.8')
|
|
|
|
|
f.close()
|
|
|
|
|
except IOError as e:
|
|
|
|
|
InstallCyberPanel.stdOut("Unable to create /etc/resolv.conf: " + str(e) +
|
|
|
|
|
". This may need to be fixed manually as 'echo \"nameserver 8.8.8.8\"> "
|
|
|
|
|
"/etc/resolv.conf'", 1, 1, os.EX_OSERR)
|
2018-10-29 10:17:57 -04:00
|
|
|
|
2018-10-26 14:24:28 -04:00
|
|
|
if self.distro == centos:
|
2018-12-06 15:03:43 +05:00
|
|
|
command = 'yum -y install epel-release yum-plugin-priorities'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installPowerDNS]',
|
|
|
|
|
'Install PowerDNS',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
command = 'curl -o /etc/yum.repos.d/powerdns-auth-master.repo ' \
|
|
|
|
|
'https://repo.powerdns.com/repo-files/centos-auth-master.repo'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installPowerDNS]',
|
|
|
|
|
'Install PowerDNS',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
if self.distro == ubuntu:
|
|
|
|
|
command = "DEBIAN_FRONTEND=noninteractive apt-get -y install pdns-server pdns-backend-mysql"
|
|
|
|
|
else:
|
|
|
|
|
command = 'yum -y install pdns pdns-backend-mysql'
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installPowerDNS]',
|
|
|
|
|
'Install PowerDNS',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
|
|
|
|
except BaseException, msg:
|
2017-10-24 19:16:36 +05:00
|
|
|
logging.InstallLog.writeToFile(str(msg) + " [powerDNS]")
|
|
|
|
|
|
2018-11-06 00:19:58 +05:00
|
|
|
def installPowerDNSConfigurations(self, mysqlPassword, mysql):
|
2017-10-24 19:16:36 +05:00
|
|
|
try:
|
2018-02-04 21:15:30 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("Configuring PowerDNS..", 1)
|
2018-02-04 21:15:30 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
os.chdir(self.cwd)
|
2018-10-30 17:33:43 -04:00
|
|
|
if self.distro == centos:
|
|
|
|
|
dnsPath = "/etc/pdns/pdns.conf"
|
|
|
|
|
else:
|
|
|
|
|
dnsPath = "/etc/powerdns/pdns.conf"
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
if os.path.exists(dnsPath):
|
|
|
|
|
os.remove(dnsPath)
|
2018-05-29 20:20:05 +05:00
|
|
|
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:
|
2018-05-29 20:20:05 +05:00
|
|
|
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)
|
2018-11-14 13:36:34 +05:00
|
|
|
|
2018-11-12 14:53:10 -05:00
|
|
|
#if self.distro == ubuntu:
|
|
|
|
|
# os.fchmod(writeDataToFile.fileno(), stat.S_IRUSR | stat.S_IWUSR)
|
2018-11-07 15:14:54 -05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
writeDataToFile.close()
|
|
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("PowerDNS configured!", 1)
|
2018-02-04 21:15:30 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
except IOError, msg:
|
|
|
|
|
logging.InstallLog.writeToFile(str(msg) + " [installPowerDNSConfigurations]")
|
|
|
|
|
return 0
|
|
|
|
|
return 1
|
|
|
|
|
|
|
|
|
|
def startPowerDNS(self):
|
|
|
|
|
|
2018-02-04 21:15:30 +05:00
|
|
|
############## Start PowerDNS ######################
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
try:
|
2018-12-06 15:03:43 +05:00
|
|
|
command = 'systemctl enable pdns'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[startPowerDNS]',
|
|
|
|
|
'Start PowerDNS',
|
|
|
|
|
1, 0, os.EX_OSERR)
|
|
|
|
|
|
|
|
|
|
command = 'systemctl start pdns'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[startPowerDNS]',
|
|
|
|
|
'Start PowerDNS',
|
|
|
|
|
1, 0, os.EX_OSERR)
|
|
|
|
|
except BaseException, msg:
|
2017-11-02 02:09:47 +05:00
|
|
|
logging.InstallLog.writeToFile(str(msg) + " [startPowerDNS]")
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
def installLSCPD(self):
|
|
|
|
|
try:
|
|
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("Starting LSCPD installation..", 1)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-02-04 21:15:30 +05:00
|
|
|
os.chdir(self.cwd)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05: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'
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLSCPD]',
|
|
|
|
|
'Install LSCPD',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05: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'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLSCPD]',
|
|
|
|
|
'Install LSCPD',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2017-12-09 22:30:10 +05:00
|
|
|
|
|
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
command = 'tar zxf lscp.tar.gz -C /usr/local/'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLSCPD]',
|
|
|
|
|
'Install LSCPD',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2017-12-09 22:30:10 +05:00
|
|
|
|
|
|
|
|
|
2018-12-06 15:03:43 +05: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'
|
|
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLSCPD]',
|
|
|
|
|
'Install LSCPD',
|
|
|
|
|
1, 1, os.EX_OSERR)
|
2017-12-09 22:30:10 +05:00
|
|
|
|
2018-02-04 21:15:30 +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-29 16:26:07 -04:00
|
|
|
if self.distro == centos:
|
|
|
|
|
command = 'adduser lscpd -M -d /usr/local/lscp'
|
|
|
|
|
else:
|
|
|
|
|
command = 'useradd lscpd -M -d /usr/local/lscp'
|
2018-10-12 18:18:10 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLSCPD]',
|
|
|
|
|
'Install LSCPD',
|
|
|
|
|
1, 0, os.EX_OSERR)
|
2018-10-12 18:18:10 +05:00
|
|
|
|
2018-10-29 16:26:07 -04:00
|
|
|
if self.distro == centos:
|
|
|
|
|
command = 'groupadd lscpd'
|
2018-12-06 15:03:43 +05:00
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLSCPD]',
|
|
|
|
|
'Install LSCPD',
|
|
|
|
|
1, 0, os.EX_OSERR)
|
2018-10-29 16:26:07 -04:00
|
|
|
# Added group in useradd for Ubuntu
|
|
|
|
|
|
2018-10-12 18:18:10 +05:00
|
|
|
command = 'usermod -a -G lscpd lscpd'
|
2018-12-06 15:03:43 +05:00
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLSCPD]',
|
|
|
|
|
'Install LSCPD',
|
|
|
|
|
1, 0, os.EX_OSERR)
|
2018-10-12 18:18:10 +05:00
|
|
|
|
|
|
|
|
command = 'usermod -a -G lsadm lscpd'
|
2018-12-06 15:03:43 +05:00
|
|
|
install.preFlightsChecks.call(command, self.distro, '[installLSCPD]',
|
|
|
|
|
'Install LSCPD',
|
|
|
|
|
1, 0, os.EX_OSERR)
|
2018-10-12 18:18:10 +05:00
|
|
|
|
|
|
|
|
os.mkdir('/usr/local/lscp/cyberpanel')
|
2017-12-09 22:30:10 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
InstallCyberPanel.stdOut("LSCPD successfully installed!", 1)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
logging.InstallLog.writeToFile(str(msg) + " [startPowerDNS]")
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
|
2018-11-21 14:50:27 +05:00
|
|
|
def Main(cwd, mysql, distro, ent, serial = None):
|
2017-12-09 22:30:10 +05:00
|
|
|
|
2018-11-06 00:19:58 +05:00
|
|
|
InstallCyberPanel.mysqlPassword = randomPassword.generate_pass()
|
2017-10-24 19:16:36 +05:00
|
|
|
InstallCyberPanel.mysql_Root_password = randomPassword.generate_pass()
|
|
|
|
|
|
2018-10-30 15:51:22 -04:00
|
|
|
file_name = '/etc/cyberpanel/mysqlPassword'
|
2018-10-30 15:58:45 -04:00
|
|
|
if os.access(file_name, os.F_OK):
|
2018-10-30 15:51:22 -04:00
|
|
|
password = open(file_name, 'r')
|
|
|
|
|
InstallCyberPanel.mysql_Root_password = password.readline()
|
|
|
|
|
else:
|
|
|
|
|
password = open(file_name, "w")
|
|
|
|
|
password.writelines(InstallCyberPanel.mysql_Root_password)
|
2018-11-06 00:19:58 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
password.close()
|
|
|
|
|
|
2018-10-30 15:51:22 -04:00
|
|
|
if distro == centos:
|
|
|
|
|
InstallCyberPanel.mysqlPassword = randomPassword.generate_pass()
|
|
|
|
|
else:
|
|
|
|
|
InstallCyberPanel.mysqlPassword = InstallCyberPanel.mysql_Root_password
|
|
|
|
|
|
2018-11-21 14:50:27 +05:00
|
|
|
installer = InstallCyberPanel("/usr/local/lsws/",cwd, distro, ent, serial)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
installer.installLiteSpeed()
|
2018-11-10 16:05:40 +05:00
|
|
|
if ent == 0:
|
|
|
|
|
installer.changePortTo80()
|
2017-12-09 22:30:10 +05:00
|
|
|
installer.setupFileManager()
|
2017-10-24 19:16:36 +05:00
|
|
|
installer.installAllPHPVersions()
|
2018-11-10 16:05:40 +05:00
|
|
|
if ent == 0:
|
|
|
|
|
installer.fix_ols_configs()
|
2017-12-09 22:30:10 +05:00
|
|
|
|
2018-11-06 00:19:58 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
installer.setup_mariadb_repo()
|
2018-05-29 20:20:05 +05:00
|
|
|
installer.installMySQL(mysql)
|
2018-10-31 11:53:03 -04:00
|
|
|
installer.changeMYSQLRootPassword()
|
2018-12-06 15:03:43 +05:00
|
|
|
#installer.changeMYSQLRootPasswordCyberPanel(mysql)
|
2017-10-24 19:16:36 +05:00
|
|
|
installer.startMariaDB()
|
2018-10-31 11:06:24 -04:00
|
|
|
if distro == ubuntu:
|
|
|
|
|
installer.fixMariaDB()
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-12-06 15:03:43 +05:00
|
|
|
mysqlUtilities.createDatabase("cyberpanel","cyberpanel",InstallCyberPanel.mysqlPassword)
|
2018-11-06 00:19:58 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
installer.installPureFTPD()
|
2018-05-29 20:20:05 +05:00
|
|
|
installer.installPureFTPDConfigurations(mysql)
|
2017-10-24 19:16:36 +05:00
|
|
|
installer.startPureFTPD()
|
|
|
|
|
|
|
|
|
|
installer.installPowerDNS()
|
2018-05-29 20:20:05 +05:00
|
|
|
installer.installPowerDNSConfigurations(InstallCyberPanel.mysqlPassword, mysql)
|
2017-10-24 19:16:36 +05:00
|
|
|
installer.startPowerDNS()
|
|
|
|
|
|
|
|
|
|
installer.installLSCPD()
|