HEX
Server: Apache
System: Linux hz.vslconceptsdomains.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: dkfounda (3233)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/local/mailchannels/bin/install.sh
#!/usr/bin/env bash

if [[ ! ${EUID} -eq 0 ]]; then
  echo "You must run the install as root"
  exit 1
fi

MIN_CPANEL_VERSION_MAJOR=110
MIN_CPANEL_VERSION_MINOR=0
MIN_CPANEL_VERSION="${MIN_CPANEL_VERSION_MAJOR}.${MIN_CPANEL_VERSION_MINOR}"

PHP_BIN=/usr/local/cpanel/3rdparty/bin/php # This is the PHP used by WHH and 
					   # the plugin itself. We need to use
					   # the whole path to avoid picking up
					   # an older PHP used for hosting.
MIN_PHP_VERSION_MAJOR=8
MIN_PHP_VERSION_MINOR=0
MIN_PHP_VERSION="${MIN_PHP_VERSION_MAJOR}.${MIN_PHP_VERSION_MINOR}"

MC_CGI_DIR=/usr/local/cpanel/whostmgr/docroot/cgi/mailchannels
MC_CONF_DIR=/etc/mailchannels
MC_EXIM_CONF_DIR=${MC_CONF_DIR}/exim
MC_DATA_DIR=/var/lib/mailchannels
MC_LOG_DIR=/var/log/mailchannels
MC_PLUGIN_DIR=/usr/local/mailchannels
MC_BIN="${MC_PLUGIN_DIR}/bin"
MC_BIN_LIB="${MC_BIN}/lib"
MC_CPANEL_PLUGIN_DIR="${MC_PLUGIN_DIR}/cpanel-plugin"
CPANEL_INSTALL_FILE="${MC_CPANEL_PLUGIN_DIR}/install"

CHECK_VERSION="${MC_BIN_LIB}/check_version.sh"
RUN_FATAL="${MC_BIN_LIB}/run_fatal.sh"

MC_OLD_PLUGIN_CONF_FILE="/usr/local/cpanel/etc/MailChannels.ini"
MC_OLD_PLUGIN_UNINSTALL_SCRIPT="${MC_BIN}/uninstall_old_plugin.sh"

#USER MESSAGES
YES_NO_PROMPT_MESSAGE="(yes/no)"

MESSAGE="The old MailChannels plugin is still installed. You must remove this plugin before installing the MailChannels"
MESSAGE="${MESSAGE} v3 plugin. Would you like to uninstall it now?"
OLD_PLUGIN_INSTALLED_MESSAGE=${MESSAGE}

MESSAGE="Please uninstall the old plugin before attempting to install the MailChannels v3 plugin . See"
MESSAGE="${MESSAGE} https://mailchannels.zendesk.com/hc/en-us/articles/360026199951-MailChannels-cPanel-WHM-Plugin"
MESSAGE="${MESSAGE} for more information."
UNINSTALL_OLD_PLUGIN_MESSAGE=${MESSAGE}

CPANEL_VERSION_TO_LOW_MESSAGE="Aborting installation, your cPanel version is too low. Please upgrade to at least version ${MIN_CPANEL_VERSION}"
PHP_VERSION_TO_LOW_MESSAGE="Aborting installation, your PHP version is too low. Please upgrade to at least version ${MIN_PHP_VERSION}"

RUNNING_CPANEL_INSTALL_MESSAGE="Running ${CPANEL_INSTALL_FILE}"

runFatal() {
    ${RUN_FATAL} "$1" "$2"
    if [[ $? != 0 ]]; then
        exit 1
    fi
}

${CHECK_VERSION} "/usr/local/cpanel/cpanel -V" "([0-9]+)\.([0-9]+)" ${MIN_CPANEL_VERSION_MAJOR}
if [[ ! $? -eq 0 ]]; then
    echo ${CPANEL_VERSION_TO_LOW_MESSAGE}
    exit 1
fi

${CHECK_VERSION} "${PHP_BIN} -v" "PHP\s([0-9]+)\.([0-9]+)\." ${MIN_PHP_VERSION_MAJOR} ${MIN_PHP_VERSION_MINOR}
if [[ ! $? -eq 0 ]]; then
    echo ${PHP_VERSION_TO_LOW_MESSAGE}
    exit 1
fi

if [[ -f ${MC_OLD_PLUGIN_CONF_FILE} ]]; then
    echo "${OLD_PLUGIN_INSTALLED_MESSAGE} ${YES_NO_PROMPT_MESSAGE}:"

    read UNINSTALL_OLD_PLUGIN

    if [[ "$UNINSTALL_OLD_PLUGIN" != "yes" ]]
    then
        echo ${UNINSTALL_OLD_PLUGIN_MESSAGE}
        exit 1
    fi;

    runFatal ${MC_OLD_PLUGIN_UNINSTALL_SCRIPT}
fi

runFatal "rm -rf ${MC_CGI_DIR}"
runFatal "mkdir ${MC_CGI_DIR}"

if [[ ! -d ${MC_CONF_DIR} ]]; then
    runFatal "mkdir ${MC_CONF_DIR}"
fi;

if [[ ! -d ${MC_EXIM_CONF_DIR} ]]; then
    runFatal "mkdir ${MC_EXIM_CONF_DIR}"
fi;

runFatal "chown root:root ${MC_CONF_DIR}"
runFatal "chmod 771 ${MC_CONF_DIR}"

runFatal "chown :mail ${MC_EXIM_CONF_DIR}"
runFatal "chmod 771 ${MC_EXIM_CONF_DIR}"

if [[ ! -d ${MC_DATA_DIR} ]]; then
    runFatal "mkdir ${MC_DATA_DIR}"
fi;

runFatal "mkdir -p ${MC_DATA_DIR}/inbound_smtp"
runFatal "mkdir -p ${MC_DATA_DIR}/lock"

runFatal "chown -R root:root ${MC_DATA_DIR}"
runFatal "chmod -R 660 ${MC_DATA_DIR}"

if [[ ! -d ${MC_LOG_DIR} ]]; then
    runFatal "mkdir -p ${MC_LOG_DIR}"
fi;

runFatal "chown -R root:root ${MC_LOG_DIR}"
runFatal "chmod -R 660 ${MC_LOG_DIR}"

runFatal "ln -sf ${MC_PLUGIN_DIR}/index.php /usr/local/cpanel/whostmgr/docroot/cgi/mailchannels/index.cgi"
runFatal "ln -sf ${MC_PLUGIN_DIR}/resources /usr/local/cpanel/whostmgr/docroot/cgi/mailchannels/resources"

runFatal "cp ${MC_BIN}/mailchannels.conf ${MC_CONF_DIR}"

runFatal "${PHP_BIN} -q ${MC_BIN}/install.php"

runFatal "/usr/local/cpanel/bin/register_appconfig ${MC_CONF_DIR}/mailchannels.conf"


echo ${RUNNING_CPANEL_INSTALL_MESSAGE}

runFatal "chmod +x ${CPANEL_INSTALL_FILE}"
runFatal "${CPANEL_INSTALL_FILE}"