dockerfiles/base/php-nginx/php/7.4-alpine/conf/provision/bootstrap.d/30-setup-ioncube.sh

46 lines
1.6 KiB
Bash

#!/usr/bin/env bash
echo "Installing ionCube loader"
DOWNLOAD_URL="http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz"
TMP_FILE="/tmp/ioncube_loaders.tar.gz"
echo "Downloading ..."
curl -sS ${DOWNLOAD_URL} -o ${TMP_FILE}
echo "Unpacking ..."
tar -xzf ${TMP_FILE} -C /tmp
PHP_VERSION=`php -v | head -1 | grep -o 'PHP [0-9].[0-9]' | sed -r 's/PHP //g'`
PHP_EXTENSION_DIR=`php -i | grep -o -m 1 'extension_dir .* =' | sed -r 's/extension_dir => //g' | sed -r 's/ =//g'`
MOD_INI="${PHP_MOD_INI_DIR}/00-ioncube.ini"
SO_FILE="${PHP_EXTENSION_DIR}/ioncube_loader_lin_${PHP_VERSION}.so"
echo "PHP-VERSION: ${PHP_VERSION}"
echo "PHP-EXTENSION-DIR: ${PHP_EXTENSION_DIR}"
if [[ ! -f "/tmp/ioncube/ioncube_loader_lin_${PHP_VERSION}.so" ]]; then
echo "There is no ioncube available for PHP${PHP_VERSION}, skipping installation"
else
echo "Installing ${SO_FILE}"
cp "/tmp/ioncube/ioncube_loader_lin_${PHP_VERSION}.so" ${SO_FILE}
echo "Writing module ini"
echo "[ioncube]" > ${MOD_INI}
echo "zend_extension = ${SO_FILE}" >> ${MOD_INI}
echo "; priority=01" >> ${MOD_INI}
echo "Cleaning up"
rm -rf $TMP_FILE
rm -rf /tmp/ioncube
echo "Enabling ionCube PHP module"
case "$IMAGE_FAMILY" in
Debian|Ubuntu)
# Enable ionCube (if available)
if [[ -f "${PHP_ETC_DIR}/mods-available/00-ioncube.ini" ]]; then
ln -sf "${PHP_ETC_DIR}/mods-available/00-ioncube.ini" "${PHP_ETC_DIR}/cli/conf.d/00-ioncube.ini"
ln -sf "${PHP_ETC_DIR}/mods-available/00-ioncube.ini" "${PHP_ETC_DIR}/fpm/conf.d/00-ioncube.ini"
fi
;;
esac
fi