merge docker volume code changes

This commit is contained in:
usmannasir
2019-01-27 01:18:49 +05:00
parent 6c4ccc1bff
commit 23979ebc26
29 changed files with 1615 additions and 234 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
*.pyc
containerization

View File

@@ -65,7 +65,8 @@ INSTALLED_APPS = [
'cloudAPI',
'highAvailability',
's3Backups',
'dockerManager'
'dockerManager',
'containerization'
]
MIDDLEWARE = [

View File

@@ -41,4 +41,5 @@ urlpatterns = [
url(r'^emailMarketing/', include('emailMarketing.urls')),
url(r'^cloudAPI/', include('cloudAPI.urls')),
url(r'^docker/', include('dockerManager.urls')),
url(r'^container/', include('containerization.urls')),
]

View File

@@ -570,7 +570,7 @@ def changeAdminPassword(request):
firstName="Cyber", lastName="Panel", acl=acl, token=token)
admin.save()
vers = version(currentVersion="1.7", build=7)
vers = version(currentVersion="1.8", build=0)
vers.save()
package = Package(admin=admin, packageName="Default", diskSpace=1000,

View File

@@ -96,6 +96,7 @@
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css">
<link rel="stylesheet" type="text/css" href="{% static 'baseTemplate/custom-js/pnotify.custom.min.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'websiteFunctions/websiteFunctions.css' %}">
<link rel="stylesheet" type="text/css" href="https://www.jsdelivr.com/package/npm/fontawesome">
<!-- Components theme, component below was above three CSS files. -->
@@ -115,6 +116,8 @@
}, 300);
});
</script>
<script src="https://cdn.jsdelivr.net/npm/flot-charts@0.8.3/jquery.flot.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery.flot@0.8.3/jquery.flot.time.js"></script>
<!-- JS Ends -->
@@ -608,6 +611,24 @@
<li class="header serverACL"><span>{% trans "Server" %}</span></li>
<li class="serverACL">
<a href="#" title="{% trans 'Containerization' %}">
<i class="glyph-icon icon-linecons-fire"></i>
<span>{% trans "Containerization" %}</span>
<span class="bs-label badge-yellow">{% trans "NEW" %}</span>
</a>
<div class="sidebar-submenu">
<ul>
<li><a href="{% url 'cHome' %}"
title="{% trans 'Create Website Limits' %}"><span>{% trans "Create Limits" %}</span></a>
</li>
</ul>
</div><!-- .sidebar-submenu -->
</li>
<li class="serverACL">
<a href="#" title="{% trans 'Docker' %}">
<i class="glyph-icon icon-linecons-fire"></i>
@@ -886,6 +907,7 @@
<script src="{% static 'manageSSL/manageSSL.js' %}"></script>
<script src="{% static 'manageServices/manageServices.js' %}"></script>
<script src="{% static 'dockerManager/dockerManager.js' %}"></script>
<script src="{% static 'containerization/containerization.js' %}"></script>
</div>
</body>
</html>

View File

@@ -11,7 +11,6 @@ urlpatterns = [
#url(r'^upgrade',views.upgrade, name='upgrade'),
url(r'^UpgradeStatus',views.upgradeStatus, name='UpgradeStatus'),
url(r'^upgradeVersion',views.upgradeVersion, name='upgradeVersion'),

View File

@@ -4,6 +4,7 @@ from __future__ import unicode_literals
from cloudManager import CloudManager
import json
from loginSystem.models import Administrator
from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging
def router(request):
try:
@@ -13,6 +14,7 @@ def router(request):
serverUserName = data['serverUserName']
admin = Administrator.objects.get(userName=serverUserName)
cm = CloudManager(data, admin)
if controller == 'statusFunc':

1120
dockerManager/container.py Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -5,6 +5,7 @@ import docker
import json
from django.http import HttpResponse
from loginSystem.views import loadLoginPage
from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging
def preDockerRun(function):
def wrap(request, *args, **kwargs):
@@ -36,7 +37,8 @@ def preDockerRun(function):
try:
client = docker.from_env()
client.ping()
except:
except BaseException, msg:
logging.writeToFile(str(msg))
if isPost:
data_ret = {'status': 0, 'error_message': 'Docker daemon not running or not responsive'}
json_data = json.dumps(data_ret)
@@ -45,4 +47,5 @@ def preDockerRun(function):
return render(request, 'dockerManager/install.html', {'status':admin.type, 'conErr':1})
return function(request, *args, **kwargs)
return wrap

View File

@@ -13,5 +13,6 @@ class Containers(models.Model):
tag = models.CharField(max_length=50, default='unknown')
memory = models.IntegerField(default=0)
ports = models.TextField(default="{}")
volumes = models.TextField(default="{}")
env = models.TextField(default="{}")
startOnReboot = models.IntegerField(default=0)

View File

@@ -1,5 +1,3 @@
app.controller('installDocker', function ($scope, $http, $timeout, $window) {
$scope.installDockerStatus = true;
$scope.installBoxGen = true;
@@ -120,18 +118,27 @@ app.controller('runContainer', function ($scope, $http) {
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.volList = {};
$scope.volListNumber = 0;
$scope.addVolField = function () {
$scope.volList[$scope.volListNumber] = {'dest': '', 'src': ''};
$scope.volListNumber = $scope.volListNumber + 1;
console.log($scope.volList)
};
$scope.removeVolField = function () {
delete $scope.volList[$scope.volListNumber - 1];
$scope.volListNumber = $scope.volListNumber - 1;
};
$scope.addEnvField = function () {
var countEnv = Object.keys($scope.envList).length;
$scope.envList[countEnv + 1] = {'name': '', 'value': ''};
}
};
var statusFile;
$scope.createContainer = function () {
console.log($scope.iport);
console.log($scope.portType);
$scope.containerCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
@@ -157,7 +164,8 @@ app.controller('runContainer', function ($scope, $http) {
memory: memory,
dockerOwner: dockerOwner,
image: image,
envList: $scope.envList
envList: $scope.envList,
volList: $scope.volList
};
@@ -165,8 +173,6 @@ app.controller('runContainer', function ($scope, $http) {
data[port + "/" + protocol] = $scope.eport[port];
});
console.log(data)
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
@@ -314,7 +320,7 @@ app.controller('listContainers', function ($scope, $http) {
if (response.data.delContainerStatus === 1) {
location.reload();
}
else if (response.data.delContainerStatus == 2) {
else if (response.data.delContainerStatus === 2) {
(new PNotify({
title: response.data.error_message,
text: 'Delete anyway?',
@@ -382,7 +388,6 @@ app.controller('listContainers', function ($scope, $http) {
else {
name = $scope.activeLog;
}
console.log(name)
$scope.logs = "Loading...";
url = "/docker/getContainerLogs";
@@ -420,7 +425,7 @@ app.controller('listContainers', function ($scope, $http) {
type: 'error'
});
}
}
};
url = "/docker/getContainerList";
@@ -697,7 +702,16 @@ app.controller('viewContainer', function ($scope, $http) {
});
}
}
};
$scope.addVolField = function () {
$scope.volList[$scope.volListNumber] = {'dest': '', 'src': ''};
$scope.volListNumber = $scope.volListNumber + 1;
};
$scope.removeVolField = function () {
delete $scope.volList[$scope.volListNumber - 1];
$scope.volListNumber = $scope.volListNumber - 1;
};
$scope.saveSettings = function () {
$('#containerSettingLoading').show();
@@ -709,10 +723,11 @@ app.controller('viewContainer', function ($scope, $http) {
memory: $scope.memory,
startOnReboot: $scope.startOnReboot,
envConfirmation: $scope.envConfirmation,
envList: $scope.envList
envList: $scope.envList,
volList: $scope.volList
};
console.log(data)
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')

View File

@@ -107,11 +107,38 @@
</div>
</div>
<div ng-hide="installationDetailsForm" class="col-md-offset-3">
<button type="button" class="btn btn-info" ng-click="addEnvField()">Add more</button>
</div><br>
<div ng-hide="installationDetailsForm" class="form-group text-center">
<label class="control-label">
{% trans "Map Volumes" %}
</label>
</div>
<div ng-repeat="volume in volList track by $index">
<div ng-hide="installationDetailsForm" class="form-group">
<div class="col-sm-3"></div>
<div class="col-sm-2">
<input type="text" class="form-control" ng-model="volList[$index].dest" placeholder="Destination" required>
</div>
<div class="col-sm-4">
<input type="text" class="form-control" ng-model="volList[$index].src" placeholder="Source" required>
</div>
<div ng-show="$last">
<div class="col-sm-1">
<button class="btn btn-primary" type="button" ng-click="removeVolField()"><i class="fa fa-times"></i></button>
</div>
</div>
</div>
</div>
<div ng-hide="installationDetailsForm" class="text-center">
<button type="button" class="btn btn-info" ng-click="addVolField()">{% trans "Add field" %}</button>
</div><br>
<div ng-hide="installationDetailsForm" class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-4">

View File

@@ -210,21 +210,21 @@
<div class="checkbox">
<label>
<input ng-model="envConfirmation" type="checkbox">
Editing ENV will recreate container <i class="fa fa-warning" title="If you tick this checkbox, your container will be recreated with saved information. Data saved inside container will be deleted (Not avaialble for container created outside of cyberpanel)"></i>
Editing ENV or Volume will recreate container <i class="fa fa-warning" title="If you tick this checkbox, your container will be recreated with saved information. Data saved inside container will be deleted (Not avaialble for container created outside of cyberpanel)"></i>
</label>
</div>
</div>
</div>
<hr>
<span ng-init="envList = {}"></span>
{% for env, value in envList.items %}
<span ng-init="envList[{{ forloop.counter0 }}] = {'name':'{{env}}' , 'value':'{{value}}'} "></span>
{% endfor %}
<div ng-repeat="env in envList track by $index">
<div ng-hide="installationDetailsForm" class="form-group">
<label class="col-sm-3 control-label">
<div ng-show="$first">
@@ -238,12 +238,49 @@
<input name="$index" type="text" class="form-control" ng-model="envList[$index].value" required>
</div>
</div>
</div>
<div class="col-md-offset-3">
<button type="button" class="btn btn-info" ng-click="addEnvField()">Add more</button>
</div><br>
<span ng-init="volList = {}"></span>
{% for key, value in volList.items %}
<span ng-init="volList[{{ forloop.counter0 }}] = {'dest':'{{value.bind}}' , 'src':'{{key}}'}"></span>
<span ng-init="volListNumber={{ forloop.counter0 }} + 1"></span>
{% endfor %}
<hr>
<div ng-hide="installationDetailsForm" class="form-group text-center">
<label class="control-label">
{% trans "Map Volumes" %}
</label>
</div>
<div ng-repeat="volume in volList track by $index">
<div ng-hide="installationDetailsForm" class="form-group">
<div class="col-sm-3"></div>
<div class="col-sm-2">
<input type="text" class="form-control" ng-model="volList[$index].dest" placeholder="Destination" required>
</div>
<div class="col-sm-4">
<input type="text" class="form-control" ng-model="volList[$index].src" placeholder="Source" required>
</div>
<div ng-show="$last">
<div class="col-sm-1">
<button class="btn btn-primary" type="button" ng-click="removeVolField()"><i class="fa fa-times"></i></button>
</div>
</div>
</div>
</div>
<div ng-hide="installationDetailsForm" class="text-center">
<button type="button" class="btn btn-info" ng-click="addVolField()">{% trans "Add field" %}</button>
</div><br>
</form>

View File

@@ -4,7 +4,7 @@ from __future__ import unicode_literals
from django.shortcuts import render, redirect, HttpResponse
from loginSystem.models import Administrator
from loginSystem.views import loadLoginPage
from plogical.container import ContainerManager
from .container import ContainerManager
from decorators import preDockerRun
from plogical.acl import ACLManager
import json

View File

@@ -780,7 +780,7 @@ class preFlightsChecks:
os.chdir(self.path)
command = "wget http://cyberpanel.sh/CyberPanel.1.7.7.tar.gz"
command = "wget http://cyberpanel.sh/CyberPanel.1.8.0.tar.gz"
#command = "wget http://cyberpanel.sh/CyberPanelTemp.tar.gz"
preFlightsChecks.call(command, self.distro, '[download_install_CyberPanel]',
'CyberPanel Download',
@@ -789,7 +789,7 @@ class preFlightsChecks:
##
count = 0
command = "tar zxf CyberPanel.1.7.7.tar.gz"
command = "tar zxf CyberPanel.1.8.0.tar.gz"
#command = "tar zxf CyberPanelTemp.tar.gz"
preFlightsChecks.call(command, self.distro, '[download_install_CyberPanel]',
'Extract CyberPanel',1, 1, os.EX_OSERR)

View File

@@ -45,13 +45,13 @@ init()
DIR_OWN="nobody:nobody"
CONF_OWN="nobody:nobody"
BUILD_ROOT="$LSWS_HOME/../../../"
WHM_CGIDIR="$BUILD_ROOT/usr/local/cpanel/whostmgr/docroot/cgi"
if [ -d "$WHM_CGIDIR" ] ; then
HOST_PANEL="cpanel"
fi
}
license()
@@ -59,14 +59,14 @@ license()
SUCC=0
TRY=1
while [ $SUCC -eq "0" ]; do
printf "%s" "Do you agree with above license? "
printf "%s" "Do you agree with above license? "
YES_NO='Yes'
if [ "x$YES_NO" != "xYes" ]; then
if [ $TRY -lt 3 ]; then
echo "Sorry, wrong answer! Type 'Yes' with capital 'Y', try again!"
TRY=`expr $TRY + 1`
else
echo "Abort installation!"
echo "Abort installation!"
exit 0
fi
@@ -114,11 +114,11 @@ install_dir()
DEST_RECOM="/opt/lsws"
fi
WS_USER="nobody"
else
else
cat <<EOF
As you are not the 'root' user, you may not be able to install the
web server into a system directory or enable chroot, the web server
web server into a system directory or enable chroot, the web server
process will run on behalf of current user - '$INST_USER'.
EOF
@@ -131,8 +131,8 @@ EOF
while [ $SUCC -eq "0" ]; do
cat <<EOF
Please specify the destination directory. You must have permissions to
create and manage the directory. It is recommended to install the web server
Please specify the destination directory. You must have permissions to
create and manage the directory. It is recommended to install the web server
at /opt/lsws, /usr/local/lsws or in your home directory like '~/lsws'.
ATTENTION: The user '$WS_USER' must be able to access the destination
@@ -145,7 +145,7 @@ EOF
if [ "x$TMP_DEST" = "x" ]; then
TMP_DEST=$DEST_RECOM
fi
if [ `expr "$TMP_DEST" : '~'` -gt 0 ]; then
if [ `expr "$TMP_DEST" : '~'` -gt 0 ]; then
LSWS_HOME="$HOME`echo $TMP_DEST | sed 's/^~//' `"
else
LSWS_HOME=$TMP_DEST
@@ -164,11 +164,11 @@ EOF
if [ -f "$LSWS_HOME/conf/httpd_config.xml" ]; then
cat <<EOF
Found old configuration file under destination directory $LSWS_HOME.
Found old configuration file under destination directory $LSWS_HOME.
To upgrade, press 'Enter', current configuration will not be changed.
To reinstall, press 'R' or 'r'.
To change directory, press 'C' or 'c'.
To change directory, press 'C' or 'c'.
EOF
@@ -178,15 +178,15 @@ EOF
if [ "x$TMP_URC" = "x" ]; then
INSTALL_TYPE="upgrade"
SET_LOGIN=0
else
else
if [ `expr "$TMP_URC" : '[Uu]'` -gt 0 ]; then
INSTALL_TYPE="upgrade"
SET_LOGIN=0
else
else
if [ `expr "$TMP_URC" : '[Rr]'` -gt 0 ]; then
INSTALL_TYPE="reinstall"
SET_LOGIN=1
else
else
#if [ `expr "$TMP_URC" : '[Cc]'` -gt 0 ]; then
SUCC=0
fi
@@ -224,7 +224,7 @@ admin_login()
SET_LOGIN=1
fi
fi
fi
fi
if [ $SET_LOGIN -eq 1 ]; then
@@ -300,7 +300,7 @@ a non-system user who does not have login shell and home directory such as
'nobody'.
EOF
# get user name
# get user name
SUCC=0
while [ $SUCC -eq "0" ]; do
printf "%s" "User [$WS_USER]: "
@@ -312,22 +312,22 @@ EOF
TST_USER=`expr "$USER_INFO" : 'uid=.*(\(.*\)) gid=.*'`
if [ "x$TST_USER" = "x$TMP_USER" ]; then
USER_ID=`expr "$USER_INFO" : 'uid=\(.*\)(.*) gid=.*'`
if [ $USER_ID -gt 10 ]; then
if [ $USER_ID -gt 10 ]; then
WS_USER=$TMP_USER
SUCC=1
else
cat <<EOF
[ERROR] It is not allowed to run LiteSpeed web server on behalf of a
privileged user, user id must be greater than 10. The user id of user
[ERROR] It is not allowed to run LiteSpeed web server on behalf of a
privileged user, user id must be greater than 10. The user id of user
'$TMP_USER' is '$USER_ID'.
EOF
fi
else
cat <<EOF
cat <<EOF
[ERROR] '$TMP_USER' is not valid user name in your system, please choose
[ERROR] '$TMP_USER' is not valid user name in your system, please choose
another user or create user '$TMP_USER' first.
EOF
@@ -336,7 +336,7 @@ EOF
done
fi
# get group name
# get group name
SUCC=0
TMP_GROUPS=`groups $WS_USER`
TST_GROUPS=`expr "$TMP_GROUPS" : '.*:\(.*\)'`
@@ -347,7 +347,7 @@ EOF
D_GROUP=`$ID_GROUPS $WS_USER`
D_GROUP=`expr "$D_GROUP" : '.*gid=[0-9]*(\(.*\)) groups=.*'`
echo "Please choose the group that the web server running as."
echo
echo
while [ $SUCC -eq "0" ]; do
echo "User '$WS_USER' is the member of following group(s): $TST_GROUPS"
printf "%s" "Group [$D_GROUP]: "
@@ -363,7 +363,7 @@ EOF
cat <<EOF
[ERROR] '$TMP_GROUP' is not valid group for user '$WS_USER', please choose
another group in the list or add user '$WS_USER' to group '$TMP_GROUP'
another group in the list or add user '$WS_USER' to group '$TMP_GROUP'
first.
EOF
@@ -385,7 +385,7 @@ stopLshttpd()
RUNNING_PROCESS=`$PS_CMD | grep lshttpd | grep -v grep`
if [ "x$RUNNING_PROCESS" != "x" ]; then
cat <<EOF
LiteSpeed web server is running, in order to continue installation, the server
LiteSpeed web server is running, in order to continue installation, the server
must be stopped.
EOF
@@ -415,7 +415,7 @@ getServerPort()
cat <<EOF
Please specify the port for normal HTTP service.
Port 80 is the standard HTTP port, only 'root' user is allowed to use
Port 80 is the standard HTTP port, only 'root' user is allowed to use
port 80, if you have another web server running on port 80, you need to
specify another port or stop the other web server before starting LiteSpeed
Web Server.
@@ -513,9 +513,9 @@ configAdminEmail()
Please specify administrators' email addresses.
It is recommended to specify a real email address,
Multiple email addresses can be set by a comma
Multiple email addresses can be set by a comma
delimited list of email addresses. Whenever something
abnormal happened, a notificiation will be sent to
abnormal happened, a notificiation will be sent to
emails listed here.
EOF
@@ -550,9 +550,9 @@ enablePHPHandler()
cat <<EOF
You can setup a global script handler for PHP with the pre-built PHP engine
shipped with this package now. The PHP engine runs as Fast CGI which
outperforms Apache's mod_php.
You can always replace the pre-built PHP engine with your customized PHP
shipped with this package now. The PHP engine runs as Fast CGI which
outperforms Apache's mod_php.
You can always replace the pre-built PHP engine with your customized PHP
engine.
EOF
@@ -568,7 +568,7 @@ EOF
fi
if [ $SETUP_PHP -eq 1 ]; then
PHP_SUFFIX="php"
printf "%s" "Suffix for PHP script(comma separated list) [$PHP_SUFFIX]: "
printf "%s" "Suffix for PHP script(comma separated list) [$PHP_SUFFIX]: "
TMP_SUFFIX='php'
if [ "x$TMP_SUFFIX" != "x" ]; then
PHP_SUFFIX=$TMP_SUFFIX
@@ -677,7 +677,7 @@ util_mkdir()
chown "$OWNER" "$LSWS_HOME/$arg"
chmod $PERM "$LSWS_HOME/$arg"
done
}
@@ -693,7 +693,7 @@ util_cpfile()
chown "$OWNER" "$LSWS_HOME/$arg"
chmod $PERM "$LSWS_HOME/$arg"
done
}
util_ccpfile()
@@ -883,31 +883,31 @@ create_lsadm_freebsd()
{
pw group add lsadm
lsadm_gid=`grep "^lsadm:" /etc/group | awk -F : '{ print $3; }'`
pw user add -g $lsadm_gid -d / -s /usr/sbin/nologin -n lsadm
pw user add -g $lsadm_gid -d / -s /usr/sbin/nologin -n lsadm
pw usermod lsadm -G $WS_GROUP
}
create_lsadm()
{
groupadd lsadm
groupadd lsadm
#1>/dev/null 2>&1
lsadm_gid=`grep "^lsadm:" /etc/group | awk -F : '{ print $3; }'`
useradd -g $lsadm_gid -d / -r -s /sbin/nologin lsadm
useradd -g $lsadm_gid -d / -r -s /sbin/nologin lsadm
usermod -a -G $WS_GROUP lsadm
#1>/dev/null 2>&1
}
create_lsadm_solaris()
{
groupadd lsadm
groupadd lsadm
#1>/dev/null 2>&1
lsadm_gid=`grep "^lsadm:" /etc/group | awk -F: '{ print $3; }'`
useradd -g $lsadm_gid -d / -s /bin/false lsadm
useradd -g $lsadm_gid -d / -s /bin/false lsadm
usermod -G $WS_GROUP lsadm
#1>/dev/null 2>&1
}
@@ -946,7 +946,7 @@ installation()
create_lsadm_freebsd
elif [ "x$SYS_NAME" = "xSunOS" ]; then
create_lsadm_solaris
fi
fi
grep "^lsadm:" /etc/passwd 1>/dev/null 2>&1
if [ $? -eq 0 ]; then
CONF_OWN="lsadm:lsadm"
@@ -959,33 +959,33 @@ installation()
sed "s:%LSWS_CTRL%:$LSWS_HOME/bin/lswsctrl:" "$LSINSTALL_DIR/admin/misc/lsws.rc.in" > "$LSINSTALL_DIR/admin/misc/lsws.rc"
sed "s:%LSWS_CTRL%:$LSWS_HOME/bin/lswsctrl:" "$LSINSTALL_DIR/admin/misc/lsws.rc.gentoo.in" > "$LSINSTALL_DIR/admin/misc/lsws.rc.gentoo"
sed "s:%LSWS_CTRL%:$LSWS_HOME/bin/lswsctrl:" "$LSINSTALL_DIR/admin/misc/lshttpd.service.in" > "$LSINSTALL_DIR/admin/misc/lshttpd.service"
if [ -d "$LSWS_HOME/admin/html.$VERSION" ]; then
rm -rf "$LSWS_HOME/admin/html.$VERSION"
fi
util_mkdir "$SDIR_OWN" $DIR_MOD admin bin docs fcgi-bin lib logs admin/logs add-ons share admin/fcgi-bin
util_mkdir "$SDIR_OWN" $DIR_MOD admin bin docs fcgi-bin lib logs admin/logs add-ons share admin/fcgi-bin
util_mkdir "$SDIR_OWN" $DIR_MOD admin/html.$VERSION admin/misc
util_mkdir "$CONF_OWN" $SDIR_MOD conf conf/cert conf/templates admin/conf admin/conf/cert admin/tmp phpbuild autoupdate
util_mkdir "$CONF_OWN" $SDIR_MOD conf conf/cert conf/templates admin/conf admin/conf/cert admin/tmp phpbuild autoupdate
util_mkdir "$SDIR_OWN" $SDIR_MOD admin/cgid admin/cgid/secret
util_mkdir "$CONF_OWN" $DIR_MOD admin/htpasswds
chgrp $WS_GROUP $LSWS_HOME/admin/tmp $LSWS_HOME/admin/cgid $LSWS_HOME/admin/htpasswds
chmod g+x $LSWS_HOME/admin/tmp $LSWS_HOME/admin/cgid $LSWS_HOME/admin/htpasswds
chown $CONF_OWN $LSWS_HOME/admin/tmp/sess_* 1>/dev/null 2>&1
util_mkdir "$SDIR_OWN" $DIR_MOD DEFAULT
util_mkdir "$SDIR_OWN" $DIR_MOD DEFAULT
buildAdminSslCert
find "$LSWS_HOME/admin/tmp" -type s -atime +1 -delete 2>/dev/null
if [ $? -ne 0 ]; then
find "$LSWS_HOME/admin/tmp" -type s -atime +1 2>/dev/null | xargs rm -f
fi
fi
find "/tmp/lshttpd" -type s -atime +1 -delete 2>/dev/null
if [ $? -ne 0 ]; then
find "/tmp/lshttpd" -type s -atime +1 2>/dev/null | xargs rm -f
fi
fi
if [ "x$HOST_PANEL" = "xcpanel" ]; then
if [ ! -d "$BUILD_ROOT/usr/local/lib/php/autoindex/" ]; then
@@ -1012,21 +1012,21 @@ installation()
fi
util_cpdir "$SDIR_OWN" $DOC_MOD add-ons
util_cpfile "$SDIR_OWN" $EXEC_MOD add-ons/modsec/inspectmulti.sh
util_ccpfile "$SDIR_OWN" $EXEC_MOD fcgi-bin/lsperld.fpl
util_ccpfile "$SDIR_OWN" $EXEC_MOD fcgi-bin/lsperld.fpl
util_cpfile "$SDIR_OWN" $EXEC_MOD fcgi-bin/RackRunner.rb fcgi-bin/RailsRunner.rb fcgi-bin/RailsRunner.rb.2.3
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/fcgi-bin/admin_php5
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/rc-inst.sh admin/misc/admpass.sh admin/misc/rc-uninst.sh admin/misc/uninstall.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/fcgi-bin/admin_php5
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/rc-inst.sh admin/misc/admpass.sh admin/misc/rc-uninst.sh admin/misc/uninstall.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/lsws.rc admin/misc/lshttpd.service admin/misc/lsws.rc.gentoo admin/misc/enable_ruby_python_selector.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/mgr_ver.sh admin/misc/gzipStatic.sh admin/misc/fp_install.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/create_admin_keypair.sh admin/misc/awstats_install.sh admin/misc/update.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/cleancache.sh admin/misc/cleanlitemage.sh admin/misc/lsup5.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/mgr_ver.sh admin/misc/gzipStatic.sh admin/misc/fp_install.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/create_admin_keypair.sh admin/misc/awstats_install.sh admin/misc/update.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/cleancache.sh admin/misc/cleanlitemage.sh admin/misc/lsup5.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/fix_cagefs.sh admin/misc/cp_switch_ws.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/lscmctl
ln -sf ./lsup5.sh "$LSWS_HOME/admin/misc/lsup.sh"
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/ap_lsws.sh.in admin/misc/build_ap_wrapper.sh admin/misc/cpanel_restart_httpd.in
util_cpfile "$SDIR_OWN" $DOC_MOD admin/misc/gdb-bt admin/misc/htpasswd.php admin/misc/php.ini admin/misc/genjCryptionKeyPair.php admin/misc/purge_cache_byurl.php
if [ -f "$LSINSTALL_DIR/admin/misc/chroot.sh" ]; then
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/chroot.sh
fi
@@ -1043,7 +1043,7 @@ installation()
chown $CONF_OWN "$LSWS_HOME/admin/htpasswds/status"
chgrp $WS_GROUP "$LSWS_HOME/admin/htpasswds/status"
chmod 0640 "$LSWS_HOME/admin/htpasswds/status"
if [ $INSTALL_TYPE = "upgrade" ]; then
util_ccpfile "$CONF_OWN" $CONF_MOD admin/conf/admin_config.xml
util_cpfile "$CONF_OWN" $CONF_MOD admin/conf/php.ini
@@ -1067,7 +1067,7 @@ installation()
fi
if [ ! -f "$LSWS_HOME/DEFAULT/conf/vhconf.xml" ]; then
util_mkdir "$CONF_OWN" $DIR_MOD DEFAULT/conf
util_mkdir "$CONF_OWN" $DIR_MOD DEFAULT/conf
util_cpdir "$CONF_OWN" $DOC_MOD DEFAULT/conf
fi
else
@@ -1077,7 +1077,7 @@ installation()
util_cpfile "$CONF_OWN" $CONF_MOD conf/httpd_config.xml conf/mime.properties
util_mkdir "$CONF_OWN" $DIR_MOD DEFAULT/conf
util_cpdir "$CONF_OWN" $DOC_MOD DEFAULT/conf
util_mkdir "$SDIR_OWN" $DIR_MOD DEFAULT/html DEFAULT/cgi-bin
util_mkdir "$SDIR_OWN" $DIR_MOD DEFAULT/html DEFAULT/cgi-bin
util_cpdir "$SDIR_OWN" $DOC_MOD DEFAULT/html DEFAULT/cgi-bin
fi
if [ $SETUP_PHP -eq 1 ]; then
@@ -1110,26 +1110,26 @@ installation()
util_cpfile "$SDIR_OWN" $EXEC_MOD bin/wswatch.sh
util_cpfilev "$SDIR_OWN" $EXEC_MOD $VERSION bin/lswsctrl bin/lshttpd bin/lscgid
util_cpfilev "$SDIR_OWN" $EXEC_MOD $VERSION bin/lswsctrl bin/lshttpd bin/lscgid
$TEST_BIN ! -L "$LSWS_HOME/modules"
if [ $? -eq 0 ]; then
mv -f "$LSWS_HOME/modules" "$LSWS_HOME/modules.old"
fi
if [ -d "$LSWS_HOME/modules.$VERSION" ]; then
rm -rf "$LSWS_HOME/modules.$VERSION"
fi
util_mkdir "$SDIR_OWN" $DIR_MOD modules.$VERSION
util_cpdirv "$SDIR_OWN" $EXEC_MOD $VERSION modules
util_cpdirv "$SDIR_OWN" $EXEC_MOD $VERSION modules
#if [ -e "$LSINSTALL_DIR/bin/lshttpd.dbg" ]; then
# if [ -f "$LSINSTALL_DIR/bin/lshttpd.dbg.$VERSION" ]; then
# rm "$LSINSTALL_DIR/bin/lshttpd.dbg.$VERSION"
# fi
# util_cpfilev "$SDIR_OWN" $EXEC_MOD $VERSION bin/lshttpd.dbg
#
#
# #enable debug build for beta release
# ln -sf ./lshttpd.dbg.$VERSION $LSWS_HOME/bin/lshttpd
#fi
@@ -1141,10 +1141,10 @@ installation()
if [ $INST_USER = "root" ]; then
chmod u+s "$LSWS_HOME/bin/lscgid.$VERSION"
fi
fi
util_cpdir "$SDIR_OWN" $DOC_MOD docs/
util_cpfile "$SDIR_OWN" $DOC_MOD VERSION BUILD LICENSE*
util_cpfile "$SDIR_OWN" $DOC_MOD VERSION BUILD LICENSE*
if [ -f $LSWS_HOME/autoupdate/download ]; then
rm $LSWS_HOME/autoupdate/download
@@ -1158,12 +1158,12 @@ installation()
chown "$CONF_OWN" "$LSWS_HOME/admin/conf/jcryption_keypair"
chmod 0600 "$LSWS_HOME/admin/conf/jcryption_keypair"
fix_cloudlinux
fix_cloudlinux
if [ $INST_USER = "root" ]; then
$LSWS_HOME/admin/misc/rc-inst.sh
fi
fi
}
@@ -1179,7 +1179,7 @@ PHP scripts by caching them in compiled state, the overhead of compiling
PHP is avoided.
Note: If an opcode cache has been installed already, you do not need to
change it. If you need to built PHP binary by yourself, you need to
change it. If you need to built PHP binary by yourself, you need to
built PHP opcode cache from source as well, unless the version of your
PHP binary is same as that the pre-built PHP opcode cache built for.
@@ -1205,8 +1205,8 @@ installAWStats()
AWStats Integration
AWStats is a popular log analyzer that generates advanced web server
statistics. LiteSpeed web server seamlessly integrates AWStats into
AWStats is a popular log analyzer that generates advanced web server
statistics. LiteSpeed web server seamlessly integrates AWStats into
its Web Admin Interface. AWStats configuration and statistics update
have been taken care of by LiteSpeed web server.
@@ -1238,23 +1238,23 @@ Congratulations! The LiteSpeed Web Server has been successfully installed.
Command line script - "$LSWS_HOME/bin/lswsctrl"
can be used to start or stop the server.
It is recommended to limit access to the web administration interface.
It is recommended to limit access to the web administration interface.
Right now the interface can be accessed from anywhere where this
machine can be reached over the network.
machine can be reached over the network.
Three options are available:
1. If the interface needs to be accessed only from this machine, just
change the listener for the interface to only listen on the loopback
interface - localhost(127.0.0.1).
2. If the interface needs to be accessible from limited IP addresses or sub
1. If the interface needs to be accessed only from this machine, just
change the listener for the interface to only listen on the loopback
interface - localhost(127.0.0.1).
2. If the interface needs to be accessible from limited IP addresses or sub
networks, then set up access control rules for the interface accordingly.
3. If the interface has to be accessible via internet, SSL (Secure Sockets
3. If the interface has to be accessible via internet, SSL (Secure Sockets
Layer) should be used. Please read respective HOW-TOs on SSL configuration.
To change configurations of the interface, login and click
To change configurations of the interface, login and click
"Interface Configuration" button on the main page.
The administration interface is located at http://localhost:<ADMIN_PORT>/
or http://<ip_or_Hostname_of_this_machine>:<ADMIN_PORT>/
or http://<ip_or_Hostname_of_this_machine>:<ADMIN_PORT>/
EOF
@@ -1262,7 +1262,7 @@ EOF
if [ $INSTALL_TYPE != "upgrade" ]; then
printf "%s\n%s" "Would you like to have LiteSpeed Web Server started automatically" "when the server restarts [Y/n]? "
START_SERVER='y'
echo
echo
if [ "x$START_SERVER" = "x" ]; then
START_SERVER=y
@@ -1271,7 +1271,7 @@ EOF
$LSWS_HOME/admin/misc/rc-inst.sh
else
cat <<EOF
If you want to start the web server automatically later, just run
If you want to start the web server automatically later, just run
"$LSWS_HOME//rc-inst.sh"
to install the service control script.
@@ -1279,12 +1279,12 @@ EOF
fi
fi
if [ "x$HOST_PANEL" != "x" ]; then
cat << EOF
cat << EOF
The default configuration file contain support for both PHP4 and PHP5,
A prebuilt PHP4 binary comes with this package, however, we recommend
A prebuilt PHP4 binary comes with this package, however, we recommend
you to build your own PHP4 and PHP5 binaries though our web console with
the same configuration parameters as your current PHP installation. You
the same configuration parameters as your current PHP installation. You
can check your current PHP configuration via a phpinfo() page.
Press [ENTER] to continue
@@ -1293,7 +1293,7 @@ EOF
read TMP_VAL
cat << EOF
cat << EOF
When you replace Apache with LiteSpeed, remember to stop Apache completely.
On most Linux servers, you should do:
@@ -1323,7 +1323,7 @@ EOF
printf "%s" "Would you like to restart it right now [Y/n]? "
fi
START_SERVER='y'
echo
echo
if [ "x$START_SERVER" = "x" ]; then
START_SERVER=y
@@ -1361,4 +1361,3 @@ EOF
fi
}

View File

@@ -473,13 +473,13 @@ fi
cat <<EOF
Installing, please wait...
Installing, please wait...
EOF
if [ "x$HOST_PANEL" = "xdirectadmin" ]; then
chmod g+x /var/log/httpd/
chgrp apache /var/log/httpd/
chgrp apache /var/log/httpd/
chown apache:apache /var/log/httpd/domains
fi
@@ -503,4 +503,3 @@ fi
finish

Binary file not shown.

View File

@@ -67,7 +67,7 @@
<div class="col-md-8 col-lg-6 clearfix center-margin">
<div class="row">
<div class="col-md-5">
<h3 class="text-transform-upr font-size-17">CyberPanel <span class="opacity-80">v 1.7</span></h3>
<h3 class="text-transform-upr font-size-17">CyberPanel <span class="opacity-80">v 1.8</span></h3>
<p class="font-gray">Web Hosting Control Panel</p>
<div class="divider"></div>
<ul class="reset-ul">

View File

@@ -156,7 +156,7 @@ def loadLoginPage(request):
firstName="Cyber",lastName="Panel", acl=acl, token=token)
admin.save()
vers = version(currentVersion="1.7", build=7)
vers = version(currentVersion="1.8", build=0)
vers.save()
package = Package(admin=admin, packageName="Default", diskSpace=1000,

View File

@@ -14,10 +14,12 @@ class httpProc:
return render(self.request, self.templateName)
else:
return render(self.request, self.templateName, self.data)
def ajaxPre(self, status, errorMessage, success = None):
final_dic = {'status': status, 'error_message': errorMessage, 'success': success}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)
def ajax(self, status, errorMessage, data = None):
if data == None:
finalDic = {'status': status, 'error_message': errorMessage}
@@ -34,3 +36,9 @@ class httpProc:
finalJson = json.dumps(finalDic)
return HttpResponse(finalJson)
@staticmethod
def AJAX(status, errorMessage, success = None):
final_dic = {'status': status, 'error_message': errorMessage, 'success': success}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)

View File

@@ -114,5 +114,17 @@ class ProcessUtilities:
else:
return ProcessUtilities.centos
@staticmethod
def containerCheck():
try:
command = 'sudo cat /etc/cgrules.conf'
result = subprocess.call(shlex.split(command))
if result == 1:
return 0
else:
return 1
except BaseException:
return 0

View File

@@ -410,6 +410,77 @@ WantedBy=multi-user.target"""
CONSTRAINT `s3Backups_backuplogs_owner_id_c7cb5872_fk_s3Backups` FOREIGN KEY (`owner_id`) REFERENCES `s3Backups_backupplando` (`id`)
)"""
try:
cursor.execute(query)
except:
pass
##
query = """CREATE TABLE `s3Backups_minionodes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`endPointURL` varchar(200) NOT NULL,
`accessKey` varchar(200) NOT NULL,
`secretKey` varchar(200) NOT NULL,
`owner_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `endPointURL` (`endPointURL`),
UNIQUE KEY `accessKey` (`accessKey`),
KEY `s3Backups_minionodes_owner_id_e50993d9_fk_loginSyst` (`owner_id`),
CONSTRAINT `s3Backups_minionodes_owner_id_e50993d9_fk_loginSyst` FOREIGN KEY (`owner_id`) REFERENCES `loginSystem_administrator` (`id`)
)"""
try:
cursor.execute(query)
except:
pass
query = """CREATE TABLE `s3Backups_backupplanminio` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`freq` varchar(50) NOT NULL,
`retention` int(11) NOT NULL,
`lastRun` varchar(50) NOT NULL,
`minioNode_id` int(11) NOT NULL,
`owner_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
KEY `s3Backups_backupplan_minioNode_id_a4eaf917_fk_s3Backups` (`minioNode_id`),
KEY `s3Backups_backupplan_owner_id_d6830e67_fk_loginSyst` (`owner_id`),
CONSTRAINT `s3Backups_backupplan_minioNode_id_a4eaf917_fk_s3Backups` FOREIGN KEY (`minioNode_id`) REFERENCES `s3Backups_minionodes` (`id`),
CONSTRAINT `s3Backups_backupplan_owner_id_d6830e67_fk_loginSyst` FOREIGN KEY (`owner_id`) REFERENCES `loginSystem_administrator` (`id`)
)"""
try:
cursor.execute(query)
except:
pass
query = """CREATE TABLE `s3Backups_websitesinplanminio` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`domain` varchar(100) NOT NULL,
`owner_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `s3Backups_websitesin_owner_id_224ce049_fk_s3Backups` (`owner_id`),
CONSTRAINT `s3Backups_websitesin_owner_id_224ce049_fk_s3Backups` FOREIGN KEY (`owner_id`) REFERENCES `s3Backups_backupplanminio` (`id`)
)"""
try:
cursor.execute(query)
except:
pass
query = """CREATE TABLE `s3Backups_backuplogsminio` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`timeStamp` varchar(200) NOT NULL,
`level` varchar(5) NOT NULL,
`msg` varchar(500) NOT NULL,
`owner_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `s3Backups_backuplogs_owner_id_f19e1736_fk_s3Backups` (`owner_id`),
CONSTRAINT `s3Backups_backuplogs_owner_id_f19e1736_fk_s3Backups` FOREIGN KEY (`owner_id`) REFERENCES `s3Backups_backupplanminio` (`id`)
)"""
try:
cursor.execute(query)
except:
@@ -633,6 +704,37 @@ WantedBy=multi-user.target"""
except:
pass
@staticmethod
def containerMigrations():
try:
connection, cursor = Upgrade.setupConnection('cyberpanel')
query = """CREATE TABLE `containerization_containerlimits` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cpuPers` varchar(10) NOT NULL,
`IO` varchar(10) NOT NULL,
`IOPS` varchar(10) NOT NULL,
`memory` varchar(10) NOT NULL,
`networkSpeed` varchar(10) NOT NULL,
`networkHexValue` varchar(10) NOT NULL,
`enforce` int(11) NOT NULL,
`owner_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `containerization_con_owner_id_494eb637_fk_websiteFu` (`owner_id`),
CONSTRAINT `containerization_con_owner_id_494eb637_fk_websiteFu` FOREIGN KEY (`owner_id`) REFERENCES `websiteFunctions_websites` (`id`)
)"""
try:
cursor.execute(query)
except:
pass
try:
connection.close()
except:
pass
except:
pass
@staticmethod
def enableServices():
try:
@@ -705,6 +807,11 @@ WantedBy=multi-user.target"""
if items.find('dockerManager') > -1:
dockerManager = 0
containerization = 1
for items in data:
if items.find('containerization') > -1:
containerization = 0
Upgrade.stdOut('Restoring settings file!')
@@ -724,6 +831,10 @@ WantedBy=multi-user.target"""
writeToFile.writelines(" 's3Backups',\n")
if dockerManager == 1:
writeToFile.writelines(" 'dockerManager',\n")
if containerization == 1:
writeToFile.writelines(" 'containerization',\n")
else:
writeToFile.writelines(items)
@@ -906,6 +1017,7 @@ WantedBy=multi-user.target"""
Upgrade.applyLoginSystemMigrations()
Upgrade.s3BackupMigrations()
Upgrade.containerMigrations()
Upgrade.enableServices()
Upgrade.installPHP73()

View File

@@ -9,7 +9,6 @@ try:
import threading as multi
from plogical.mailUtilities import mailUtilities
import boto3
from minio.error import ResponseError
from boto3.s3.transfer import TransferConfig
import json
from .models import *
@@ -148,6 +147,17 @@ class S3Backups(multi.Thread):
proc = httpProc(self.request, None, None)
return proc.ajax(0, str(msg))
def fetchAWSKeys(self):
path = '/home/cyberpanel/.aws'
credentials = path + '/credentials'
data = open(credentials, 'r').readlines()
aws_access_key_id = data[1].split(' ')[2].strip(' ').strip('\n')
aws_secret_access_key = data[2].split(' ')[2].strip(' ').strip('\n')
return aws_access_key_id, aws_secret_access_key
def fetchBuckets(self):
try:
@@ -159,7 +169,15 @@ class S3Backups(multi.Thread):
if currentACL['admin'] == 0:
return proc.ajax(0, 'Only administrators can use AWS S3 Backups.')
s3 = boto3.resource('s3')
aws_access_key_id, aws_secret_access_key = self.fetchAWSKeys()
s3 = boto3.resource(
's3',
aws_access_key_id = aws_access_key_id,
aws_secret_access_key = aws_secret_access_key
)
json_data = "["
checker = 0
@@ -404,7 +422,16 @@ class S3Backups(multi.Thread):
plan = BackupPlan.objects.get(name=self.data['planName'])
bucketName = plan.bucket.strip('\n').strip(' ')
runTime = time.strftime("%d:%m:%Y")
client = boto3.client('s3')
aws_access_key_id, aws_secret_access_key = self.fetchAWSKeys()
client = boto3.client(
's3',
aws_access_key_id = aws_access_key_id,
aws_secret_access_key = aws_secret_access_key
)
config = TransferConfig(multipart_threshold=1024 * 25, max_concurrency=10,
multipart_chunksize=1024 * 25, use_threads=True)

View File

@@ -41,17 +41,17 @@ init()
PHP_SUEXEC=2
WS_USER=nobody
WS_GROUP=nogroup
WS_GROUP=nobody
DIR_OWN="nobody:nobody"
CONF_OWN="nobody:nobody"
BUILD_ROOT="$LSWS_HOME/../../../"
WHM_CGIDIR="$BUILD_ROOT/usr/local/cpanel/whostmgr/docroot/cgi"
if [ -d "$WHM_CGIDIR" ] ; then
HOST_PANEL="cpanel"
fi
}
license()
@@ -59,14 +59,14 @@ license()
SUCC=0
TRY=1
while [ $SUCC -eq "0" ]; do
printf "%s" "Do you agree with above license? "
printf "%s" "Do you agree with above license? "
YES_NO='Yes'
if [ "x$YES_NO" != "xYes" ]; then
if [ $TRY -lt 3 ]; then
echo "Sorry, wrong answer! Type 'Yes' with capital 'Y', try again!"
TRY=`expr $TRY + 1`
else
echo "Abort installation!"
echo "Abort installation!"
exit 0
fi
@@ -114,11 +114,11 @@ install_dir()
DEST_RECOM="/opt/lsws"
fi
WS_USER="nobody"
else
else
cat <<EOF
As you are not the 'root' user, you may not be able to install the
web server into a system directory or enable chroot, the web server
web server into a system directory or enable chroot, the web server
process will run on behalf of current user - '$INST_USER'.
EOF
@@ -131,8 +131,8 @@ EOF
while [ $SUCC -eq "0" ]; do
cat <<EOF
Please specify the destination directory. You must have permissions to
create and manage the directory. It is recommended to install the web server
Please specify the destination directory. You must have permissions to
create and manage the directory. It is recommended to install the web server
at /opt/lsws, /usr/local/lsws or in your home directory like '~/lsws'.
ATTENTION: The user '$WS_USER' must be able to access the destination
@@ -145,7 +145,7 @@ EOF
if [ "x$TMP_DEST" = "x" ]; then
TMP_DEST=$DEST_RECOM
fi
if [ `expr "$TMP_DEST" : '~'` -gt 0 ]; then
if [ `expr "$TMP_DEST" : '~'` -gt 0 ]; then
LSWS_HOME="$HOME`echo $TMP_DEST | sed 's/^~//' `"
else
LSWS_HOME=$TMP_DEST
@@ -164,11 +164,11 @@ EOF
if [ -f "$LSWS_HOME/conf/httpd_config.xml" ]; then
cat <<EOF
Found old configuration file under destination directory $LSWS_HOME.
Found old configuration file under destination directory $LSWS_HOME.
To upgrade, press 'Enter', current configuration will not be changed.
To reinstall, press 'R' or 'r'.
To change directory, press 'C' or 'c'.
To change directory, press 'C' or 'c'.
EOF
@@ -178,15 +178,15 @@ EOF
if [ "x$TMP_URC" = "x" ]; then
INSTALL_TYPE="upgrade"
SET_LOGIN=0
else
else
if [ `expr "$TMP_URC" : '[Uu]'` -gt 0 ]; then
INSTALL_TYPE="upgrade"
SET_LOGIN=0
else
else
if [ `expr "$TMP_URC" : '[Rr]'` -gt 0 ]; then
INSTALL_TYPE="reinstall"
SET_LOGIN=1
else
else
#if [ `expr "$TMP_URC" : '[Cc]'` -gt 0 ]; then
SUCC=0
fi
@@ -224,7 +224,7 @@ admin_login()
SET_LOGIN=1
fi
fi
fi
fi
if [ $SET_LOGIN -eq 1 ]; then
@@ -300,7 +300,7 @@ a non-system user who does not have login shell and home directory such as
'nobody'.
EOF
# get user name
# get user name
SUCC=0
while [ $SUCC -eq "0" ]; do
printf "%s" "User [$WS_USER]: "
@@ -312,22 +312,22 @@ EOF
TST_USER=`expr "$USER_INFO" : 'uid=.*(\(.*\)) gid=.*'`
if [ "x$TST_USER" = "x$TMP_USER" ]; then
USER_ID=`expr "$USER_INFO" : 'uid=\(.*\)(.*) gid=.*'`
if [ $USER_ID -gt 10 ]; then
if [ $USER_ID -gt 10 ]; then
WS_USER=$TMP_USER
SUCC=1
else
cat <<EOF
[ERROR] It is not allowed to run LiteSpeed web server on behalf of a
privileged user, user id must be greater than 10. The user id of user
[ERROR] It is not allowed to run LiteSpeed web server on behalf of a
privileged user, user id must be greater than 10. The user id of user
'$TMP_USER' is '$USER_ID'.
EOF
fi
else
cat <<EOF
cat <<EOF
[ERROR] '$TMP_USER' is not valid user name in your system, please choose
[ERROR] '$TMP_USER' is not valid user name in your system, please choose
another user or create user '$TMP_USER' first.
EOF
@@ -336,7 +336,7 @@ EOF
done
fi
# get group name
# get group name
SUCC=0
TMP_GROUPS=`groups $WS_USER`
TST_GROUPS=`expr "$TMP_GROUPS" : '.*:\(.*\)'`
@@ -347,7 +347,7 @@ EOF
D_GROUP=`$ID_GROUPS $WS_USER`
D_GROUP=`expr "$D_GROUP" : '.*gid=[0-9]*(\(.*\)) groups=.*'`
echo "Please choose the group that the web server running as."
echo
echo
while [ $SUCC -eq "0" ]; do
echo "User '$WS_USER' is the member of following group(s): $TST_GROUPS"
printf "%s" "Group [$D_GROUP]: "
@@ -363,7 +363,7 @@ EOF
cat <<EOF
[ERROR] '$TMP_GROUP' is not valid group for user '$WS_USER', please choose
another group in the list or add user '$WS_USER' to group '$TMP_GROUP'
another group in the list or add user '$WS_USER' to group '$TMP_GROUP'
first.
EOF
@@ -385,7 +385,7 @@ stopLshttpd()
RUNNING_PROCESS=`$PS_CMD | grep lshttpd | grep -v grep`
if [ "x$RUNNING_PROCESS" != "x" ]; then
cat <<EOF
LiteSpeed web server is running, in order to continue installation, the server
LiteSpeed web server is running, in order to continue installation, the server
must be stopped.
EOF
@@ -415,7 +415,7 @@ getServerPort()
cat <<EOF
Please specify the port for normal HTTP service.
Port 80 is the standard HTTP port, only 'root' user is allowed to use
Port 80 is the standard HTTP port, only 'root' user is allowed to use
port 80, if you have another web server running on port 80, you need to
specify another port or stop the other web server before starting LiteSpeed
Web Server.
@@ -513,9 +513,9 @@ configAdminEmail()
Please specify administrators' email addresses.
It is recommended to specify a real email address,
Multiple email addresses can be set by a comma
Multiple email addresses can be set by a comma
delimited list of email addresses. Whenever something
abnormal happened, a notificiation will be sent to
abnormal happened, a notificiation will be sent to
emails listed here.
EOF
@@ -550,9 +550,9 @@ enablePHPHandler()
cat <<EOF
You can setup a global script handler for PHP with the pre-built PHP engine
shipped with this package now. The PHP engine runs as Fast CGI which
outperforms Apache's mod_php.
You can always replace the pre-built PHP engine with your customized PHP
shipped with this package now. The PHP engine runs as Fast CGI which
outperforms Apache's mod_php.
You can always replace the pre-built PHP engine with your customized PHP
engine.
EOF
@@ -568,7 +568,7 @@ EOF
fi
if [ $SETUP_PHP -eq 1 ]; then
PHP_SUFFIX="php"
printf "%s" "Suffix for PHP script(comma separated list) [$PHP_SUFFIX]: "
printf "%s" "Suffix for PHP script(comma separated list) [$PHP_SUFFIX]: "
TMP_SUFFIX='php'
if [ "x$TMP_SUFFIX" != "x" ]; then
PHP_SUFFIX=$TMP_SUFFIX
@@ -677,7 +677,7 @@ util_mkdir()
chown "$OWNER" "$LSWS_HOME/$arg"
chmod $PERM "$LSWS_HOME/$arg"
done
}
@@ -693,7 +693,7 @@ util_cpfile()
chown "$OWNER" "$LSWS_HOME/$arg"
chmod $PERM "$LSWS_HOME/$arg"
done
}
util_ccpfile()
@@ -883,31 +883,31 @@ create_lsadm_freebsd()
{
pw group add lsadm
lsadm_gid=`grep "^lsadm:" /etc/group | awk -F : '{ print $3; }'`
pw user add -g $lsadm_gid -d / -s /usr/sbin/nologin -n lsadm
pw user add -g $lsadm_gid -d / -s /usr/sbin/nologin -n lsadm
pw usermod lsadm -G $WS_GROUP
}
create_lsadm()
{
groupadd lsadm
groupadd lsadm
#1>/dev/null 2>&1
lsadm_gid=`grep "^lsadm:" /etc/group | awk -F : '{ print $3; }'`
useradd -g $lsadm_gid -d / -r -s /sbin/nologin lsadm
useradd -g $lsadm_gid -d / -r -s /sbin/nologin lsadm
usermod -a -G $WS_GROUP lsadm
#1>/dev/null 2>&1
}
create_lsadm_solaris()
{
groupadd lsadm
groupadd lsadm
#1>/dev/null 2>&1
lsadm_gid=`grep "^lsadm:" /etc/group | awk -F: '{ print $3; }'`
useradd -g $lsadm_gid -d / -s /bin/false lsadm
useradd -g $lsadm_gid -d / -s /bin/false lsadm
usermod -G $WS_GROUP lsadm
#1>/dev/null 2>&1
}
@@ -946,7 +946,7 @@ installation()
create_lsadm_freebsd
elif [ "x$SYS_NAME" = "xSunOS" ]; then
create_lsadm_solaris
fi
fi
grep "^lsadm:" /etc/passwd 1>/dev/null 2>&1
if [ $? -eq 0 ]; then
CONF_OWN="lsadm:lsadm"
@@ -959,33 +959,33 @@ installation()
sed "s:%LSWS_CTRL%:$LSWS_HOME/bin/lswsctrl:" "$LSINSTALL_DIR/admin/misc/lsws.rc.in" > "$LSINSTALL_DIR/admin/misc/lsws.rc"
sed "s:%LSWS_CTRL%:$LSWS_HOME/bin/lswsctrl:" "$LSINSTALL_DIR/admin/misc/lsws.rc.gentoo.in" > "$LSINSTALL_DIR/admin/misc/lsws.rc.gentoo"
sed "s:%LSWS_CTRL%:$LSWS_HOME/bin/lswsctrl:" "$LSINSTALL_DIR/admin/misc/lshttpd.service.in" > "$LSINSTALL_DIR/admin/misc/lshttpd.service"
if [ -d "$LSWS_HOME/admin/html.$VERSION" ]; then
rm -rf "$LSWS_HOME/admin/html.$VERSION"
fi
util_mkdir "$SDIR_OWN" $DIR_MOD admin bin docs fcgi-bin lib logs admin/logs add-ons share admin/fcgi-bin
util_mkdir "$SDIR_OWN" $DIR_MOD admin bin docs fcgi-bin lib logs admin/logs add-ons share admin/fcgi-bin
util_mkdir "$SDIR_OWN" $DIR_MOD admin/html.$VERSION admin/misc
util_mkdir "$CONF_OWN" $SDIR_MOD conf conf/cert conf/templates admin/conf admin/conf/cert admin/tmp phpbuild autoupdate
util_mkdir "$CONF_OWN" $SDIR_MOD conf conf/cert conf/templates admin/conf admin/conf/cert admin/tmp phpbuild autoupdate
util_mkdir "$SDIR_OWN" $SDIR_MOD admin/cgid admin/cgid/secret
util_mkdir "$CONF_OWN" $DIR_MOD admin/htpasswds
chgrp $WS_GROUP $LSWS_HOME/admin/tmp $LSWS_HOME/admin/cgid $LSWS_HOME/admin/htpasswds
chmod g+x $LSWS_HOME/admin/tmp $LSWS_HOME/admin/cgid $LSWS_HOME/admin/htpasswds
chown $CONF_OWN $LSWS_HOME/admin/tmp/sess_* 1>/dev/null 2>&1
util_mkdir "$SDIR_OWN" $DIR_MOD DEFAULT
util_mkdir "$SDIR_OWN" $DIR_MOD DEFAULT
buildAdminSslCert
find "$LSWS_HOME/admin/tmp" -type s -atime +1 -delete 2>/dev/null
if [ $? -ne 0 ]; then
find "$LSWS_HOME/admin/tmp" -type s -atime +1 2>/dev/null | xargs rm -f
fi
fi
find "/tmp/lshttpd" -type s -atime +1 -delete 2>/dev/null
if [ $? -ne 0 ]; then
find "/tmp/lshttpd" -type s -atime +1 2>/dev/null | xargs rm -f
fi
fi
if [ "x$HOST_PANEL" = "xcpanel" ]; then
if [ ! -d "$BUILD_ROOT/usr/local/lib/php/autoindex/" ]; then
@@ -1012,21 +1012,21 @@ installation()
fi
util_cpdir "$SDIR_OWN" $DOC_MOD add-ons
util_cpfile "$SDIR_OWN" $EXEC_MOD add-ons/modsec/inspectmulti.sh
util_ccpfile "$SDIR_OWN" $EXEC_MOD fcgi-bin/lsperld.fpl
util_ccpfile "$SDIR_OWN" $EXEC_MOD fcgi-bin/lsperld.fpl
util_cpfile "$SDIR_OWN" $EXEC_MOD fcgi-bin/RackRunner.rb fcgi-bin/RailsRunner.rb fcgi-bin/RailsRunner.rb.2.3
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/fcgi-bin/admin_php5
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/rc-inst.sh admin/misc/admpass.sh admin/misc/rc-uninst.sh admin/misc/uninstall.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/fcgi-bin/admin_php5
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/rc-inst.sh admin/misc/admpass.sh admin/misc/rc-uninst.sh admin/misc/uninstall.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/lsws.rc admin/misc/lshttpd.service admin/misc/lsws.rc.gentoo admin/misc/enable_ruby_python_selector.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/mgr_ver.sh admin/misc/gzipStatic.sh admin/misc/fp_install.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/create_admin_keypair.sh admin/misc/awstats_install.sh admin/misc/update.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/cleancache.sh admin/misc/cleanlitemage.sh admin/misc/lsup5.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/mgr_ver.sh admin/misc/gzipStatic.sh admin/misc/fp_install.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/create_admin_keypair.sh admin/misc/awstats_install.sh admin/misc/update.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/cleancache.sh admin/misc/cleanlitemage.sh admin/misc/lsup5.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/fix_cagefs.sh admin/misc/cp_switch_ws.sh
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/lscmctl
ln -sf ./lsup5.sh "$LSWS_HOME/admin/misc/lsup.sh"
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/ap_lsws.sh.in admin/misc/build_ap_wrapper.sh admin/misc/cpanel_restart_httpd.in
util_cpfile "$SDIR_OWN" $DOC_MOD admin/misc/gdb-bt admin/misc/htpasswd.php admin/misc/php.ini admin/misc/genjCryptionKeyPair.php admin/misc/purge_cache_byurl.php
if [ -f "$LSINSTALL_DIR/admin/misc/chroot.sh" ]; then
util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/chroot.sh
fi
@@ -1043,7 +1043,7 @@ installation()
chown $CONF_OWN "$LSWS_HOME/admin/htpasswds/status"
chgrp $WS_GROUP "$LSWS_HOME/admin/htpasswds/status"
chmod 0640 "$LSWS_HOME/admin/htpasswds/status"
if [ $INSTALL_TYPE = "upgrade" ]; then
util_ccpfile "$CONF_OWN" $CONF_MOD admin/conf/admin_config.xml
util_cpfile "$CONF_OWN" $CONF_MOD admin/conf/php.ini
@@ -1067,7 +1067,7 @@ installation()
fi
if [ ! -f "$LSWS_HOME/DEFAULT/conf/vhconf.xml" ]; then
util_mkdir "$CONF_OWN" $DIR_MOD DEFAULT/conf
util_mkdir "$CONF_OWN" $DIR_MOD DEFAULT/conf
util_cpdir "$CONF_OWN" $DOC_MOD DEFAULT/conf
fi
else
@@ -1077,7 +1077,7 @@ installation()
util_cpfile "$CONF_OWN" $CONF_MOD conf/httpd_config.xml conf/mime.properties
util_mkdir "$CONF_OWN" $DIR_MOD DEFAULT/conf
util_cpdir "$CONF_OWN" $DOC_MOD DEFAULT/conf
util_mkdir "$SDIR_OWN" $DIR_MOD DEFAULT/html DEFAULT/cgi-bin
util_mkdir "$SDIR_OWN" $DIR_MOD DEFAULT/html DEFAULT/cgi-bin
util_cpdir "$SDIR_OWN" $DOC_MOD DEFAULT/html DEFAULT/cgi-bin
fi
if [ $SETUP_PHP -eq 1 ]; then
@@ -1110,26 +1110,26 @@ installation()
util_cpfile "$SDIR_OWN" $EXEC_MOD bin/wswatch.sh
util_cpfilev "$SDIR_OWN" $EXEC_MOD $VERSION bin/lswsctrl bin/lshttpd bin/lscgid
util_cpfilev "$SDIR_OWN" $EXEC_MOD $VERSION bin/lswsctrl bin/lshttpd bin/lscgid
$TEST_BIN ! -L "$LSWS_HOME/modules"
if [ $? -eq 0 ]; then
mv -f "$LSWS_HOME/modules" "$LSWS_HOME/modules.old"
fi
if [ -d "$LSWS_HOME/modules.$VERSION" ]; then
rm -rf "$LSWS_HOME/modules.$VERSION"
fi
util_mkdir "$SDIR_OWN" $DIR_MOD modules.$VERSION
util_cpdirv "$SDIR_OWN" $EXEC_MOD $VERSION modules
util_cpdirv "$SDIR_OWN" $EXEC_MOD $VERSION modules
#if [ -e "$LSINSTALL_DIR/bin/lshttpd.dbg" ]; then
# if [ -f "$LSINSTALL_DIR/bin/lshttpd.dbg.$VERSION" ]; then
# rm "$LSINSTALL_DIR/bin/lshttpd.dbg.$VERSION"
# fi
# util_cpfilev "$SDIR_OWN" $EXEC_MOD $VERSION bin/lshttpd.dbg
#
#
# #enable debug build for beta release
# ln -sf ./lshttpd.dbg.$VERSION $LSWS_HOME/bin/lshttpd
#fi
@@ -1141,10 +1141,10 @@ installation()
if [ $INST_USER = "root" ]; then
chmod u+s "$LSWS_HOME/bin/lscgid.$VERSION"
fi
fi
util_cpdir "$SDIR_OWN" $DOC_MOD docs/
util_cpfile "$SDIR_OWN" $DOC_MOD VERSION BUILD LICENSE*
util_cpfile "$SDIR_OWN" $DOC_MOD VERSION BUILD LICENSE*
if [ -f $LSWS_HOME/autoupdate/download ]; then
rm $LSWS_HOME/autoupdate/download
@@ -1158,12 +1158,12 @@ installation()
chown "$CONF_OWN" "$LSWS_HOME/admin/conf/jcryption_keypair"
chmod 0600 "$LSWS_HOME/admin/conf/jcryption_keypair"
fix_cloudlinux
fix_cloudlinux
if [ $INST_USER = "root" ]; then
$LSWS_HOME/admin/misc/rc-inst.sh
fi
fi
}
@@ -1179,7 +1179,7 @@ PHP scripts by caching them in compiled state, the overhead of compiling
PHP is avoided.
Note: If an opcode cache has been installed already, you do not need to
change it. If you need to built PHP binary by yourself, you need to
change it. If you need to built PHP binary by yourself, you need to
built PHP opcode cache from source as well, unless the version of your
PHP binary is same as that the pre-built PHP opcode cache built for.
@@ -1205,8 +1205,8 @@ installAWStats()
AWStats Integration
AWStats is a popular log analyzer that generates advanced web server
statistics. LiteSpeed web server seamlessly integrates AWStats into
AWStats is a popular log analyzer that generates advanced web server
statistics. LiteSpeed web server seamlessly integrates AWStats into
its Web Admin Interface. AWStats configuration and statistics update
have been taken care of by LiteSpeed web server.
@@ -1238,23 +1238,23 @@ Congratulations! The LiteSpeed Web Server has been successfully installed.
Command line script - "$LSWS_HOME/bin/lswsctrl"
can be used to start or stop the server.
It is recommended to limit access to the web administration interface.
It is recommended to limit access to the web administration interface.
Right now the interface can be accessed from anywhere where this
machine can be reached over the network.
machine can be reached over the network.
Three options are available:
1. If the interface needs to be accessed only from this machine, just
change the listener for the interface to only listen on the loopback
interface - localhost(127.0.0.1).
2. If the interface needs to be accessible from limited IP addresses or sub
1. If the interface needs to be accessed only from this machine, just
change the listener for the interface to only listen on the loopback
interface - localhost(127.0.0.1).
2. If the interface needs to be accessible from limited IP addresses or sub
networks, then set up access control rules for the interface accordingly.
3. If the interface has to be accessible via internet, SSL (Secure Sockets
3. If the interface has to be accessible via internet, SSL (Secure Sockets
Layer) should be used. Please read respective HOW-TOs on SSL configuration.
To change configurations of the interface, login and click
To change configurations of the interface, login and click
"Interface Configuration" button on the main page.
The administration interface is located at http://localhost:<ADMIN_PORT>/
or http://<ip_or_Hostname_of_this_machine>:<ADMIN_PORT>/
or http://<ip_or_Hostname_of_this_machine>:<ADMIN_PORT>/
EOF
@@ -1262,7 +1262,7 @@ EOF
if [ $INSTALL_TYPE != "upgrade" ]; then
printf "%s\n%s" "Would you like to have LiteSpeed Web Server started automatically" "when the server restarts [Y/n]? "
START_SERVER='y'
echo
echo
if [ "x$START_SERVER" = "x" ]; then
START_SERVER=y
@@ -1271,7 +1271,7 @@ EOF
$LSWS_HOME/admin/misc/rc-inst.sh
else
cat <<EOF
If you want to start the web server automatically later, just run
If you want to start the web server automatically later, just run
"$LSWS_HOME//rc-inst.sh"
to install the service control script.
@@ -1279,12 +1279,12 @@ EOF
fi
fi
if [ "x$HOST_PANEL" != "x" ]; then
cat << EOF
cat << EOF
The default configuration file contain support for both PHP4 and PHP5,
A prebuilt PHP4 binary comes with this package, however, we recommend
A prebuilt PHP4 binary comes with this package, however, we recommend
you to build your own PHP4 and PHP5 binaries though our web console with
the same configuration parameters as your current PHP installation. You
the same configuration parameters as your current PHP installation. You
can check your current PHP configuration via a phpinfo() page.
Press [ENTER] to continue
@@ -1293,7 +1293,7 @@ EOF
read TMP_VAL
cat << EOF
cat << EOF
When you replace Apache with LiteSpeed, remember to stop Apache completely.
On most Linux servers, you should do:
@@ -1323,7 +1323,7 @@ EOF
printf "%s" "Would you like to restart it right now [Y/n]? "
fi
START_SERVER='y'
echo
echo
if [ "x$START_SERVER" = "x" ]; then
START_SERVER=y
@@ -1361,4 +1361,3 @@ EOF
fi
}

View File

@@ -384,7 +384,7 @@ EOF
if [ $SEL -eq "1" ]; then
HOST_PANEL="cpanel"
WS_USER=nobody
WS_GROUP=nogroup
WS_GROUP=nobody
if [ -e "/etc/cpanel/ea4/is_ea4" ] ; then
PANEL_VARY=".ea4"
fi
@@ -473,13 +473,13 @@ fi
cat <<EOF
Installing, please wait...
Installing, please wait...
EOF
if [ "x$HOST_PANEL" = "xdirectadmin" ]; then
chmod g+x /var/log/httpd/
chgrp apache /var/log/httpd/
chgrp apache /var/log/httpd/
chown apache:apache /var/log/httpd/domains
fi
@@ -503,4 +503,3 @@ fi
finish

View File

@@ -234,9 +234,9 @@ app.controller('listWebsites', function ($scope, $http) {
function ListInitialData(response) {
if (response.data.listWebSiteStatus === 1) {
var finalData = JSON.parse(response.data.data);
$scope.WebSitesList = finalData;
$scope.pagination = response.data.pagination;
$("#listFail").hide();
}
else {

View File

@@ -234,9 +234,9 @@ app.controller('listWebsites', function ($scope, $http) {
function ListInitialData(response) {
if (response.data.listWebSiteStatus === 1) {
var finalData = JSON.parse(response.data.data);
$scope.WebSitesList = finalData;
$scope.pagination = response.data.pagination;
$("#listFail").hide();
}
else {

View File

@@ -21,8 +21,6 @@
src="{% static 'images/loading.gif' %}">
</h3>
<div class="example-box-wrapper">
<form name="websiteCreationForm" action="/" id="createPackages"
class="form-horizontal bordered-row">
@@ -165,7 +163,6 @@
</form>
</div>
</div>
</div>