ホームページ  >  記事  >  バックエンド開発  >  Docker の ionCube ローダー

Docker の ionCube ローダー

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-06 17:18:02930ブラウズ

ionCube Loader in Docker

私のプロジェクトに必要なことを書きました。これはあなたにも役立つと思います。

次のスクリプトを使用すると、イメージの作成中に ionCube ローダーを自動的にインストールできます。

# 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

以上がDocker の ionCube ローダーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。