mirror of
https://github.com/joglomedia/LEMPer.git
synced 2026-04-03 03:08:27 +00:00
Move PHP loader installation to PHP installer file
This commit is contained in:
@@ -164,9 +164,8 @@ DEFAULT_PHP_VERSION="7.4"
|
||||
# to load protected and encoded files.
|
||||
INSTALL_PHP_LOADER=false
|
||||
|
||||
# Available PHP loader: ioncube | sourceguardian
|
||||
# leave it blank or "none" to skip PHP loader installation.
|
||||
PHP_LOADER="none"
|
||||
# Available PHP loader: ioncube | sourceguardian | all
|
||||
PHP_LOADER="ioncube"
|
||||
|
||||
[php-phalcon]
|
||||
# Phalcon is a PHP web framework based on the MVC pattern delivered as C-extension.
|
||||
|
||||
18
install.sh
18
install.sh
@@ -103,18 +103,6 @@ if [ -f ./scripts/install_php.sh ]; then
|
||||
. ./scripts/install_php.sh
|
||||
fi
|
||||
|
||||
### Phalcon PHP installation ###
|
||||
if [ -f ./scripts/install_phalcon.sh ]; then
|
||||
echo ""
|
||||
. ./scripts/install_phalcon.sh
|
||||
fi
|
||||
|
||||
### Phalcon PHP installation ###
|
||||
if [ -f ./scripts/install_phploader.sh ]; then
|
||||
echo ""
|
||||
. ./scripts/install_phploader.sh
|
||||
fi
|
||||
|
||||
### Imagick installation ###
|
||||
if [ -f ./scripts/install_imagemagick.sh ]; then
|
||||
echo ""
|
||||
@@ -127,6 +115,12 @@ if [ -f ./scripts/install_memcached.sh ]; then
|
||||
. ./scripts/install_memcached.sh
|
||||
fi
|
||||
|
||||
### Phalcon PHP installation ###
|
||||
if [ -f ./scripts/install_phalcon.sh ]; then
|
||||
echo ""
|
||||
. ./scripts/install_phalcon.sh
|
||||
fi
|
||||
|
||||
### MySQL database installation ###
|
||||
if [ -f ./scripts/install_mariadb.sh ]; then
|
||||
echo ""
|
||||
|
||||
@@ -56,9 +56,9 @@ function add_php_repo() {
|
||||
}
|
||||
|
||||
##
|
||||
# Install PHP & FPM package.
|
||||
# Install PHP and extensions.
|
||||
##
|
||||
function install_php_fpm() {
|
||||
function install_php() {
|
||||
export PHP_IS_INSTALLED="no"
|
||||
|
||||
# PHP version.
|
||||
@@ -70,7 +70,7 @@ function install_php_fpm() {
|
||||
# Checking if PHP already installed.
|
||||
if [[ -n $(command -v "php${PHPv}") ]]; then
|
||||
PHP_IS_INSTALLED="yes"
|
||||
info "PHP ${PHPv} and it's extensions already exists, installation skipped."
|
||||
info "PHP ${PHPv} and it's extensions already exists."
|
||||
else
|
||||
echo "Installing PHP ${PHPv} and required extensions..."
|
||||
|
||||
@@ -170,11 +170,40 @@ function install_php_fpm() {
|
||||
run mkdir -p /var/log/php
|
||||
fi
|
||||
|
||||
# Optimize PHP configuration.
|
||||
# Optimize PHP & FPM configuration.
|
||||
optimize_php_fpm "${PHPv}"
|
||||
fi
|
||||
}
|
||||
|
||||
##
|
||||
# Restart PHP-FPM service.
|
||||
##
|
||||
function restart_php_fpm() {
|
||||
# PHP version.
|
||||
local PHPv="${1}"
|
||||
if [[ -z "${PHPv}" ]]; then
|
||||
PHPv=${DEFAULT_PHP_VERSION:-"7.4"}
|
||||
fi
|
||||
|
||||
# Restart PHP-FPM service.
|
||||
if [[ "${DRYRUN}" != true ]]; then
|
||||
if [[ $(pgrep -c "php-fpm${PHPv}") -gt 0 ]]; then
|
||||
run systemctl reload "php${PHPv}-fpm"
|
||||
success "php${PHPv}-fpm reloaded successfully."
|
||||
elif [[ -n $(command -v "php${PHPv}") ]]; then
|
||||
run systemctl start "php${PHPv}-fpm"
|
||||
|
||||
if [[ $(pgrep -c "php-fpm${PHPv}") -gt 0 ]]; then
|
||||
success "php${PHPv}-fpm started successfully."
|
||||
else
|
||||
error "Something goes wrong with PHP ${PHPv} & FPM installation."
|
||||
fi
|
||||
fi
|
||||
else
|
||||
info "php${PHPv}-fpm reloaded in dry run mode."
|
||||
fi
|
||||
}
|
||||
|
||||
##
|
||||
# PHP & FPM Optimization.
|
||||
##
|
||||
@@ -393,24 +422,6 @@ EOL
|
||||
|
||||
# Fix cgi.fix_pathinfo (for PHP older than 5.3).
|
||||
#sed -i "s/cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" /etc/php/${PHPv}/fpm/php.ini
|
||||
|
||||
# Restart PHP-fpm server.
|
||||
if [[ "${DRYRUN}" == true ]]; then
|
||||
info "php${PHPv}-fpm reloaded in dry run mode."
|
||||
else
|
||||
if [[ $(pgrep -c "php-fpm${PHPv}") -gt 0 ]]; then
|
||||
run systemctl reload "php${PHPv}-fpm"
|
||||
success "php${PHPv}-fpm reloaded successfully."
|
||||
elif [[ -n $(command -v "php${PHPv}") ]]; then
|
||||
run systemctl start "php${PHPv}-fpm"
|
||||
|
||||
if [[ $(pgrep -c "php-fpm${PHPv}") -gt 0 ]]; then
|
||||
success "php${PHPv}-fpm started successfully."
|
||||
else
|
||||
error "Something goes wrong with PHP ${PHPv} & FPM installation."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
##
|
||||
@@ -563,25 +574,8 @@ session.bak_handler="memcache"
|
||||
session.bak_path="tcp://127.0.0.1:11211"
|
||||
EOL
|
||||
|
||||
success "PHP ${PHPv} Memcache module enabled."
|
||||
success "PHP ${PHPv} Memcached extension enabled."
|
||||
fi
|
||||
|
||||
# Reload PHP-FPM service.
|
||||
echo "Restarting php${PHPv}-fpm to apply Memcached module."
|
||||
|
||||
if [[ $(pgrep -c "php-fpm${PHPv}") -gt 0 ]]; then
|
||||
run systemctl reload "php${PHPv}-fpm"
|
||||
success "php${PHPv}-fpm restarted successfully."
|
||||
elif [[ -n $(command -v "php${PHPv}") ]]; then
|
||||
run systemctl start "php${PHPv}-fpm"
|
||||
|
||||
if [[ $(pgrep -c "php-fpm${PHPv}") -gt 0 ]]; then
|
||||
success "php${PHPv}-fpm started successfully."
|
||||
else
|
||||
info "Something went wrong with php${PHPv}-fpm installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
else
|
||||
info "It seems that PHP ${PHPv} not yet installed. Please install it before!"
|
||||
fi
|
||||
@@ -591,25 +585,253 @@ EOL
|
||||
}
|
||||
|
||||
##
|
||||
# Initialize PHP & FPM Installation.
|
||||
# Install ionCube Loader.
|
||||
##
|
||||
function init_php_fpm_install() {
|
||||
function install_ioncube_loader() {
|
||||
echo "Installing ionCube PHP loader..."
|
||||
|
||||
# Delete old loaders file.
|
||||
if [ -d /usr/lib/php/loaders/ioncube ]; then
|
||||
echo "Remove old/existing ionCube PHP loader."
|
||||
run rm -fr /usr/lib/php/loaders/ioncube
|
||||
fi
|
||||
|
||||
local CURRENT_DIR && CURRENT_DIR=$(pwd)
|
||||
run cd "${BUILD_DIR}" || return 1
|
||||
|
||||
echo "Downloading latest ionCube PHP loader..."
|
||||
|
||||
ARCH=${ARCH:-$(uname -p)}
|
||||
|
||||
if [[ "${ARCH}" == "x86_64" ]]; then
|
||||
run wget -q --show-progress "https://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz"
|
||||
run tar -xzf ioncube_loaders_lin_x86-64.tar.gz
|
||||
run rm -f ioncube_loaders_lin_x86-64.tar.gz
|
||||
else
|
||||
run wget -q --show-progress "https://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz"
|
||||
run tar -xzf ioncube_loaders_lin_x86.tar.gz
|
||||
run rm -f ioncube_loaders_lin_x86.tar.gz
|
||||
fi
|
||||
|
||||
run mv -f ioncube /usr/lib/php/loaders/
|
||||
run cd "${CURRENT_DIR}" || return 1
|
||||
}
|
||||
|
||||
##
|
||||
# Enable ionCube Loader.
|
||||
##
|
||||
function enable_ioncube_loader() {
|
||||
# PHP version.
|
||||
local PHPv="${1}"
|
||||
if [ -z "${PHPv}" ]; then
|
||||
PHPv=${DEFAULT_PHP_VERSION:-"7.4"}
|
||||
fi
|
||||
|
||||
echo "Enable ionCube PHP ${PHPv} loader."
|
||||
|
||||
if [[ "${DRYRUN}" != true ]]; then
|
||||
if [[ -f "/usr/lib/php/loaders/ioncube/ioncube_loader_lin_${PHPv}.so" && -n $(command -v "php${PHPv}") ]]; then
|
||||
cat > "/etc/php/${PHPv}/mods-available/ioncube.ini" <<EOL
|
||||
[ioncube]
|
||||
zend_extension=/usr/lib/php/loaders/ioncube/ioncube_loader_lin_${PHPv}.so
|
||||
EOL
|
||||
|
||||
if [ ! -f "/etc/php/${PHPv}/fpm/conf.d/05-ioncube.ini" ]; then
|
||||
run ln -s "/etc/php/${PHPv}/mods-available/ioncube.ini" \
|
||||
"/etc/php/${PHPv}/fpm/conf.d/05-ioncube.ini"
|
||||
fi
|
||||
if [ ! -f "/etc/php/${PHPv}/cli/conf.d/05-ioncube.ini" ]; then
|
||||
run ln -s "/etc/php/${PHPv}/mods-available/ioncube.ini" \
|
||||
"/etc/php/${PHPv}/cli/conf.d/05-ioncube.ini"
|
||||
fi
|
||||
else
|
||||
error "PHP ${PHPv} or ionCube loader not found."
|
||||
fi
|
||||
else
|
||||
info "ionCube PHP ${PHPv} enabled in dry run mode."
|
||||
fi
|
||||
}
|
||||
|
||||
##
|
||||
# Install SourceGuardian Loader.
|
||||
##
|
||||
function install_sourceguardian_loader() {
|
||||
echo "Installing SourceGuardian PHP loader..."
|
||||
|
||||
# Delete old loaders file.
|
||||
if [ -d /usr/lib/php/loaders/sourceguardian ]; then
|
||||
echo "Remove old/existing loader."
|
||||
run rm -fr /usr/lib/php/loaders/sourceguardian
|
||||
fi
|
||||
|
||||
if [ ! -d "${BUILD_DIR}/sourceguardian" ]; then
|
||||
run mkdir -p "${BUILD_DIR}/sourceguardian"
|
||||
fi
|
||||
|
||||
local CURRENT_DIR && CURRENT_DIR=$(pwd)
|
||||
run cd "${BUILD_DIR}/sourceguardian" || return 1
|
||||
|
||||
echo "Downloading latest SourceGuardian PHP loader..."
|
||||
|
||||
ARCH=${ARCH:-$(uname -p)}
|
||||
|
||||
if [[ "${ARCH}" == "x86_64" ]]; then
|
||||
run wget -q --show-progress "https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz"
|
||||
run tar -xzf loaders.linux-x86_64.tar.gz
|
||||
run rm -f loaders.linux-x86_64.tar.gz
|
||||
else
|
||||
run wget -q --show-progress "https://www.sourceguardian.com/loaders/download/loaders.linux-x86.tar.gz"
|
||||
run tar -xzf loaders.linux-x86.tar.gz
|
||||
run rm -f loaders.linux-x86.tar.gz
|
||||
fi
|
||||
|
||||
run cd "${CURRENT_DIR}" || return 1
|
||||
run mv -f "${BUILD_DIR}/sourceguardian" /usr/lib/php/loaders/
|
||||
}
|
||||
|
||||
##
|
||||
# Enable SourceGuardian Loader.
|
||||
##
|
||||
function enable_sourceguardian_loader() {
|
||||
# PHP version.
|
||||
local PHPv="${1}"
|
||||
if [[ -z "${PHPv}" ]]; then
|
||||
PHPv=${DEFAULT_PHP_VERSION:-"7.4"}
|
||||
fi
|
||||
|
||||
echo "Enable SourceGuardian PHP ${PHPv} loader."
|
||||
|
||||
if [[ "${DRYRUN}" != true ]]; then
|
||||
if [[ -f "/usr/lib/php/loaders/sourceguardian/ixed.${PHPv}.lin" && -n $(command -v "php${PHPv}") ]]; then
|
||||
cat > "/etc/php/${PHPv}/mods-available/sourceguardian.ini" <<EOL
|
||||
[sourceguardian]
|
||||
zend_extension=/usr/lib/php/loaders/sourceguardian/ixed.${PHPv}.lin
|
||||
EOL
|
||||
|
||||
if [ ! -f "/etc/php/${PHPv}/fpm/conf.d/05-sourceguardian.ini" ]; then
|
||||
run ln -s "/etc/php/${PHPv}/mods-available/sourceguardian.ini" \
|
||||
"/etc/php/${PHPv}/fpm/conf.d/05-sourceguardian.ini"
|
||||
fi
|
||||
|
||||
if [ ! -f "/etc/php/${PHPv}/cli/conf.d/05-sourceguardian.ini" ]; then
|
||||
run ln -s "/etc/php/${PHPv}/mods-available/sourceguardian.ini" \
|
||||
"/etc/php/${PHPv}/cli/conf.d/05-sourceguardian.ini"
|
||||
fi
|
||||
else
|
||||
error "PHP ${PHPv} or SourceGuardian loader not found."
|
||||
fi
|
||||
else
|
||||
info "SourceGuardian PHP ${PHPv} enabled in dry run mode."
|
||||
fi
|
||||
}
|
||||
|
||||
##
|
||||
# Install PHP Loader.
|
||||
##
|
||||
function install_php_loader() {
|
||||
local PHPv="${1}"
|
||||
local SELECTED_PHP_LOADER="${2}"
|
||||
|
||||
if [[ -z "${PHPv}" ]]; then
|
||||
PHPv=${DEFAULT_PHP_VERSION:-"7.4"}
|
||||
fi
|
||||
|
||||
if [[ -z "${SELECTED_PHP_LOADER}" ]]; then
|
||||
SELECTED_PHP_LOADER=${PHP_LOADER:-"ioncube"}
|
||||
fi
|
||||
|
||||
# Install PHP loader.
|
||||
if [[ "${PHPv}" != "unsupported" && ! $(version_older_than "${PHPv}" "5.6") ]]; then
|
||||
if [[ "${AUTO_INSTALL}" == true ]]; then
|
||||
if [[ "${INSTALL_PHP_LOADER}" == true ]]; then
|
||||
DO_INSTALL_PHP_LOADER="y"
|
||||
else
|
||||
DO_INSTALL_PHP_LOADER="n"
|
||||
fi
|
||||
else
|
||||
while [[ "${DO_INSTALL_PHP_LOADER}" != "y" && "${DO_INSTALL_PHP_LOADER}" != "n" ]]; do
|
||||
read -rp "Do you want to install PHP Loader? [y/n]: " -i n -e DO_INSTALL_PHP_LOADER
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ ${DO_INSTALL_PHP_LOADER} == y* || ${DO_INSTALL_PHP_LOADER} == 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_PHP_LOADER} != "1" && ${SELECTED_PHP_LOADER} != "2" && \
|
||||
${SELECTED_PHP_LOADER} != "3" && ${SELECTED_PHP_LOADER} != "ioncube" && \
|
||||
${SELECTED_PHP_LOADER} != "sg" && ${SELECTED_PHP_LOADER} != "ic" && \
|
||||
${SELECTED_PHP_LOADER} != "sourceguardian" && ${SELECTED_PHP_LOADER} != "all" ]]; do
|
||||
read -rp "Select an option [1-3]: " -i "${PHP_LOADER}" -e SELECTED_PHP_LOADER
|
||||
done
|
||||
fi
|
||||
|
||||
# Create PHP loaders directory.
|
||||
if [ ! -d /usr/lib/php/loaders ]; then
|
||||
run mkdir -p /usr/lib/php/loaders
|
||||
fi
|
||||
|
||||
case ${SELECTED_PHP_LOADER} in
|
||||
1 | "ic" | "ioncube")
|
||||
[ ! -d /usr/lib/php/loaders/ioncube ] && install_ioncube_loader
|
||||
enable_ioncube_loader "${PHPv}"
|
||||
;;
|
||||
2 | "sg" | "sourceguardian")
|
||||
[ ! -d /usr/lib/php/loaders/sourceguardian ] && install_sourceguardian_loader
|
||||
enable_sourceguardian_loader "${PHPv}"
|
||||
;;
|
||||
"all")
|
||||
[ ! -d /usr/lib/php/loaders/ioncube ] && install_ioncube_loader
|
||||
enable_ioncube_loader "${PHPv}"
|
||||
|
||||
[ ! -d /usr/lib/php/loaders/sourceguardian ] && install_sourceguardian_loader
|
||||
enable_sourceguardian_loader "${PHPv}"
|
||||
;;
|
||||
*)
|
||||
error "Your selected PHP loader ${SELECTED_PHP_LOADER} is not supported yet."
|
||||
;;
|
||||
esac
|
||||
else
|
||||
info "PHP ${PHPv} ${SELECTED_PHP_LOADER} loader installation skipped."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
##
|
||||
# Initialize PHP Installation.
|
||||
##
|
||||
function init_php_install() {
|
||||
local SELECTED_PHP_VERSIONS=()
|
||||
local OPT_PHP_VERSIONS=()
|
||||
local OPT_PHP_EXTENSIONS=()
|
||||
local OPT_PHP_LOADER=${PHP_LOADER:-"ioncube"}
|
||||
|
||||
OPTS=$(getopt -o p:l: \
|
||||
-l php-version: \
|
||||
-n "init_php_fpm_install" -- "$@")
|
||||
OPTS=$(getopt -o p:x:l: \
|
||||
-l php-version:,php-extensions,php-loader: \
|
||||
-n "init_php_install" -- "$@")
|
||||
|
||||
eval set -- "${OPTS}"
|
||||
|
||||
while true
|
||||
do
|
||||
case "${1}" in
|
||||
-p|--php-version) shift
|
||||
-p | --php-version) shift
|
||||
OPT_PHP_VERSIONS+=("${1}")
|
||||
shift
|
||||
;;
|
||||
-x | --php-extensions) shift
|
||||
OPT_PHP_EXTENSIONS+=("${1}")
|
||||
shift
|
||||
;;
|
||||
-l | --php-loader) shift
|
||||
OPT_PHP_LOADER="${1}"
|
||||
shift
|
||||
;;
|
||||
--) shift
|
||||
break
|
||||
;;
|
||||
@@ -620,7 +842,7 @@ function init_php_fpm_install() {
|
||||
esac
|
||||
done
|
||||
|
||||
# Read versions from config file.
|
||||
# Include versions from config file.
|
||||
read -r -a SELECTED_PHP_VERSIONS <<< "${PHP_VERSIONS}"
|
||||
|
||||
if [[ "${#OPT_PHP_VERSIONS[@]}" -gt 0 ]]; then
|
||||
@@ -629,7 +851,7 @@ function init_php_fpm_install() {
|
||||
# Manually select PHP version in interactive mode.
|
||||
if ! "${AUTO_INSTALL}"; then
|
||||
echo "Which PHP version to be installed?"
|
||||
echo "Supported PHP versions:"
|
||||
echo "Available PHP versions:"
|
||||
echo " 1). PHP 5.6 (EOL)"
|
||||
echo " 2). PHP 7.0 (EOL)"
|
||||
echo " 3). PHP 7.1 (EOL)"
|
||||
@@ -655,40 +877,32 @@ function init_php_fpm_install() {
|
||||
|
||||
case "${SELECTED_PHP}" in
|
||||
1 | "5.6")
|
||||
#install_php_fpm "5.6"
|
||||
SELECTED_PHP_VERSIONS+=("5.6")
|
||||
;;
|
||||
2 | "7.0")
|
||||
#install_php_fpm "7.0"
|
||||
SELECTED_PHP_VERSIONS+=("7.0")
|
||||
;;
|
||||
3 | "7.1")
|
||||
#install_php_fpm "7.1"
|
||||
SELECTED_PHP_VERSIONS+=("7.1")
|
||||
;;
|
||||
4 | "7.2")
|
||||
#install_php_fpm "7.2"
|
||||
SELECTED_PHP_VERSIONS+=("7.2")
|
||||
;;
|
||||
5 | "7.3")
|
||||
#install_php_fpm "7.3"
|
||||
SELECTED_PHP_VERSIONS+=("7.3")
|
||||
;;
|
||||
6 | "7.4")
|
||||
#install_php_fpm "7.4"
|
||||
SELECTED_PHP_VERSIONS+=("7.4")
|
||||
;;
|
||||
7 | "8.0")
|
||||
#install_php_fpm "8.0"
|
||||
SELECTED_PHP_VERSIONS+=("8.0")
|
||||
;;
|
||||
8 | "8.1")
|
||||
#install_php_fpm "8.0"
|
||||
SELECTED_PHP_VERSIONS+=("8.0")
|
||||
;;
|
||||
9 | "all")
|
||||
# Select all PHP versions (except EOL & Beta).
|
||||
SELECTED_PHP_VERSIONS=("5.6" "7.0" "7.1" "7.2" "7.3" "7.4" "8.0")
|
||||
SELECTED_PHP_VERSIONS=("5.6" "7.0" "7.1" "7.2" "7.3" "7.4" "8.0" "8.1")
|
||||
;;
|
||||
*)
|
||||
error "Your selected PHP version ${SELECTED_PHP} is not supported yet."
|
||||
@@ -705,13 +919,16 @@ function init_php_fpm_install() {
|
||||
add_php_repo
|
||||
|
||||
# Install all selected PHP versions and extensions.
|
||||
for VERSION in "${SELECTED_PHP_VERSIONS[@]}"; do
|
||||
IS_PKG_AVAIL=$(apt-cache search "php${VERSION}" | grep -c "${VERSION}")
|
||||
for PHPV in "${SELECTED_PHP_VERSIONS[@]}"; do
|
||||
IS_PKG_AVAIL=$(apt-cache search "php${PHPV}" | grep -c "${PHPV}")
|
||||
|
||||
if [[ "${IS_PKG_AVAIL}" -gt 0 ]]; then
|
||||
# Install PHP + default extensions.
|
||||
install_php_fpm "${VERSION}"
|
||||
install_php "${PHPV}"
|
||||
install_php_loader "${PHPV}" "${OPT_PHP_LOADER}"
|
||||
restart_php_fpm "${PHPV}"
|
||||
else
|
||||
error "PHP ${VERSION} package is not available on your operating system."
|
||||
error "PHP ${PHPV} package is not available for your operating system."
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -720,14 +937,16 @@ function init_php_fpm_install() {
|
||||
info "LEMPer requires PHP ${DEFAULT_PHP_VERSION} as default to run its administration tool."
|
||||
echo "PHP ${DEFAULT_PHP_VERSION} now being installed..."
|
||||
|
||||
install_php_fpm "${DEFAULT_PHP_VERSION}"
|
||||
install_php "${DEFAULT_PHP_VERSION}"
|
||||
install_php_loader "${DEFAULT_PHP_VERSION}" "${OPT_PHP_LOADER}"
|
||||
restart_php_fpm "${DEFAULT_PHP_VERSION}"
|
||||
fi
|
||||
|
||||
# Install PHP composer.
|
||||
install_php_composer "${DEFAULT_PHP_VERSION}"
|
||||
}
|
||||
|
||||
echo "[PHP & FPM Packages Installation]"
|
||||
echo "[PHP & Extensions Installation]"
|
||||
|
||||
# Start running things from a call at the end so if this script is executed
|
||||
# after a partial download it doesn't do anything.
|
||||
@@ -741,5 +960,5 @@ if [[ -n $(command -v php5.6) && \
|
||||
-n $(command -v php8.1) ]]; then
|
||||
info "All available PHP version already exists, installation skipped."
|
||||
else
|
||||
init_php_fpm_install "$@"
|
||||
init_php_install "$@"
|
||||
fi
|
||||
|
||||
@@ -1,444 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# PHP Loader Installer
|
||||
# Min. Requirement : GNU/Linux Ubuntu 18.04
|
||||
# Last Build : 11/12/2021
|
||||
# Author : MasEDI.Net (me@masedi.net)
|
||||
# Since Version : 1.3.0
|
||||
|
||||
# Include helper functions.
|
||||
if [[ "$(type -t run)" != "function" ]]; then
|
||||
BASE_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )
|
||||
# shellcheck disable=SC1091
|
||||
. "${BASE_DIR}/helper.sh"
|
||||
fi
|
||||
|
||||
# Make sure only root can run this installer script.
|
||||
requires_root
|
||||
|
||||
# Make sure only supported distribution can run this installer script.
|
||||
preflight_system_check
|
||||
|
||||
##
|
||||
# Install ionCube Loader.
|
||||
#
|
||||
function install_ioncube() {
|
||||
echo "Installing ionCube PHP loader..."
|
||||
|
||||
# Delete old loaders file.
|
||||
if [ -d /usr/lib/php/loaders/ioncube ]; then
|
||||
echo "Removing old/existing ionCube PHP loader..."
|
||||
run rm -fr /usr/lib/php/loaders/ioncube
|
||||
fi
|
||||
|
||||
local CURRENT_DIR && CURRENT_DIR=$(pwd)
|
||||
run cd "${BUILD_DIR}" || return 1
|
||||
|
||||
echo "Download latest ionCube PHP loader..."
|
||||
|
||||
ARCH=${ARCH:-$(uname -p)}
|
||||
if [[ "${ARCH}" == "x86_64" ]]; then
|
||||
run wget -q "https://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz"
|
||||
run tar -xzf ioncube_loaders_lin_x86-64.tar.gz
|
||||
run rm -f ioncube_loaders_lin_x86-64.tar.gz
|
||||
else
|
||||
run wget -q "https://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz"
|
||||
run tar -xzf ioncube_loaders_lin_x86.tar.gz
|
||||
run rm -f ioncube_loaders_lin_x86.tar.gz
|
||||
fi
|
||||
|
||||
run mv -f ioncube /usr/lib/php/loaders/
|
||||
run cd "${CURRENT_DIR}" || return 1
|
||||
}
|
||||
|
||||
##
|
||||
# Enable ionCube Loader.
|
||||
#
|
||||
function enable_ioncube() {
|
||||
# PHP version.
|
||||
local PHPv="${1}"
|
||||
if [ -z "${PHPv}" ]; then
|
||||
PHPv=${PHP_VERSION:-"7.4"}
|
||||
fi
|
||||
|
||||
echo "Enable ionCube PHP ${PHPv} loader"
|
||||
|
||||
if [[ "${DRYRUN}" == true ]]; then
|
||||
info "ionCube PHP ${PHPv} enabled in dry run mode."
|
||||
else
|
||||
if [[ -f "/usr/lib/php/loaders/ioncube/ioncube_loader_lin_${PHPv}.so" && -n $(command -v "php${PHPv}") ]]; then
|
||||
cat > "/etc/php/${PHPv}/mods-available/ioncube.ini" <<EOL
|
||||
[ioncube]
|
||||
zend_extension=/usr/lib/php/loaders/ioncube/ioncube_loader_lin_${PHPv}.so
|
||||
EOL
|
||||
|
||||
if [ ! -f "/etc/php/${PHPv}/fpm/conf.d/05-ioncube.ini" ]; then
|
||||
run ln -s "/etc/php/${PHPv}/mods-available/ioncube.ini" \
|
||||
"/etc/php/${PHPv}/fpm/conf.d/05-ioncube.ini"
|
||||
fi
|
||||
if [ ! -f "/etc/php/${PHPv}/cli/conf.d/05-ioncube.ini" ]; then
|
||||
run ln -s "/etc/php/${PHPv}/mods-available/ioncube.ini" \
|
||||
"/etc/php/${PHPv}/cli/conf.d/05-ioncube.ini"
|
||||
fi
|
||||
|
||||
# Restart PHP-fpm server.
|
||||
if [[ "${DRYRUN}" == true ]]; then
|
||||
info "php${PHPv}-fpm reloaded in dry run mode."
|
||||
else
|
||||
if [[ $(pgrep -c "php-fpm${PHPv}") -gt 0 ]]; then
|
||||
run systemctl reload "php${PHPv}-fpm"
|
||||
success "php${PHPv}-fpm reloaded successfully."
|
||||
elif [[ -n $(command -v "php${PHPv}") ]]; then
|
||||
run systemctl start "php${PHPv}-fpm"
|
||||
|
||||
if [[ $(pgrep -c "php-fpm${PHPv}") -gt 0 ]]; then
|
||||
success "php${PHPv}-fpm started successfully."
|
||||
else
|
||||
error "Something goes wrong with PHP ${PHPv} & FPM installation."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
error "PHP ${PHPv} or ionCube loader not found."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
##
|
||||
# Disable ionCube Loader.
|
||||
#
|
||||
function disable_ioncube() {
|
||||
# PHP version.
|
||||
local PHPv="${1}"
|
||||
if [ -z "${PHPv}" ]; then
|
||||
PHPv=${PHP_VERSION:-"7.4"}
|
||||
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=${DEFAULT_PHP_VERSION:-"7.4"}
|
||||
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
|
||||
}
|
||||
|
||||
##
|
||||
# Install SourceGuardian Loader.
|
||||
#
|
||||
function install_sourceguardian() {
|
||||
echo "Installing SourceGuardian PHP loader..."
|
||||
|
||||
# Delete old loaders file.
|
||||
if [ -d /usr/lib/php/loaders/sourceguardian ]; then
|
||||
echo "Remove old/existing loader..."
|
||||
run rm -fr /usr/lib/php/loaders/sourceguardian
|
||||
fi
|
||||
|
||||
if [ ! -d "${BUILD_DIR}/sourceguardian" ]; then
|
||||
run mkdir -p "${BUILD_DIR}/sourceguardian"
|
||||
fi
|
||||
|
||||
local CURRENT_DIR && CURRENT_DIR=$(pwd)
|
||||
run cd "${BUILD_DIR}/sourceguardian" || return 1
|
||||
|
||||
echo "Download latest SourceGuardian PHP loader..."
|
||||
|
||||
ARCH=${ARCH:-$(uname -p)}
|
||||
if [[ "${ARCH}" == "x86_64" ]]; then
|
||||
run wget -q "https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz"
|
||||
run tar -xzf loaders.linux-x86_64.tar.gz
|
||||
run rm -f loaders.linux-x86_64.tar.gz
|
||||
else
|
||||
run wget -q "https://www.sourceguardian.com/loaders/download/loaders.linux-x86.tar.gz"
|
||||
run tar -xzf loaders.linux-x86.tar.gz
|
||||
run rm -f loaders.linux-x86.tar.gz
|
||||
fi
|
||||
|
||||
run cd "${CURRENT_DIR}" || return 1
|
||||
run mv -f "${BUILD_DIR}/sourceguardian" /usr/lib/php/loaders/
|
||||
}
|
||||
|
||||
##
|
||||
# Enable SourceGuardian Loader.
|
||||
#
|
||||
function enable_sourceguardian() {
|
||||
# PHP version.
|
||||
local PHPv="${1}"
|
||||
if [[ -z "${PHPv}" ]]; then
|
||||
PHPv=${DEFAULT_PHP_VERSION:-"7.4"}
|
||||
fi
|
||||
|
||||
echo "Enable SourceGuardian PHP ${PHPv} loader..."
|
||||
|
||||
if [[ "${DRYRUN}" == true ]]; then
|
||||
info "SourceGuardian PHP ${PHPv} enabled in dry run mode."
|
||||
else
|
||||
if [[ -f "/usr/lib/php/loaders/sourceguardian/ixed.${PHPv}.lin" && -n $(command -v "php${PHPv}") ]]; then
|
||||
cat > "/etc/php/${PHPv}/mods-available/sourceguardian.ini" <<EOL
|
||||
[sourceguardian]
|
||||
zend_extension=/usr/lib/php/loaders/sourceguardian/ixed.${PHPv}.lin
|
||||
EOL
|
||||
|
||||
if [ ! -f "/etc/php/${PHPv}/fpm/conf.d/05-sourceguardian.ini" ]; then
|
||||
run ln -s "/etc/php/${PHPv}/mods-available/sourceguardian.ini" \
|
||||
"/etc/php/${PHPv}/fpm/conf.d/05-sourceguardian.ini"
|
||||
fi
|
||||
|
||||
if [ ! -f "/etc/php/${PHPv}/cli/conf.d/05-sourceguardian.ini" ]; then
|
||||
run ln -s "/etc/php/${PHPv}/mods-available/sourceguardian.ini" \
|
||||
"/etc/php/${PHPv}/cli/conf.d/05-sourceguardian.ini"
|
||||
fi
|
||||
|
||||
# Restart PHP-fpm server.
|
||||
if [[ "${DRYRUN}" == true ]]; then
|
||||
info "php${PHPv}-fpm reloaded in dry run mode."
|
||||
else
|
||||
if [[ $(pgrep -c "php-fpm${PHPv}") -gt 0 ]]; then
|
||||
run systemctl reload "php${PHPv}-fpm"
|
||||
success "php${PHPv}-fpm reloaded successfully."
|
||||
elif [[ -n $(command -v "php${PHPv}") ]]; then
|
||||
run systemctl start "php${PHPv}-fpm"
|
||||
|
||||
if [[ $(pgrep -c "php-fpm${PHPv}") -gt 0 ]]; then
|
||||
success "php${PHPv}-fpm started successfully."
|
||||
else
|
||||
error "Something goes wrong with PHP ${PHPv} & FPM installation."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
error "PHP ${PHPv} or SourceGuardian loader not found."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
##
|
||||
# Disable SourceGuardian Loader.
|
||||
#
|
||||
function disable_sourceguardian() {
|
||||
# PHP version.
|
||||
local PHPv="${1}"
|
||||
if [[ -z "${PHPv}" ]]; then
|
||||
PHPv=${DEFAULT_PHP_VERSION:-"7.4"}
|
||||
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=${DEFAULT_PHP_VERSION:-"7.4"}
|
||||
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 Installation.
|
||||
#
|
||||
function init_phploader_install() {
|
||||
local SELECTED_PHP_LOADER=""
|
||||
|
||||
OPTS=$(getopt -o p:l:ir \
|
||||
-l php-version:,php-loader:,install,remove \
|
||||
-n "init_phploader_install" -- "$@")
|
||||
|
||||
eval set -- "${OPTS}"
|
||||
|
||||
while true
|
||||
do
|
||||
case "${1}" in
|
||||
-p|--php-version) shift
|
||||
OPT_PHP_VERSION="${1}"
|
||||
shift
|
||||
;;
|
||||
-l|--php-loader) shift
|
||||
OPT_PHP_LOADER="${1}"
|
||||
shift
|
||||
;;
|
||||
-i|--install) shift
|
||||
#ACTION="install"
|
||||
;;
|
||||
-r|--remove) shift
|
||||
#ACTION="remove"
|
||||
;;
|
||||
--) shift
|
||||
break
|
||||
;;
|
||||
*)
|
||||
fail "Invalid argument: ${1}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -n "${OPT_PHP_VERSION}" ]; then
|
||||
PHP_VERSION=${OPT_PHP_VERSION}
|
||||
else
|
||||
PHP_VERSION=${PHP_VERSION:-"7.4"}
|
||||
fi
|
||||
|
||||
if [ -n "${OPT_PHP_LOADER}" ]; then
|
||||
PHP_LOADER=${OPT_PHP_LOADER}
|
||||
else
|
||||
PHP_LOADER=${PHP_LOADER:-""}
|
||||
fi
|
||||
|
||||
# Install PHP loader.
|
||||
if [[ "${PHPv}" != "unsupported" && ! $(version_older_than "${PHPv}" "5.6") ]]; then
|
||||
if [[ "${AUTO_INSTALL}" == true ]]; then
|
||||
# PHP Loader.
|
||||
if [ -z "${SELECTED_PHP_LOADER}" ]; then
|
||||
SELECTED_PHP_LOADER=${PHP_LOADER:-""}
|
||||
fi
|
||||
|
||||
if [[ -z "${SELECTED_PHP_LOADER}" || "${SELECTED_PHP_LOADER}" == "none" ]]; then
|
||||
DO_INSTALL_PHP_LOADER="n"
|
||||
else
|
||||
DO_INSTALL_PHP_LOADER="y"
|
||||
fi
|
||||
else
|
||||
while [[ "${DO_INSTALL_PHP_LOADER}" != "y" && "${DO_INSTALL_PHP_LOADER}" != "n" ]]; do
|
||||
read -rp "Do you want to install PHP Loader? [y/n]: " -i n -e DO_INSTALL_PHP_LOADER
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ ${DO_INSTALL_PHP_LOADER} == y* && ${INSTALL_PHP_LOADER} == true ]]; 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_PHP_LOADER} != "1" && ${SELECTED_PHP_LOADER} != "2" && \
|
||||
${SELECTED_PHP_LOADER} != "3" && ${SELECTED_PHP_LOADER} != "ioncube" && \
|
||||
${SELECTED_PHP_LOADER} != "sg" && ${SELECTED_PHP_LOADER} != "ic" && \
|
||||
${SELECTED_PHP_LOADER} != "sourceguardian" && ${SELECTED_PHP_LOADER} != "all" ]]; do
|
||||
read -rp "Select an option [1-3]: " -i "${PHP_LOADER}" -e SELECTED_PHP_LOADER
|
||||
done
|
||||
fi
|
||||
|
||||
# Create loaders directory
|
||||
if [ ! -d /usr/lib/php/loaders ]; then
|
||||
run mkdir -p /usr/lib/php/loaders
|
||||
fi
|
||||
|
||||
case ${SELECTED_PHP_LOADER} in
|
||||
1|"ic"|"ioncube")
|
||||
install_ioncube
|
||||
|
||||
if [ "${PHPv}" != "all" ]; then
|
||||
enable_ioncube "${PHPv}"
|
||||
|
||||
# Required for LEMPer default PHP.
|
||||
if [[ "${PHPv}" != "7.4" && -n $(command -v php7.4) ]]; then
|
||||
enable_ioncube "7.4"
|
||||
fi
|
||||
else
|
||||
# Install all PHP version (except EOL & Beta).
|
||||
for PHPver in 5.6 7.0 7.1 7.2 7.3 7.4 8.0; do
|
||||
enable_ioncube "${PHPver}"
|
||||
done
|
||||
fi
|
||||
;;
|
||||
2|"sg"|"sourceguardian")
|
||||
install_sourceguardian
|
||||
|
||||
if [ "${PHPv}" != "all" ]; then
|
||||
enable_sourceguardian "${PHPv}"
|
||||
|
||||
# Required for LEMPer default PHP.
|
||||
if [[ "${PHPv}" != "7.4" && -n $(command -v php7.4) ]]; then
|
||||
enable_sourceguardian "7.4"
|
||||
fi
|
||||
else
|
||||
# Install all PHP version (except EOL & Beta).
|
||||
Versions="5.6 7.0 7.1 7.2 7.3 7.4 8.0"
|
||||
for PHPver in ${Versions}; do
|
||||
enable_sourceguardian "${PHPver}"
|
||||
done
|
||||
fi
|
||||
;;
|
||||
"all")
|
||||
install_ioncube
|
||||
install_sourceguardian
|
||||
|
||||
if [ "${PHPv}" != "all" ]; then
|
||||
enable_ioncube "${PHPv}"
|
||||
enable_sourceguardian "${PHPv}"
|
||||
|
||||
# Required for LEMPer default PHP
|
||||
if [[ "${PHPv}" != "7.4" && -n $(command -v php7.4) ]]; then
|
||||
enable_ioncube "7.4"
|
||||
enable_sourceguardian "7.4"
|
||||
fi
|
||||
else
|
||||
# Install all PHP version (except EOL & Beta).
|
||||
Versions="5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1"
|
||||
for PHPver in ${Versions}; do
|
||||
enable_ioncube "${PHPver}"
|
||||
enable_sourceguardian "${PHPver}"
|
||||
done
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
info "Your selected PHP loader ${SELECTED_PHP_LOADER} is not supported yet."
|
||||
;;
|
||||
esac
|
||||
else
|
||||
info "${SELECTED_PHP_LOADER^} PHP ${PHPv} loader installation skipped."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
echo "[PHP Loaders Installation]"
|
||||
|
||||
# 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_install "$@"
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# PHP & FPM Uninstaller
|
||||
# Min. Requirement : GNU/Linux Ubuntu 18.04
|
||||
# Last Build : 10/12/2021
|
||||
# Last Build : 18/12/2021
|
||||
# Author : MasEDI.Net (me@masedi.net)
|
||||
# Since Version : 1.0.0
|
||||
|
||||
@@ -16,6 +16,9 @@ fi
|
||||
# Make sure only root can run this installer script.
|
||||
requires_root
|
||||
|
||||
##
|
||||
# Remove PHP & FPM installation from system.
|
||||
##
|
||||
function remove_php_fpm() {
|
||||
# PHP version.
|
||||
local PHPv="${1}"
|
||||
@@ -31,23 +34,23 @@ function remove_php_fpm() {
|
||||
if dpkg-query -l | awk '/php/ { print $2 }' | grep -qwE "^php${PHPv}"; then
|
||||
echo "Removing PHP ${PHPv} packages installation..."
|
||||
|
||||
# Remove geoip module.
|
||||
# Remove geoip extension.
|
||||
if "php${PHPv}" -m | grep -qw geoip; then
|
||||
# Uninstall geoip pecl.
|
||||
#run pecl uninstall geoip
|
||||
|
||||
# Unlink enabled module.
|
||||
# Unlink enabled extension.
|
||||
[ -f "/etc/php/${PHPv}/cli/conf.d/20-geoip.ini" ] && \
|
||||
run unlink "/etc/php/${PHPv}/cli/conf.d/20-geoip.ini"
|
||||
|
||||
[ -f "/etc/php/${PHPv}/fpm/conf.d/20-geoip.ini" ] && \
|
||||
run unlink "/etc/php/${PHPv}/fpm/conf.d/20-geoip.ini"
|
||||
|
||||
# Remove module.
|
||||
# Remove extension.
|
||||
run rm -f "/etc/php/${PHPv}/mods-available/geoip.ini"
|
||||
fi
|
||||
|
||||
# Remove mcrypt module.
|
||||
# Remove mcrypt extension.
|
||||
if [[ "${PHPv//.}" -lt "72" ]]; then
|
||||
if "php${PHPv}" -m | grep -qw mcrypt; then
|
||||
run apt-get --purge remove -y "php${PHPv}-mcrypt"
|
||||
@@ -57,14 +60,14 @@ function remove_php_fpm() {
|
||||
# Uninstall mcrypt pecl.
|
||||
#run pecl uninstall mcrypt
|
||||
|
||||
# Unlink enabled module.
|
||||
# Unlink enabled extension.
|
||||
[ -f "/etc/php/${PHPv}/cli/conf.d/20-mcrypt.ini" ] && \
|
||||
run unlink "/etc/php/${PHPv}/cli/conf.d/20-mcrypt.ini"
|
||||
|
||||
[ -f "/etc/php/${PHPv}/fpm/conf.d/20-mcrypt.ini" ] && \
|
||||
run unlink "/etc/php/${PHPv}/fpm/conf.d/20-mcrypt.ini"
|
||||
|
||||
# Remove module.
|
||||
# Remove extension.
|
||||
run rm -f "/etc/php/${PHPv}/mods-available/mcrypt.ini"
|
||||
fi
|
||||
else
|
||||
@@ -107,13 +110,165 @@ function remove_php_fpm() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Remove PHP & FPM.
|
||||
##
|
||||
# Disable ionCube Loader.
|
||||
##
|
||||
function disable_ioncube_loader() {
|
||||
# PHP version.
|
||||
local PHPv="${1}"
|
||||
if [ -z "${PHPv}" ]; then
|
||||
PHPv=${DEFAULT_PHP_VERSION:-"7.4"}
|
||||
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_loader() {
|
||||
# PHP version.
|
||||
local PHPv="${1}"
|
||||
if [ -z "${PHPv}" ]; then
|
||||
PHPv=${DEFAULT_PHP_VERSION:-"7.4"}
|
||||
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_loader "${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_loader() {
|
||||
# PHP version.
|
||||
local PHPv="${1}"
|
||||
if [ -z "${PHPv}" ]; then
|
||||
PHPv=${DEFAULT_PHP_VERSION:-"7.4"}
|
||||
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_loader() {
|
||||
# PHP version.
|
||||
local PHPv="${1}"
|
||||
if [ -z "${PHPv}" ]; then
|
||||
PHPv=${DEFAULT_PHP_VERSION:-"7.4"}
|
||||
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_loader "${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
|
||||
}
|
||||
|
||||
##
|
||||
# Remove PHP Loader.
|
||||
##
|
||||
function remove_php_loader() {
|
||||
local PHPv="${1}"
|
||||
local REMOVED_PHP_LOADER="${2}"
|
||||
|
||||
if [[ -z "${PHPv}" ]]; then
|
||||
PHPv=${DEFAULT_PHP_VERSION:-"7.4"}
|
||||
fi
|
||||
|
||||
if [[ -z "${REMOVED_PHP_LOADER}" ]]; then
|
||||
REMOVED_PHP_LOADER=${PHP_LOADER:-"ioncube"}
|
||||
fi
|
||||
|
||||
# Remove PHP loader.
|
||||
if [[ "${PHPv}" != "unsupported" && ! $(version_older_than "${PHPv}" "5.6") ]]; then
|
||||
if [[ "${AUTO_REMOVE}" == true ]]; then
|
||||
if [[ "${FORCE_REMOVE}" == true ]]; then
|
||||
DO_REMOVE_PHP_LOADER="y"
|
||||
else
|
||||
DO_REMOVE_PHP_LOADER="n"
|
||||
fi
|
||||
else
|
||||
while [[ "${DO_REMOVE_PHP_LOADER}" != "y" && "${DO_REMOVE_PHP_LOADER}" != "n" ]]; do
|
||||
read -rp "Do you want to remove PHP Loader? [y/n]: : " -e DO_REMOVE_PHP_LOADER
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ ${DO_REMOVE_PHP_LOADER} == y* || ${DO_REMOVE_PHP_LOADER} == 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 [[ ${REMOVED_PHP_LOADER} != "1" && ${REMOVED_PHP_LOADER} != "2" && \
|
||||
${REMOVED_PHP_LOADER} != "3" && ${REMOVED_PHP_LOADER} != "ioncube" && \
|
||||
${REMOVED_PHP_LOADER} != "sg" && ${REMOVED_PHP_LOADER} != "ic" && \
|
||||
${REMOVED_PHP_LOADER} != "sourceguardian" && ${REMOVED_PHP_LOADER} != "all" ]]; do
|
||||
read -rp "Select an option [1-3]: " -i "${PHP_LOADER}" -e REMOVED_PHP_LOADER
|
||||
done
|
||||
fi
|
||||
|
||||
case ${REMOVED_PHP_LOADER} in
|
||||
1 | "ic" | "ioncube")
|
||||
disable_ioncube_loader "${PHPv}"
|
||||
;;
|
||||
2 | "sg" | "sourceguardian")
|
||||
disable_sourceguardian_loader "${PHPv}"
|
||||
;;
|
||||
"all")
|
||||
disable_ioncube_loader "${PHPv}"
|
||||
disable_sourceguardian_loader "${PHPv}"
|
||||
;;
|
||||
*)
|
||||
error "Your selected PHP loader ${REMOVED_PHP_LOADER} is not supported yet."
|
||||
;;
|
||||
esac
|
||||
else
|
||||
info "PHP ${PHPv} ${REMOVED_PHP_LOADER} loader removal skipped."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
##
|
||||
# Initialize PHP & FPM removal.
|
||||
##
|
||||
function init_php_fpm_removal() {
|
||||
local REMOVED_PHP_VERSIONS=()
|
||||
local OPT_PHP_VERSIONS=()
|
||||
local OPT_PHP_LOADER=${PHP_LOADER:-"ioncube"}
|
||||
|
||||
OPTS=$(getopt -o p: \
|
||||
-l php-version: \
|
||||
OPTS=$(getopt -o p:l: \
|
||||
-l php-version:,php-loader: \
|
||||
-n "init_php_fpm_removal" -- "$@")
|
||||
|
||||
eval set -- "${OPTS}"
|
||||
@@ -121,10 +276,14 @@ function init_php_fpm_removal() {
|
||||
while true
|
||||
do
|
||||
case "${1}" in
|
||||
-p|--php-version) shift
|
||||
-p | --php-version) shift
|
||||
OPT_PHP_VERSIONS+=("${1}")
|
||||
shift
|
||||
;;
|
||||
-l | --php-loader) shift
|
||||
OPT_PHP_LOADER="${1}"
|
||||
shift
|
||||
;;
|
||||
--) shift
|
||||
break
|
||||
;;
|
||||
@@ -135,62 +294,72 @@ function init_php_fpm_removal() {
|
||||
esac
|
||||
done
|
||||
|
||||
# Include versions from config file.
|
||||
read -r -a REMOVED_PHP_VERSIONS <<< "${PHP_VERSIONS}"
|
||||
|
||||
if [[ "${#OPT_PHP_VERSIONS[@]}" -gt 0 ]]; then
|
||||
REMOVED_PHP_VERSIONS+=("${OPT_PHP_VERSIONS[@]}")
|
||||
else
|
||||
# Manually select PHP version in interactive mode.
|
||||
if ! "${AUTO_REMOVE}"; then
|
||||
echo "Which PHP version to be removed?"
|
||||
echo "Supported PHP versions:"
|
||||
echo "Available PHP versions:"
|
||||
echo " 1). PHP 5.6 (EOL)"
|
||||
echo " 2). PHP 7.0 (EOL)"
|
||||
echo " 3). PHP 7.1 (EOL)"
|
||||
echo " 4). PHP 7.2 (EOL)"
|
||||
echo " 5). PHP 7.3 (SFO)"
|
||||
echo " 6). PHP 7.4 (Stable)"
|
||||
echo " 7). PHP 8.0 (Latest Stable)"
|
||||
echo " 8). All available versions"
|
||||
echo " 9). Do not remove!"
|
||||
echo " 7). PHP 8.0 (Stable)"
|
||||
echo " 8). PHP 8.1 (Latest Stable)"
|
||||
echo " 9). All installed versions"
|
||||
echo " 10). Do not remove!"
|
||||
echo "--------------------------------------------"
|
||||
|
||||
[ -n "${DEFAULT_PHP_VERSION}" ] && \
|
||||
info "Default version is: ${DEFAULT_PHP_VERSION}"
|
||||
|
||||
while [[ ${SELECTED_PHP} != "1" && ${SELECTED_PHP} != "2" && ${SELECTED_PHP} != "3" && \
|
||||
${SELECTED_PHP} != "4" && ${SELECTED_PHP} != "5" && ${SELECTED_PHP} != "6" && \
|
||||
${SELECTED_PHP} != "7" && ${SELECTED_PHP} != "8" && ${SELECTED_PHP} != "9" && \
|
||||
${SELECTED_PHP} != "10" && \
|
||||
${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} != "8.0" && ${SELECTED_PHP} != "none" && ${SELECTED_PHP} != "all" ]]; do
|
||||
${SELECTED_PHP} != "8.0" && ${SELECTED_PHP} != "8.1" && ${SELECTED_PHP} != "all" && \
|
||||
${SELECTED_PHP} != "none" ]]; do
|
||||
read -rp "Enter a PHP version from an option above [1-9]: " -i "${DEFAULT_PHP_VERSION}" -e SELECTED_PHP
|
||||
done
|
||||
|
||||
case ${SELECTED_PHP} in
|
||||
1|"5.6")
|
||||
1 | "5.6")
|
||||
REMOVED_PHP_VERSIONS+=("5.6")
|
||||
;;
|
||||
2|"7.0")
|
||||
2 | "7.0")
|
||||
REMOVED_PHP_VERSIONS+=("7.0")
|
||||
;;
|
||||
3|"7.1")
|
||||
3 | "7.1")
|
||||
REMOVED_PHP_VERSIONS+=("7.1")
|
||||
;;
|
||||
4|"7.2")
|
||||
4 | "7.2")
|
||||
REMOVED_PHP_VERSIONS+=("7.2")
|
||||
;;
|
||||
5|"7.3")
|
||||
5 | "7.3")
|
||||
REMOVED_PHP_VERSIONS+=("7.3")
|
||||
;;
|
||||
6|"7.4")
|
||||
6 | "7.4")
|
||||
REMOVED_PHP_VERSIONS+=("7.4")
|
||||
;;
|
||||
7|"8.0")
|
||||
7 | "8.0")
|
||||
REMOVED_PHP_VERSIONS+=("8.0")
|
||||
;;
|
||||
8|"all")
|
||||
8 | "8.1")
|
||||
REMOVED_PHP_VERSIONS+=("8.1")
|
||||
;;
|
||||
9 | "all")
|
||||
# Select all PHP versions (except EOL & Beta).
|
||||
REMOVED_PHP_VERSIONS=("5.6" "7.0" "7.1" "7.2" "7.3" "7.4" "8.0")
|
||||
;;
|
||||
9|n*)
|
||||
10 | n*)
|
||||
info "No PHP version will be removed."
|
||||
return
|
||||
;;
|
||||
@@ -201,15 +370,11 @@ function init_php_fpm_removal() {
|
||||
fi
|
||||
fi
|
||||
|
||||
# If FORCE_REMOVE, then remove all installed PHP versions.
|
||||
# If FORCE_REMOVE, then remove all installed PHP versions include the default.
|
||||
if [[ "${FORCE_REMOVE}" == true ]]; then
|
||||
# Include versions from config file.
|
||||
read -r -a INSTALLED_PHP_VERSIONS <<< "${PHP_VERSIONS}"
|
||||
|
||||
# Also remove default LEMPer PHP.
|
||||
DEFAULT_PHP_VERSION=${DEFAULT_PHP_VERSION:-"7.4"}
|
||||
|
||||
REMOVED_PHP_VERSIONS+=("${DEFAULT_PHP_VERSION}" "${INSTALLED_PHP_VERSIONS[@]}")
|
||||
REMOVED_PHP_VERSIONS+=("${DEFAULT_PHP_VERSION}")
|
||||
fi
|
||||
|
||||
# Sort PHP versions.
|
||||
@@ -218,21 +383,22 @@ function init_php_fpm_removal() {
|
||||
|
||||
# Remove all selected PHP versions.
|
||||
if [[ "${#REMOVED_PHP_VERSIONS[@]}" -gt 0 ]]; then
|
||||
for VERSION in "${REMOVED_PHP_VERSIONS[@]}"; do
|
||||
remove_php_fpm "${VERSION}"
|
||||
for PHPV in "${REMOVED_PHP_VERSIONS[@]}"; do
|
||||
remove_php_fpm "${PHPV}"
|
||||
remove_php_loader "${PHPV}" "${OPT_PHP_LOADER}"
|
||||
done
|
||||
|
||||
# Final clean up (executed only if no PHP version installed).
|
||||
if [[ "${DRYRUN}" != true ]]; then
|
||||
# New logic for multiple PHP removal in batch.
|
||||
PHP_IS_EXISTS=false
|
||||
for PHPv in "${REMOVED_PHP_VERSIONS[@]}"; do
|
||||
[[ -n $(command -v "${PHPv}") ]] && PHP_IS_EXISTS=true
|
||||
for PHPV in "${REMOVED_PHP_VERSIONS[@]}"; do
|
||||
[[ -n $(command -v "${PHPV}") ]] && PHP_IS_EXISTS=true
|
||||
done
|
||||
|
||||
if [[ "${PHP_IS_EXISTS}" == false ]]; then
|
||||
echo "Removing additional unused PHP packages..."
|
||||
run apt-get remove --purge -qq -y php-common php-pear php-xml pkg-php-tools spawn-fcgi fcgiwrap
|
||||
run apt-get remove --purge -qq -y dh-php php-pear php-xml pkg-php-tools fcgiwrap spawn-fcgi
|
||||
|
||||
# Remove PHP repository.
|
||||
run add-apt-repository -y --remove ppa:ondrej/php
|
||||
@@ -242,10 +408,10 @@ function init_php_fpm_removal() {
|
||||
[ -d /usr/share/php ] && run rm -fr /usr/share/php
|
||||
[ -d /var/lib/php ] && run rm -fr /var/lib/php
|
||||
|
||||
success "All PHP packages installation completely removed."
|
||||
else
|
||||
info "PHP package & it's extensions removed in dry run mode."
|
||||
success "All PHP package and it's extensions completely removed."
|
||||
fi
|
||||
else
|
||||
info "PHP package & it's extensions removed in dry run mode."
|
||||
fi
|
||||
else
|
||||
info "No PHP version removed."
|
||||
@@ -260,13 +426,14 @@ if [[ -n $(command -v php5.6) || \
|
||||
-n $(command -v php7.2) || \
|
||||
-n $(command -v php7.3) || \
|
||||
-n $(command -v php7.4) || \
|
||||
-n $(command -v php8.0) ]]; then
|
||||
-n $(command -v php8.0) || \
|
||||
-n $(command -v php8.1) ]]; then
|
||||
|
||||
if [[ "${AUTO_REMOVE}" == true ]]; then
|
||||
REMOVE_PHP="y"
|
||||
else
|
||||
while [[ "${REMOVE_PHP}" != "y" && "${REMOVE_PHP}" != "n" ]]; do
|
||||
read -rp "Are you sure to remove PHP & FPM? [y/n]: " -e REMOVE_PHP
|
||||
read -rp "Are you sure to remove PHP package? [y/n]: " -e REMOVE_PHP
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,327 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# PHP Loader Uninstaller
|
||||
# Min. Requirement : GNU/Linux Ubuntu 18.04
|
||||
# Last Build : 10/12/2021
|
||||
# Author : MasEDI.Net (me@masedi.net)
|
||||
# Since Version : 1.3.0
|
||||
|
||||
# Include helper functions.
|
||||
if [[ "$(type -t run)" != "function" ]]; then
|
||||
BASE_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )
|
||||
# shellcheck disable=SC1091
|
||||
. "${BASE_DIR}/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}" == true ]]; 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}" == true ]]; 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 "$@"
|
||||
Reference in New Issue
Block a user