You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

php:8.2-fpm Docker镜像中IonCube Loader加载失败如何解决?

无法在PHP 8.2-fpm Docker容器中加载ionCube Loader

问题背景

我准备购买Setasign的FPDI-Parser完整版许可,先试用套件,但加载试用版专属工具时页面报错:

Script error: the Ioncube Loader for PHP needs to be installed. The ionCube Loader is the industry standard PHP extension for running protected PHP code, and can usually be added easily to a PHP installation. For Loaders please visit get-loader.ioncube.com and for an instructional video please see http://ioncu.be/LV

尝试的安装步骤

我使用php:8.2-fpm Docker镜像,在Dockerfile中添加以下命令安装ionCube Loader:

RUN curl -o ioncube.tar.gz http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
    && tar -xvvzf ioncube.tar.gz \
    && mv ioncube/ioncube_loader_lin_8.2.so `php-config --extension-dir` \
    && rm -Rf ioncube.tar.gz ioncube \
    && docker-php-ext-enable ioncube_loader_lin_8.2

错误现象

执行docker-compose --build up后,运行php -v输出:

Warning: Failed loading Zend extension 'ioncube_loader_lin_8.2' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20220829/ioncube_loader_lin_8.2 (/usr/local/lib/php/extensions/no-debug-non-zts-20220829/ioncube_loader_lin_8.2: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20220829/ioncube_loader_lin_8.2.so (/usr/local/lib/php/extensions/no-debug-non-zts-20220829/ioncube_loader_lin_8.2.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 8.2.21 (cli) (built: Jul 23 2024 07:02:30) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.21, Copyright (c) Zend Technologies

文件检查结果

文件实际存在,执行ls -la /usr/local/lib/php/extensions/no-debug-non-zts-20220829/ioncube_loader_lin_8.2.so结果:

-rw-rw-r-- 1 507 507 1761720 Jul  2 09:29 /usr/local/lib/php/extensions/no-debug-non-zts-20220829/ioncube_loader_lin_8.2.so

执行file /usr/local/lib/php/extensions/no-debug-non-zts-20220829/ioncube_loader_lin_8.2.so结果:

/usr/local/lib/php/extensions/no-debug-non-zts-20220829/ioncube_loader_lin_8.2.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

执行ldd /usr/local/lib/php/extensions/no-debug-non-zts-20220829/ioncube_loader_lin_8.2.so结果:

not a dynamic executable

我搞不懂为什么文件存在却加载失败,求解决思路,需要更多信息请告知。

补充信息

Dockerfile完整内容

FROM php:8.2-fpm

RUN apt-get update && apt-get install -y libmcrypt-dev zlib1g-dev libpng-dev libzip-dev\
    mariadb-client libmagickwand-dev --no-install-recommends \
    && pecl install imagick \
    && pecl install apcu \
    && pecl install mcrypt \
    && docker-php-ext-enable imagick apcu \
    && docker-php-ext-enable mcrypt \
    && docker-php-ext-install pdo_mysql \
    && docker-php-ext-install zip \
    && docker-php-ext-install gd \
    && docker-php-ext-enable gd \
    && docker-php-ext-enable zip

RUN curl -o ioncube.tar.gz http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
    && tar -xvvzf ioncube.tar.gz \
    && mv ioncube/ioncube_loader_lin_8.2.so `php-config --extension-dir` \
    && rm -Rf ioncube.tar.gz ioncube \
    && docker-php-ext-enable ioncube_loader_lin_8.2

WORKDIR /var/www

COPY --from=composer /usr/bin/composer /usr/bin/composer

docker-compose build --progress plain输出

0 building with "desktop-linux" instance using docker driver

#1 [app internal] load .dockerignore
#1 transferring context: 2B done
#1 DONE 0.0s

#2 [app internal] load build definition from app.dockerfile
#2 transferring dockerfile: 3.58kB done
#2 DONE 0.0s

#3 [app internal] load metadata for docker.io/library/composer:latest
#3 DONE 2.2s

#4 [app internal] load metadata for docker.io/library/php:8.2-fpm
#4 DONE 2.2s

#5 [app stage-0 1/5] FROM docker.io/library/php:8.2-fpm@sha256:f40ee21ed5b42d0ae6ff95aaa7e619a8701d96aa754eafc8fc7870eb455ce0eb
#5 resolve docker.io/library/php:8.2-fpm@sha256:f40ee21ed5b42d0ae6ff95aaa7e619a8701d96aa754eafc8fc7870eb455ce0eb done
#5 DONE 0.0s

#6 [app] FROM docker.io/library/composer@sha256:b7e5711118e4be186ef635d841a23325d78eae9de59503074a5b588bc04a0407
#6 resolve docker.io/library/composer@sha256:b7e5711118e4be186ef635d841a23325d78eae9de59503074a5b588bc04a0407 0.0s done
#6 DONE 0.0s

#7 [app stage-0 4/5] WORKDIR /var/www
#7 CACHED

#8 [app stage-0 2/5] RUN apt-get update && apt-get install -y libmcrypt-dev zlib1g-dev libpng-dev libzip-dev    mariadb-client libmagickwand-dev --no-install-recommends     && pecl install imagick     && pecl install apcu     && pecl install mcrypt     && docker-php-ext-enable imagick apcu     && docker-php-ext-enable mcrypt     && docker-php-ext-install pdo_mysql     && docker-php-ext-install zip     && docker-php-ext-install gd     && docker-php-ext-enable gd     && docker-php-ext-enable zip
#8 CACHED

#9 [app stage-0 3/5] RUN curl -o ioncube.tar.gz http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz     && tar -xvvzf ioncube.tar.gz     && mv ioncube/ioncube_loader_lin_8.2.so `php-config --extension-dir`     && rm -Rf ioncube.tar.gz ioncube     && docker-php-ext-enable ioncube_loader_lin_8.2
#9 CACHED

#10 [app stage-0 5/5] COPY --from=composer /usr/bin/composer /usr/bin/composer
#10 CACHED

#11 [app] exporting to image
#11 exporting layers done
#11 writing image sha256:79082b1d1fa77aea678606d39de90314a5afcbc1005a3f39c85e8588458aa580 done
#11 naming to docker.io/library/aicc-comm-laravel-9-app done
#11 DONE 0.0s

#12 [web internal] load .dockerignore
#12 transferring context: 2B done
#12 DONE 0.0s

#13 [web internal] load build definition from web.dockerfile
#13 transferring dockerfile: 104B done
#13 DONE 0.0s

#14 [web internal] load metadata for docker.io/library/nginx:1.23
#14 DONE 1.4s

#15 [web 1/2] FROM docker.io/library/nginx:1.23@sha256:f5747a42e3adcb3168049d63278d7251d91185bb5111d2563d58729a5c9179b0
#15 DONE 0.0s

#16 [web internal] load build context
#16 transferring context: 69B done
#16 DONE 0.0s

#17 [web 2/2] ADD vhost.conf /etc/nginx/conf.d/default.conf
#17 CACHED

#18 [web] exporting to image
#18 exporting layers done
#18 writing image sha256:4552dcf435c8f139caee192002dda3984eed1db65cdd0cba95751a77c6a286f2 done
#18 naming to docker.io/library/aicc-comm-laravel-9-web done
#18 DONE 0.0s

内容的提问来源于stack exchange,提问作者Brendan O Connell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 16:35:54