#!/bin/bash #%copyright% VERBOSE=NO FORCE=NO for item in "$@" do if [ "$item" == "--verbose" ]; then VERBOSE=YES echo "Switching verbose level on... done" shift fi if [ "$item" == "--force" ]; then FORCE=YES echo "Using force-yes option..." shift fi done CMD="$1" function addString(){ HANDLR="$1" BINARY="$2" FL="$3" touch "$FL" if [ -e "$FL" ]; then RES=$(cat "$FL" | grep "$HANDLR") if [ -z "$RES" ]; then echo "$HANDLR $BINARY" >> "$FL" fi fi } function set_handler() { PHP="$1" HANDLER="$2" if [ -z "$PHP" ]; then return 1 fi if [ -z "$HANDLER" ]; then return 1 fi echo "Setting $PHP to $HANDLER handler..." /usr/sbin/whmapi1 php_set_handler version="$PHP" handler="$HANDLER" 2>/dev/null >/dev/null return 0 } function confirm() { if [ "$FORCE" == "YES" ]; then return 0 fi read -r -p "Do you want to proceed? [y/N] " response > /etc/cl.selector/native.conf fi if [ -e /usr/sbin/cagefsctl ]; then /usr/sbin/cagefsctl --setup-cl-selector fi [ "$VERBOSE" = "YES" ] && echo "Setting up cl-selector for lsphp done" fi CSF_CONFIG="/etc/csf/csf.pignore" CSF_MAIN_RULE="exe:/usr/local/bin/lsphp" CSF_ALT_RULE="pexe:/opt/alt/php.*/usr/bin/lsphp" CSF_SELECTOR_RULE="exe:/usr/selector/lsphp" CSF_EA_RULE="pexe:/opt/cpanel/ea-php*/root/usr/bin/lsphp" if [ -f "${CSF_CONFIG}" ]; then [ "$VERBOSE" = "YES" ] && echo "Setting up lfd service for lsphp..." [ -e "${CSF_CONFIG}.bkp" ] || cp "${CSF_CONFIG}" "${CSF_CONFIG}.bkp" grep -v '^[[:space:]]*#' "${CSF_CONFIG}" | grep -Fq "${CSF_MAIN_RULE}" || echo "${CSF_MAIN_RULE}" >> "$CSF_CONFIG" grep -v '^[[:space:]]*#' "${CSF_CONFIG}" | grep -Fq "${CSF_SELECTOR_RULE}" || echo "${CSF_SELECTOR_RULE}" >> "$CSF_CONFIG" grep -v '^[[:space:]]*#' "${CSF_CONFIG}" | grep -Fq "${CSF_EA_RULE}" || echo "${CSF_EA_RULE}" >> "$CSF_CONFIG" grep -v '^[[:space:]]*#' "${CSF_CONFIG}" | grep -Fq "${CSF_ALT_RULE}" || echo "${CSF_ALT_RULE}" >> "$CSF_CONFIG" service lfd restart 2>/dev/null >/dev/null [ "$VERBOSE" = "YES" ] && echo "Setting up lfd service for lsphp done" fi echo "Reconfiguration completed" exit fi if [ "$CMD" == "--setup-light" ]; then [ "$VERBOSE" = "YES" ] && echo -n "Adding php handlers..." add_handlers [ "$VERBOSE" = "YES" ] && echo " done" /usr/share/lve/modlscapi/utils/getdocroots.pm | while read HD; do if [ -e "$HD/.htaccess" ]; then [ "$VERBOSE" = "YES" ] && echo -n "Removing old mod_lsapi configuration (lsapi_engine off) in $HD..." if grep -qE '[[:space:]]*lsapi_engine*[[:space:]]*off' "$HD/.htaccess"; then sed -i '/[[:space:]]*lsapi_engine*[[:space:]]*off/d' "$HD/.htaccess" fi if grep -qE '[[:space:]]*lsapi_engine*[[:space:]]*Off' "$HD/.htaccess"; then sed -i '/[[:space:]]*lsapi_engine*[[:space:]]*Off/d' "$HD/.htaccess" fi fi [ "$VERBOSE" = "YES" ] && echo " done" done # [ "$VERBOSE" = "YES" ] && echo -n "Patching Cpanel for lsapi handler..." # cp /usr/local/cpanel/Cpanel/WebServer/Supported/apache.pm /usr/local/cpanel/Cpanel/WebServer/Supported/apache.pm.bak # /usr/share/lve/modlscapi/hooks/lsapi_patch_cpanel_hook.sh # /usr/share/lve/modlscapi/utils/cpanel_hooks_manage.py -i # [ "$VERBOSE" = "YES" ] && echo " done" exit fi if [ "$CMD" == "--enable-domain" ]; then echo "Deprecated for EA4, use MultiPHP Manager." exit fi if [ "$CMD" == "--disable-domain" ]; then echo "Deprecated for EA4, use MultiPHP Manager." exit fi if [ "$CMD" == "--enable-global" ]; then check_enable_global "YES" exit fi if [ "$CMD" == "--disable-global" ]; then echo "Deprecated for EA4, use MultiPHP Manager." exit fi if [ "$CMD" == "--build-native-lsphp" ]; then echo "Deprecated for EA4" exit fi echo "$0 [OPTION]" echo "utility for switching mod_lsapi on cPanel on or off (without mod_ruid2):" echo "--setup - setup mod_lsapi configurations for Apache" echo "--setup-light - setup only the EasyApache 4 feature" echo "--uninstall - uninstall mod_lsapi from Apache" echo "--enable-domain - enable mod_lsapi for an individual domain" echo "--disable-domain - disable mod_lsapi for an individual domain" echo "--enable-global - sets up mod_lsapi as a default way to serve PHP, making it enabled for all domains. Once that mode is enabled, you cannot disable mod_lsapi for individual domains" echo "--disable-global - disable mod_lsapi as a default way to serve PHP, disabling mod_lsapi for all domains, including those selected previously using --enable-domain" echo "--build-native-lsphp - build native lsphp for cPanel" echo "--verbose - switch verbose logging on" echo "--force - only with setup option (EA4)" echo "--help - show this help message"