30-setup-ioncube.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/usr/bin/env bash
  2. echo "Installing ionCube loader"
  3. DOWNLOAD_URL="http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz"
  4. TMP_FILE="/tmp/ioncube_loaders.tar.gz"
  5. echo "Downloading ..."
  6. curl -sS ${DOWNLOAD_URL} -o ${TMP_FILE}
  7. echo "Unpacking ..."
  8. tar -xzf ${TMP_FILE} -C /tmp
  9. PHP_VERSION=`php -v | head -1 | grep -o 'PHP [0-9].[0-9]' | sed -r 's/PHP //g'`
  10. PHP_EXTENSION_DIR=`php -i | grep -o -m 1 'extension_dir .* =' | sed -r 's/extension_dir => //g' | sed -r 's/ =//g'`
  11. MOD_INI="${PHP_MOD_INI_DIR}/00-ioncube.ini"
  12. SO_FILE="${PHP_EXTENSION_DIR}/ioncube_loader_lin_${PHP_VERSION}.so"
  13. echo "PHP-VERSION: ${PHP_VERSION}"
  14. echo "PHP-EXTENSION-DIR: ${PHP_EXTENSION_DIR}"
  15. if [[ ! -f "/tmp/ioncube/ioncube_loader_lin_${PHP_VERSION}.so" ]]; then
  16. echo "There is no ioncube available for PHP${PHP_VERSION}, skipping installation"
  17. else
  18. echo "Installing ${SO_FILE}"
  19. cp "/tmp/ioncube/ioncube_loader_lin_${PHP_VERSION}.so" ${SO_FILE}
  20. echo "Writing module ini"
  21. echo "[ioncube]" > ${MOD_INI}
  22. echo "zend_extension = ${SO_FILE}" >> ${MOD_INI}
  23. echo "; priority=01" >> ${MOD_INI}
  24. echo "Cleaning up"
  25. rm -rf $TMP_FILE
  26. rm -rf /tmp/ioncube
  27. echo "Enabling ionCube PHP module"
  28. case "$IMAGE_FAMILY" in
  29. Debian|Ubuntu)
  30. # Enable ionCube (if available)
  31. if [[ -f "${PHP_ETC_DIR}/mods-available/00-ioncube.ini" ]]; then
  32. ln -sf "${PHP_ETC_DIR}/mods-available/00-ioncube.ini" "${PHP_ETC_DIR}/cli/conf.d/00-ioncube.ini"
  33. ln -sf "${PHP_ETC_DIR}/mods-available/00-ioncube.ini" "${PHP_ETC_DIR}/fpm/conf.d/00-ioncube.ini"
  34. fi
  35. ;;
  36. esac
  37. fi