Skip to content

Instantly share code, notes, and snippets.

@kubaceg
Created May 4, 2017 07:30
Show Gist options
  • Star 30 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save kubaceg/f116bf85ed9257e2b3099941bca309b1 to your computer and use it in GitHub Desktop.
Save kubaceg/f116bf85ed9257e2b3099941bca309b1 to your computer and use it in GitHub Desktop.
Docker install ioncube extension (php 5.6)
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_5.6.so `php-config --extension-dir` \
&& rm -Rf ioncube.tar.gz ioncube \
&& docker-php-ext-enable ioncube_loader_lin_5.6
@mabebrahimi
Copy link

This is a wonderful Dockerfile

@appsol
Copy link

appsol commented Jul 29, 2019

I agree entirely.
Also works on PHP 7.2. Thanks for a solution that just works.

RUN curl -fsSL 'https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz' -o ioncube.tar.gz \ && mkdir -p /tmp/ioncube \ && tar -xvvzf ioncube.tar.gz \ && mv ioncube/ioncube_loader_lin_7.2.so php-config --extension-dir \ && rm -Rf ioncube.tar.gz ioncube \ && docker-php-ext-enable ioncube_loader_lin_7.2

@yarosdev
Copy link

yarosdev commented Aug 8, 2019

[ionCube Loader] The Loader must appear as the first entry in the php.ini file in Unknown on line 0

@graceman9
Copy link

I use DDEV (DDEV is a wrapper for Docker), and my project (OCStore 2.3) running on Debian Buster, so it requires several extra lines of code:

RUN curl -o ioncube.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
    && tar -xvvzf ioncube.tar.gz \
    && REPO="deb-src http://deb.debian.org/debian buster main" \
    && echo $REPO >> /etc/apt/sources.list \
    && apt update \
    && apt install php5.6-dev -y \
    && mv ioncube/ioncube_loader_lin_5.6.so `php-config --extension-dir` \
    && rm -Rf ioncube.tar.gz ioncube \
    && echo "zend_extension = /usr/lib/php/20131226/ioncube_loader_lin_5.6.so" > /etc/php/5.6/fpm/conf.d/00-ioncube.ini
    && echo "zend_extension = /usr/lib/php/20131226/ioncube_loader_lin_5.6.so" > /etc/php/5.6/cli/conf.d/00-ioncube.ini

P.S.: I was not able to use docker-php-ext-enable because of error "bash: docker-php-ext-enable: command not found"

Hope someday it will save a day for someone ;)

@avi7611
Copy link

avi7611 commented Nov 13, 2020

can somone tell me how to use it for php7.0 ? im want to build CubeCart 5.2.8 with php7.0

@hrnsykk
Copy link

hrnsykk commented Mar 12, 2021

I get bellow issue. Why ?

/bin/sh: 1: php-config: not found
mv: missing destination file operand after 'ioncube/ioncube_loader_lin_7.2.so'
Try 'mv --help' for more information.

PHP-FPM is phpdockerio/php72-fpm:latest

I agree entirely.
Also works on PHP 7.2. Thanks for a solution that just works.

RUN curl -fsSL 'https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz' -o ioncube.tar.gz \ && mkdir -p /tmp/ioncube \ && tar -xvvzf ioncube.tar.gz \ && mv ioncube/ioncube_loader_lin_7.2.so php-config --extension-dir \ && rm -Rf ioncube.tar.gz ioncube \ && docker-php-ext-enable ioncube_loader_lin_7.2

@aderchox
Copy link

aderchox commented Nov 9, 2021

I get this error:

[09-Nov-2021 12:52:35 UTC] PHP Warning:  Failed loading Zend extension 'ioncube_loader_lin_5.6' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20190902/ioncube_loader_lin_5.6 (/usr/local/lib/php/extensions/no-debug-non-zts-20190902/ioncube_loader_lin_5.6: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20190902/ioncube_loader_lin_5.6.so (/usr/local/lib/php/extensions/no-debug-non-zts-20190902/ioncube_loader_lin_5.6.so: undefined symbol: zend_block_interruptions)) in Unknown on line 0

UPDATE: I've fixed it, the issue was that the version of the PHP I was using was higher(7.4) and not compatible with ioncube version 5.6. So I used ioncube version 7.4:

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_7.4.so `php-config --extension-dir` \
    && rm -Rf ioncube.tar.gz ioncube \
    && docker-php-ext-enable ioncube_loader_lin_7.4

and it's now fixed 🥳. Thank you @kubaceg.

@ha3an-118
Copy link

tanks it's work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment