Maison >développement back-end >tutoriel php >Chargeur ionCube dans Docker

Chargeur ionCube dans Docker

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-06 17:18:021010parcourir

ionCube Loader in Docker

J'ai écrit quelque chose dont j'ai besoin pour mes projets et je pense que cela pourrait être utile pour vous aussi.

Vous pouvez installer automatiquement le chargeur ionCube lors de la création de l'image avec le script suivant.

# Change the tag as needed
FROM php:8.3-apache

COPY --chmod=775 ioncube-loader-setup.sh /tmp/ioncube-loader-setup.sh
RUN set -x && bash -c /tmp/ioncube-loader-setup.sh
# ioncube-loader-setup.sh

########################
# ionCube INSTALLATION #
########################

PHP_EXTENSION_DIR=$(php -r 'echo ini_get("extension_dir");')
echo "PHP_EXTENSION_DIR is $PHP_EXTENSION_DIR"
PHP_CONFIG_DIR=$(php -i | grep -ohP "with-config-file-scan-dir=([^']+)" | cut -d= -f2)
echo "PHP_CONFIG_DIR is $PHP_CONFIG_DIR"
PHP_VERSION=$(php -r 'list($major, $minor, $fix) = explode(".", phpversion(), 3); echo $major.".".$minor;')
echo "PHP_VERSION is $PHP_VERSION"

# Detect the correct ionCube loader architecture
IONCUBE_ARCH=""
ARCH=$(uname -m)
if [[ $ARCH == x86_64* ]]; then
  IONCUBE_ARCH="x86-64"
elif [[ $ARCH == i*86 ]]; then
  IONCUBE_ARCH="x86"
elif  [[ $ARCH = aarch64 ]]; then
  IONCUBE_ARCH="aarch64"
elif  [[ $ARCH == arm* ]]; then
  IONCUBE_ARCH="armv7l"
else
  echo "Unsupported ionCube loader architecture!" 1>&2
  exit 1
fi
echo "Detected ionCube loader architecture is $IONCUBE_ARCH based on $ARCH"

echo "Downloading the loader"
curl -O https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$IONCUBE_ARCH.tar.gz

echo "Extracting the loader"
tar -xzvf ioncube_loaders_lin_$IONCUBE_ARCH.tar.gz

LOADER_FILE=$(ls ioncube/*8.3*.so | cat)
LOADER_FILENAME=$(echo $LOADER_FILE | cut -d/ -f2)

if [ ! -f $LOADER_FILE ]; then
  echo "No loader found for PHP $LOADER_LOADER_VERSION" 1>&2
  exit 2
fi

echo "Copy loader file $LOADER_FILE to $PHP_EXTENSION_DIR"
cp $LOADER_FILE "$PHP_EXTENSION_DIR"

echo "Writing PHP config $PHP_CONFIG_DIR/00-ioncube.ini"
cat <<EOF | tee $PHP_CONFIG_DIR/00-ioncube.ini
zend_extension=$LOADER_FILENAME
EOF

# Cleanup
rm -rf ./ioncube
rm ioncube_loaders_lin_$IONCUBE_ARCH.tar.gz
rm -f ""

https://gist.github.com/devtronic/e7780dfdb31f4aa6df261739ef987d77

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn