Files
LEMPer/scripts/remove_phploader.sh
2021-01-05 16:02:08 +07:00

329 lines
10 KiB
Bash
Executable File

#!/usr/bin/env bash
# PHP Loader Uninstaller
# Min. Requirement : GNU/Linux Ubuntu 16.04 & 16.04
# Last Build : 12/01/2020
# Author : MasEDI.Net (me@masedi.net)
# Since Version : 1.3.0
# Include helper functions.
if [ "$(type -t run)" != "function" ]; then
BASEDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )
# shellchechk source=scripts/helper.sh
# shellcheck disable=SC1090
. "${BASEDIR}/helper.sh"
fi
# Make sure only root can run this installer script.
requires_root
##
# Disable ionCube Loader.
#
function disable_ioncube() {
# PHP version.
local PHPv="${1}"
if [ -z "${PHPv}" ]; then
PHPv=${PHP_VERSION:-"7.3"}
fi
echo "Disabling ionCube PHP ${PHPv} loader"
run unlink "/etc/php/${PHPv}/fpm/conf.d/05-ioncube.ini"
run unlink "/etc/php/${PHPv}/cli/conf.d/05-ioncube.ini"
}
##
# Remove ionCube Loader.
#
function remove_ioncube() {
# PHP version.
local PHPv="${1}"
if [ -z "${PHPv}" ]; then
PHPv=${PHP_VERSION:-"7.3"}
fi
echo "Uninstalling ionCube PHP ${PHPv} loader..."
if [[ -f "/etc/php/${PHPv}/fpm/conf.d/05-ioncube.ini" || \
-f "/etc/php/${PHPv}/cli/conf.d/05-ioncube.ini" ]]; then
disable_ioncube "${PHPv}"
fi
if [ -d /usr/lib/php/loaders/ioncube ]; then
run rm -fr /usr/lib/php/loaders/ioncube
success "ionCube PHP ${PHPv} loader has been removed."
else
info "ionCube PHP ${PHPv} loader couldn't be found."
fi
}
##
# Disable SourceGuardian Loader.
#
function disable_sourceguardian() {
# PHP version.
local PHPv="${1}"
if [ -z "${PHPv}" ]; then
PHPv=${PHP_VERSION:-"7.3"}
fi
echo "Disabling SourceGuardian PHP ${PHPv} loader"
run unlink "/etc/php/${PHPv}/fpm/conf.d/05-sourceguardian.ini"
run unlink "/etc/php/${PHPv}/cli/conf.d/05-sourceguardian.ini"
}
##
# Remove SourceGuardian Loader.
#
function remove_sourceguardian() {
# PHP version.
local PHPv="${1}"
if [ -z "${PHPv}" ]; then
PHPv=${PHP_VERSION:-"7.3"}
fi
echo "Uninstalling SourceGuardian PHP ${PHPv} loader..."
if [[ -f "/etc/php/${PHPv}/fpm/conf.d/05-sourceguardian.ini" || \
-f "/etc/php/${PHPv}/cli/conf.d/05-sourceguardian.ini" ]]; then
disable_sourceguardian "${PHPv}"
fi
if [ -d /usr/lib/php/loaders/sourceguardian ]; then
run rm -fr /usr/lib/php/loaders/sourceguardian
success "SourceGuardian PHP ${PHPv} loader has been removed."
else
info "SourceGuardian PHP ${PHPv} loader couldn't be found."
fi
}
##
# Initialize PHP Loader removal.
#
function init_phploader_removal() {
local SELECTED_PHP=""
local SELECTED_PHPLOADER=""
OPTS=$(getopt -o p:l:ir \
-l php-version:,loader:,install,remove \
-n "init_phploader_install" -- "$@")
eval set -- "${OPTS}"
while true
do
case "${1}" in
-p|--php-version) shift
SELECTED_PHP="${1}"
shift
;;
-l|--loader) shift
SELECTED_PHPLOADER="${1}"
shift
;;
-i|--install) shift
#ACTION="install"
;;
-r|--remove) shift
#ACTION="remove"
;;
--) shift
break
;;
*)
fail "Invalid argument: ${1}"
exit 1
;;
esac
done
if "${AUTO_INSTALL}"; then
if [ -z "${SELECTED_PHP}" ]; then
SELECTED_PHP=${PHP_VERSION:-"7.3"}
fi
else
echo "Which version of PHP to be installed?"
echo "Supported PHP version:"
echo " 1). PHP 5.6 (EOL)"
echo " 2). PHP 7.0 (EOL)"
echo " 3). PHP 7.1 (SFO)"
echo " 4). PHP 7.2 (Stable)"
echo " 5). PHP 7.3 (Latest stable)"
echo " 6). PHP 7.4 (Beta)"
echo " 7). All available versions"
echo "+--------------------------------------+"
while [[ ${SELECTED_PHP} != "1" && ${SELECTED_PHP} != "2" && ${SELECTED_PHP} != "3" && \
${SELECTED_PHP} != "4" && ${SELECTED_PHP} != "5" && ${SELECTED_PHP} != "6" && \
${SELECTED_PHP} != "7" && ${SELECTED_PHP} != "5.6" && ${SELECTED_PHP} != "7.0" && \
${SELECTED_PHP} != "7.1" && ${SELECTED_PHP} != "7.2" && ${SELECTED_PHP} != "7.3" && \
${SELECTED_PHP} != "7.4" && ${SELECTED_PHP} != "all"
]]; do
read -rp "Select a PHP version or an option [1-7]: " -e SELECTED_PHP
done
fi
local PHPv
case ${SELECTED_PHP} in
1|"5.6")
PHPv="5.6"
;;
2|"7.0")
PHPv="7.0"
;;
3|"7.1")
PHPv="7.1"
;;
4|"7.2")
PHPv="7.2"
;;
5|"7.3")
PHPv="7.3"
;;
6|"7.4")
PHPv="7.4"
;;
7|"all")
# Install all PHP version (except EOL & Beta).
PHPv="all"
;;
*)
PHPv="unsupported"
error "Your selected PHP version ${SELECTED_PHP} is not supported."
;;
esac
# Install PHP loader.
if [[ "${PHPv}" != "unsupported" && ! $(version_older_than "${PHPv}" "5.6") ]]; then
if "${AUTO_INSTALL}"; then
# PHP Loader.
if [ -z "${SELECTED_PHPLOADER}" ]; then
SELECTED_PHPLOADER=${PHP_LOADER:-""}
fi
if [[ -z "${SELECTED_PHPLOADER}" || "${SELECTED_PHPLOADER}" == "none" ]]; then
INSTALL_PHPLOADER="n"
else
INSTALL_PHPLOADER="y"
fi
else
while [[ "${INSTALL_PHPLOADER}" != "y" && "${INSTALL_PHPLOADER}" != "n" ]]; do
read -rp "Do you want to remove PHP Loaders? [y/n]: " -i n -e INSTALL_PHPLOADER
done
fi
if [[ ${INSTALL_PHPLOADER} == Y* || ${INSTALL_PHPLOADER} == y* ]]; then
if ! "${AUTO_INSTALL}"; then
echo ""
echo "Available PHP Loaders:"
echo " 1). ionCube Loader (latest stable)"
echo " 2). SourceGuardian (latest stable)"
echo " 3). All loaders (ionCube, SourceGuardian)"
echo "--------------------------------------------"
while [[ ${SELECTED_PHPLOADER} != "1" && ${SELECTED_PHPLOADER} != "2" && \
${SELECTED_PHPLOADER} != "3" && ${SELECTED_PHPLOADER} != "ioncube" && \
${SELECTED_PHPLOADER} != "sg" && ${SELECTED_PHPLOADER} != "ic" && \
${SELECTED_PHPLOADER} != "sourceguardian" && ${SELECTED_PHPLOADER} != "all"
]]; do
read -rp "Select an option [1-3]: " -i "${PHP_LOADER}" -e SELECTED_PHPLOADER
done
fi
# Create loaders directory
if [ ! -d /usr/lib/php/loaders ]; then
run mkdir -p /usr/lib/php/loaders
fi
case ${SELECTED_PHPLOADER} in
1|"ic"|"ioncube")
install_ioncube
if [ "${PHPv}" != "all" ]; then
enable_ioncube "${PHPv}"
# Required for LEMPer default PHP.
if [[ "${PHPv}" != "7.3" && -n $(command -v "php${DEFAULT_PHP_VERSION}") ]]; then
enable_ioncube "7.3"
fi
else
# Install all PHP version (except EOL & Beta).
enable_ioncube "5.6"
enable_ioncube "7.0"
enable_ioncube "7.1"
enable_ioncube "7.2"
enable_ioncube "7.3"
enable_ioncube "7.4"
fi
;;
2|"sg"|"sourceguardian")
install_sourceguardian
if [[ "${PHPv}" != "all" ]]; then
enable_sourceguardian "${PHPv}"
# Required for LEMPer default PHP.
if [[ "${PHPv}" != "7.3" && -n $(command -v php7.3) ]]; then
enable_sourceguardian "7.3"
fi
else
# Install all PHP version (except EOL & Beta).
enable_sourceguardian "5.6"
enable_sourceguardian "7.0"
enable_sourceguardian "7.1"
enable_sourceguardian "7.2"
enable_sourceguardian "7.3"
enable_sourceguardian "7.4"
fi
;;
"all")
install_ioncube
install_sourceguardian
if [ "${PHPv}" != "all" ]; then
enable_ioncube "${PHPv}"
enable_sourceguardian "${PHPv}"
# Required for LEMPer default PHP
if [[ "${PHPv}" != "7.3" && -n $(command -v php7.3) ]]; then
enable_ioncube "7.3"
enable_sourceguardian "7.3"
fi
else
# Install all PHP version (except EOL & Beta).
enable_ioncube "5.6"
enable_ioncube "7.0"
enable_ioncube "7.1"
enable_ioncube "7.2"
enable_ioncube "7.3"
enable_ioncube "7.4"
enable_sourceguardian "5.6"
enable_sourceguardian "7.0"
enable_sourceguardian "7.1"
enable_sourceguardian "7.2"
enable_sourceguardian "7.3"
enable_sourceguardian "7.4"
fi
;;
*)
info "Your selected PHP loader ${SELECTED_PHPLOADER} is not supported yet."
;;
esac
else
info "${SELECTED_PHPLOADER^} PHP ${PHPv} loader installation skipped."
fi
fi
}
echo "Uninstalling PHP Loader..."
# Start running things from a call at the end so if this script is executed
# after a partial download it doesn't do anything.
init_phploader_removal "$@"