|
Server : Apache System : Linux server.mata-lashes.com 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64 User : matalashes ( 1004) PHP Version : 8.1.29 Disable Function : NONE Directory : /usr/src/ |
Upload File : |
#!/bin/sh
# /********************************************
# LiteSpeed Web Server Plugin for WHM
#
# @author LiteSpeed Technologies, Inc.
# @copyright 2008-2024 LiteSpeed Technologies, Inc.
# *********************************************/
#
# If from lsws install, 3 params
# WHM_PLUGIN_SRCDIR=$1
# LSWS_HOME=$2
# CPANEL_PLUGIN_AUTOINSTALL=$3
#
# To ignore the existing version, you can prefix the above params with FORCE.
#
# Note to new developers, this script calls lsws_whm_plugin_install_complete.sh which is
# used to complete the install. It must be copied in this script so that
# any additional installation functions are executed by the first instance
# after it's published. All of those functions should be done there.
WHM_PLUGIN_TEMPDIR="/usr/src/lsws_whm"
WHM_DOCROOT="/usr/local/cpanel/whostmgr/docroot"
WHM_PLUGIN_CGIDIR="${WHM_DOCROOT}/cgi"
WHM_PLUGIN_ICONDIR="${WHM_DOCROOT}/addon_plugins"
WHM_PLUGIN_INSDIR="${WHM_PLUGIN_CGIDIR}/lsws"
WHM_PLUGIN_TMPL_INSDIR="${WHM_DOCROOT}/templates/lsws"
WHM_PLUGIN_LSCWP_SRC_DIR="/usr/src/litespeed-wp-plugin"
WHM_PLUGIN_HTTPDIR="https://www.litespeedtech.com/packages/cpanel"
THEME_JUPITER_PLUGIN_DIR="/usr/local/cpanel/base/frontend/jupiter/ls_web_cache_manager"
THEME_PAPER_LANTERN_PLUGIN_DIR="/usr/local/cpanel/base/frontend/paper_lantern/ls_web_cache_manager"
CPANEL_PLUGIN_CAPABLE=0
if [ ! -d "${WHM_PLUGIN_CGIDIR}" ] ; then
exit
fi
WHM_PLUGIN_INST_USER=$(id)
WHM_PLUGIN_INST_USER=$(expr "${WHM_PLUGIN_INST_USER}" : 'uid=.*(\(.*\)) gid=.*')
if [ "${WHM_PLUGIN_INST_USER}" != "root" ] ; then
echo "Require root permission to install this plugin. Abort!"
exit
fi
if [ "${1}" = "FORCE" ] ; then
FORCE="1"
echo "Forcing install, ignore current version"
shift
fi
if [ "${2}" = "" ] ; then
LSWS_HOME="/usr/local/lsws"
else
LSWS_HOME="${2}"
fi
WEBCACHE_MGR_DATA_DIR="${LSWS_HOME}/admin/lscdata"
CPANEL_PLUGIN_AUTOINSTALL_DISABLE_FLAG="${WHM_PLUGIN_INSDIR}/cpanel_autoinstall_off"
TMP_CPANEL_PLUGIN_AUTOINSTALL_DISABLE_FLAG="/tmp/cpanel_autoinstall_off"
WHM_PLUGIN_DATA_DIR="${WHM_PLUGIN_INSDIR}/data"
TMP_WHM_PLUGIN_DATA_DIR="/tmp/lsws_whm_plugin_data_tmp"
WHM_PLUGIN_LSWS_HOME_FILE="${WHM_PLUGIN_INSDIR}/LSWS_HOME.config"
TMP_WHM_PLUGIN_LSWS_HOME_FILE="/tmp/LSWS_HOME.config"
THIS_DIR=$(dirname "$(readlink -f "$0")")
whmPluginNeedsUpdate()
{
CURR_WHM_VER="${1}"
if ! LATEST_WHM_VER=$(wget -qO- "${WHM_PLUGIN_HTTPDIR}/WHM_LATEST_VER"); then
echo "Failed to query latest WHM plugin version (wget failure). Abort!"
exit;
fi
FILTERED_LATEST_WHM_VER="$(echo "${LATEST_WHM_VER}" | \
sed -e 's/^[^[:digit:]]*\.//g' -e 's/\.\+$//g' -e 's/\.+$//g' -e 's/\.\.\+/\./g' -e 's/[^[:digit:]\.]//g')"
if [ "${LATEST_WHM_VER}" != "${FILTERED_LATEST_WHM_VER}" ] ; then
echo "Failed to query latest WHM plugin version (unexpected content). Abort!"
exit;
fi
CURR_MAJOR=$(echo "${CURR_WHM_VER}" | awk -F"." '{print $1}')
LATEST_MAJOR=$(echo "${LATEST_WHM_VER}" | awk -F"." '{print $1}')
if [ "${CURR_MAJOR}" -lt "${LATEST_MAJOR}" ] ; then
return 0
elif [ "${CURR_MAJOR}" -gt "${LATEST_MAJOR}" ] ; then
return 1
fi
CURR_MINOR=$(echo "${CURR_WHM_VER}" | awk -F"." '{print $2}')
LATEST_MINOR=$(echo "${LATEST_WHM_VER}" | awk -F"." '{print $2}')
if [ "${CURR_MINOR}" -lt "${LATEST_MINOR}" ] ; then
return 0
elif [ "${CURR_MINOR}" -gt "${LATEST_MINOR}" ] ; then
return 1
fi
CURR_IMPROVEMENT=$(echo "${CURR_WHM_VER}" | awk -F"." '{print match($3, /[^ ]/) ? $3 : 0}')
LATEST_IMPROVEMENT=$(echo "${LATEST_WHM_VER}" | awk -F"." '{print match($3, /[^ ]/) ? $3 : 0}')
if [ "${CURR_IMPROVEMENT}" -lt "${LATEST_IMPROVEMENT}" ] ; then
return 0
elif [ "${CURR_IMPROVEMENT}" -gt "${LATEST_IMPROVEMENT}" ] ; then
return 1
fi
CURR_PATCH=$(echo "${CURR_WHM_VER}" | awk -F"." '{print match($4, /[^ ]/) ? $4 : 0}')
LATEST_PATCH=$(echo "${LATEST_WHM_VER}" | awk -F"." '{print match($4, /[^ ]/) ? $4 : 0}')
if [ "${CURR_PATCH}" -lt "${LATEST_PATCH}" ] ; then
return 0
elif [ "${CURR_PATCH}" -gt "${LATEST_PATCH}" ] ; then
return 1
fi
return 1
}
echo ""
echo " Install LiteSpeed Web Server Plugin for WHM"
echo "=============================================="
echo ""
CURR_WHM_VER_FILE="${WHM_PLUGIN_INSDIR}/VERSION"
if [ "${FORCE}" = "" ] && [ -e "${CURR_WHM_VER_FILE}" ] ; then
CURR_WHM_VER=$(cat "${CURR_WHM_VER_FILE}")
if ! whmPluginNeedsUpdate "${CURR_WHM_VER}" ; then
echo "Installed WHM Plugin version already up-to-date. Abort!"
exit;
fi
fi
if [ "${1}" = "" ] ; then
echo "... creating directories ..."
# Create temp directory to install
if [ ! -e "${WHM_PLUGIN_TEMPDIR}" ] ; then
mkdir -v -p "${WHM_PLUGIN_TEMPDIR}"
echo " Temp directory created"
fi
cd "${WHM_PLUGIN_TEMPDIR}"
echo "... downloading latest version of the plugin ..."
if ! wget \
"--output-document=${WHM_PLUGIN_TEMPDIR}/lsws_whm_plugin.tar.gz" \
"${WHM_PLUGIN_HTTPDIR}/lsws_whm_plugin.tar.gz"
then
/bin/rm -rf "${WHM_PLUGIN_TEMPDIR}"
echo ""
echo "Failed to download lsws_whm_plugin.tar.gz. Abort!"
exit;
fi
echo "Done downloading."
echo ""
echo "... extracting ..."
if ! tar -zxf lsws_whm_plugin.tar.gz; then
/bin/rm -rf "${WHM_PLUGIN_TEMPDIR}"
echo ""
echo "Failed to to extract lsws_whm_plugin.tar.gz. Abort!"
exit;
fi
echo ""
fi
# Create working directories for WHM PHP files and backup any existing data
if [ -e "${WHM_PLUGIN_INSDIR}" ] ; then
if [ -e "${WHM_PLUGIN_CGIDIR}/addon_lsws.cgi" ] ; then
echo " Removing old entry script addon_lsws.cgi"
/bin/rm -f "${WHM_PLUGIN_CGIDIR}/addon_lsws.cgi"
fi
if [ ! -e "${WEBCACHE_MGR_DATA_DIR}" ] ; then
if [ -e "${LSWS_HOME}/admin" ] ; then
mkdir "${WEBCACHE_MGR_DATA_DIR}"
fi
fi
if [ -e "${CPANEL_PLUGIN_AUTOINSTALL_DISABLE_FLAG}" ] ; then
/bin/mv "${CPANEL_PLUGIN_AUTOINSTALL_DISABLE_FLAG}" "${TMP_CPANEL_PLUGIN_AUTOINSTALL_DISABLE_FLAG}"
fi
if [ -e "${WHM_PLUGIN_DATA_DIR}" ] ; then
/bin/mv "${WHM_PLUGIN_DATA_DIR}" "${TMP_WHM_PLUGIN_DATA_DIR}"
fi
if [ -e "${WHM_PLUGIN_LSWS_HOME_FILE}" ] ; then
/bin/mv "${WHM_PLUGIN_LSWS_HOME_FILE}" "${TMP_WHM_PLUGIN_LSWS_HOME_FILE}"
fi
echo " Removing old working directory ${WHM_PLUGIN_INSDIR}"
/bin/rm -rf "${WHM_PLUGIN_INSDIR}"
fi
if [ -e "${WHM_PLUGIN_TMPL_INSDIR}" ] ; then
echo " Removing old template directory ${WHM_PLUGIN_TMPL_INSDIR}"
/bin/rm -rf "${WHM_PLUGIN_TMPL_INSDIR}"
fi
#Cleanup old lsc data from installs < 2.1.12
if [ -e "${LSWS_HOME}/add-ons/webcachemgr/shared/lsc_versions_data" ] ; then
/bin/rm -f "${LSWS_HOME}/add-ons/webcachemgr/shared/lsc_versions_data"
fi
if [ -e "${LSWS_HOME}/add-ons/webcachemgr/shared/lsc_manager_data" ] ; then
/bin/rm -f "${LSWS_HOME}/add-ons/webcachemgr/shared/lsc_manager_data"
fi
#cleanup old lsc data/files from installs < 3.0.0
if [ -e "${WEBCACHE_MGR_DATA_DIR}/lsc_manager_data" ] ; then
/bin/rm -f "${WEBCACHE_MGR_DATA_DIR}/lsc_manager_data"
fi
if [ -e "${WEBCACHE_MGR_DATA_DIR}/lsc_versions_data" ] ; then
/bin/rm -f "${WEBCACHE_MGR_DATA_DIR}/lsc_versions_data"
fi
#force new data files permissions
if [ -e "${WEBCACHE_MGR_DATA_DIR}/lscm.data" ] ; then
chmod 600 "${WEBCACHE_MGR_DATA_DIR}/lscm.data"
fi
if [ -e "${WEBCACHE_MGR_DATA_DIR}/lscm.data.cust" ] ; then
chmod 600 "${WEBCACHE_MGR_DATA_DIR}/lscm.data.cust"
fi
mkdir -v "${WHM_PLUGIN_INSDIR}"
mkdir -v "${WHM_PLUGIN_TMPL_INSDIR}"
if [ -e "${TMP_CPANEL_PLUGIN_AUTOINSTALL_DISABLE_FLAG}" ] ; then
/bin/mv "${TMP_CPANEL_PLUGIN_AUTOINSTALL_DISABLE_FLAG}" "${CPANEL_PLUGIN_AUTOINSTALL_DISABLE_FLAG}"
echo " Retained disable cPanel plugin auto install flag file"
fi
if [ -e "${TMP_WHM_PLUGIN_DATA_DIR}" ] ; then
/bin/mv "${TMP_WHM_PLUGIN_DATA_DIR}" "${WHM_PLUGIN_DATA_DIR}"
echo " Retained WHM plugin data dir files"
fi
if [ -e "${TMP_WHM_PLUGIN_LSWS_HOME_FILE}" ] ; then
/bin/mv "${TMP_WHM_PLUGIN_LSWS_HOME_FILE}" "${WHM_PLUGIN_LSWS_HOME_FILE}"
echo " Retained LSWS_HOME.config file"
fi
echo ""
if [ "${1}" = "" ] ; then
WHM_PLUGIN_SRCDIR="${WHM_PLUGIN_TEMPDIR}/lsws_whm_plugin"
/bin/cp -r "${WHM_PLUGIN_SRCDIR}"/* "${WHM_PLUGIN_INSDIR}/"
cd "${WHM_PLUGIN_INSDIR}"
# # Removes install files
/bin/rm -rf "${WHM_PLUGIN_TEMPDIR}"
else
# install from lsws addon
WHM_PLUGIN_SRCDIR="${1}"
/bin/cp -r "${WHM_PLUGIN_SRCDIR}"/* "${WHM_PLUGIN_INSDIR}/"
echo "LSWS_HOME=${LSWS_HOME}" > "${WHM_PLUGIN_LSWS_HOME_FILE}"
fi
if [ -e "${WHM_PLUGIN_INSDIR}/lsws_whm_plugin_install_complete.sh" ]; then
CPANEL_PLUGIN_AUTOINSTALL="${3}"
COMPLETE_SCRIPT_DIR="${WHM_PLUGIN_INSDIR}"
. "${WHM_PLUGIN_INSDIR}/lsws_whm_plugin_install_complete.sh"
elif [ -e "${THIS_DIR}/lsws_whm_plugin_install_complete.sh" ]; then
# shellcheck disable=SC2034
CPANEL_PLUGIN_AUTOINSTALL="${3}"
# shellcheck disable=SC2034
COMPLETE_SCRIPT_DIR="${THIS_DIR}"
echo "Using ${THIS_DIR}/lsws_whm_plugin_install_complete.sh to finish the install (take note)"
. "${THIS_DIR}/lsws_whm_plugin_install_complete.sh"
else
echo "lsws_whm_plugin_install_complete.sh not found, can't complete the install \
(${THIS_DIR}/lsws_whm_plugin_install_complete.sh)"
exit 1
fi