Provide ionCube, but disabled by default

This commit is contained in:
cytopia
2018-05-21 09:53:18 +02:00
parent 6507383d94
commit 42b811f068
14 changed files with 117 additions and 59 deletions

View File

@@ -18,7 +18,6 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
wget \
librabbitmq-dev \ librabbitmq-dev \
libbz2-dev \ libbz2-dev \
libcurl4-openssl-dev \ libcurl4-openssl-dev \
@@ -119,11 +118,13 @@ RUN set -x \
\ \
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube_loaders_lin_x86-64.tar.gz \ && tar xvfz ioncube.tar.gz \
&& cd ioncube \ && cd ioncube \
&& cp "ioncube_loader_lin_5.3.so" "${EXTENSION_DIR}/ioncube.so" \ && cp "ioncube_loader_lin_5.3.so" "${EXTENSION_DIR}/ioncube.so" \
&& echo "zend_extension=${EXTENSION_DIR}/ioncube.so" > /usr/local/etc/php/conf.d/docker-php-ext-ioncube.ini \ && cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
\ \
&& echo "/usr" | pecl install amqp \ && echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
@@ -258,8 +259,6 @@ RUN set -x \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \ RUN set -x \
&& php -m | grep -oiE '^ionCube Loader$' \
&& php-fpm -m | grep -oiE '^ionCube Loader$' \
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \

View File

@@ -18,7 +18,6 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
wget \
librabbitmq-dev \ librabbitmq-dev \
libbz2-dev \ libbz2-dev \
libcurl4-openssl-dev \ libcurl4-openssl-dev \
@@ -119,11 +118,13 @@ RUN set -x \
\ \
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube_loaders_lin_x86-64.tar.gz \ && tar xvfz ioncube.tar.gz \
&& cd ioncube \ && cd ioncube \
&& cp "ioncube_loader_lin_5.4.so" "${EXTENSION_DIR}/ioncube.so" \ && cp "ioncube_loader_lin_5.4.so" "${EXTENSION_DIR}/ioncube.so" \
&& echo "zend_extension=${EXTENSION_DIR}/ioncube.so" > /usr/local/etc/php/conf.d/docker-php-ext-ioncube.ini \ && cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
\ \
&& echo "/usr" | pecl install amqp \ && echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
@@ -258,8 +259,6 @@ RUN set -x \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \ RUN set -x \
&& php -m | grep -oiE '^ionCube Loader$' \
&& php-fpm -m | grep -oiE '^ionCube Loader$' \
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \

View File

@@ -18,7 +18,6 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
wget \
librabbitmq-dev \ librabbitmq-dev \
libbz2-dev \ libbz2-dev \
libcurl4-openssl-dev \ libcurl4-openssl-dev \
@@ -121,11 +120,13 @@ RUN set -x \
\ \
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube_loaders_lin_x86-64.tar.gz \ && tar xvfz ioncube.tar.gz \
&& cd ioncube \ && cd ioncube \
&& cp "ioncube_loader_lin_5.5.so" "${EXTENSION_DIR}/ioncube.so" \ && cp "ioncube_loader_lin_5.5.so" "${EXTENSION_DIR}/ioncube.so" \
&& echo "zend_extension=${EXTENSION_DIR}/ioncube.so" > /usr/local/etc/php/conf.d/docker-php-ext-ioncube.ini \ && cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
\ \
&& echo "/usr" | pecl install amqp \ && echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
@@ -260,8 +261,6 @@ RUN set -x \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \ RUN set -x \
&& php -m | grep -oiE '^ionCube Loader$' \
&& php-fpm -m | grep -oiE '^ionCube Loader$' \
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \

View File

@@ -18,7 +18,6 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
wget \
librabbitmq-dev \ librabbitmq-dev \
libbz2-dev \ libbz2-dev \
libcurl4-openssl-dev \ libcurl4-openssl-dev \
@@ -123,11 +122,13 @@ RUN set -x \
\ \
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube_loaders_lin_x86-64.tar.gz \ && tar xvfz ioncube.tar.gz \
&& cd ioncube \ && cd ioncube \
&& cp "ioncube_loader_lin_5.6.so" "${EXTENSION_DIR}/ioncube.so" \ && cp "ioncube_loader_lin_5.6.so" "${EXTENSION_DIR}/ioncube.so" \
&& echo "zend_extension=${EXTENSION_DIR}/ioncube.so" > /usr/local/etc/php/conf.d/docker-php-ext-ioncube.ini \ && cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
\ \
&& echo "/usr" | pecl install amqp \ && echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
@@ -262,8 +263,6 @@ RUN set -x \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \ RUN set -x \
&& php -m | grep -oiE '^ionCube Loader$' \
&& php-fpm -m | grep -oiE '^ionCube Loader$' \
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \

View File

@@ -18,7 +18,6 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
wget \
librabbitmq-dev \ librabbitmq-dev \
libbz2-dev \ libbz2-dev \
libcurl4-openssl-dev \ libcurl4-openssl-dev \
@@ -121,11 +120,13 @@ RUN set -x \
\ \
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube_loaders_lin_x86-64.tar.gz \ && tar xvfz ioncube.tar.gz \
&& cd ioncube \ && cd ioncube \
&& cp "ioncube_loader_lin_7.0.so" "${EXTENSION_DIR}/ioncube.so" \ && cp "ioncube_loader_lin_7.0.so" "${EXTENSION_DIR}/ioncube.so" \
&& echo "zend_extension=${EXTENSION_DIR}/ioncube.so" > /usr/local/etc/php/conf.d/docker-php-ext-ioncube.ini \ && cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
\ \
&& echo "/usr" | pecl install amqp \ && echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
@@ -265,8 +266,6 @@ RUN set -x \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \ RUN set -x \
&& php -m | grep -oiE '^ionCube Loader$' \
&& php-fpm -m | grep -oiE '^ionCube Loader$' \
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \

View File

@@ -18,7 +18,6 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
wget \
librabbitmq-dev \ librabbitmq-dev \
libbz2-dev \ libbz2-dev \
libcurl4-openssl-dev \ libcurl4-openssl-dev \
@@ -121,11 +120,13 @@ RUN set -x \
\ \
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube_loaders_lin_x86-64.tar.gz \ && tar xvfz ioncube.tar.gz \
&& cd ioncube \ && cd ioncube \
&& cp "ioncube_loader_lin_7.1.so" "${EXTENSION_DIR}/ioncube.so" \ && cp "ioncube_loader_lin_7.1.so" "${EXTENSION_DIR}/ioncube.so" \
&& echo "zend_extension=${EXTENSION_DIR}/ioncube.so" > /usr/local/etc/php/conf.d/docker-php-ext-ioncube.ini \ && cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
\ \
&& echo "/usr" | pecl install amqp \ && echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
@@ -267,8 +268,6 @@ RUN set -x \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \ RUN set -x \
&& php -m | grep -oiE '^ionCube Loader$' \
&& php-fpm -m | grep -oiE '^ionCube Loader$' \
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \

View File

@@ -18,7 +18,6 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
wget \
librabbitmq-dev \ librabbitmq-dev \
libbz2-dev \ libbz2-dev \
libcurl4-openssl-dev \ libcurl4-openssl-dev \
@@ -122,11 +121,13 @@ RUN set -x \
\ \
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube_loaders_lin_x86-64.tar.gz \ && tar xvfz ioncube.tar.gz \
&& cd ioncube \ && cd ioncube \
&& cp "ioncube_loader_lin_7.2.so" "${EXTENSION_DIR}/ioncube.so" \ && cp "ioncube_loader_lin_7.2.so" "${EXTENSION_DIR}/ioncube.so" \
&& echo "zend_extension=${EXTENSION_DIR}/ioncube.so" > /usr/local/etc/php/conf.d/docker-php-ext-ioncube.ini \ && cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
\ \
&& pecl install amqp \ && pecl install amqp \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
@@ -270,8 +271,6 @@ RUN set -x \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \ RUN set -x \
&& php -m | grep -oiE '^ionCube Loader$' \
&& php-fpm -m | grep -oiE '^ionCube Loader$' \
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \

View File

@@ -0,0 +1,51 @@
#!/usr/bin/env bash
set -e
set -u
set -o pipefail
############################################################
# Functions
############################################################
###
### Enable PHP Modules
###
enable_modules() {
local mod_varname="${1}"
local debug="${2}"
local cfg_path="/usr/local/etc/php/conf.d"
local mod_path=
mod_path="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )"
if ! env_set "${mod_varname}"; then
log "info" "\$${mod_varname} not set. Not enabling any PHP modules." "${debug}"
else
mods="$( env_get "${mod_varname}" )"
if [ -z "${mods}" ]; then
log "info" "\$${mod_varname} set, but empty. Not enabling any PHP modules." "${debug}"
else
log "info" "Enabling the following PHP modules: ${mods}" "${debug}"
fi
while read -r mod; do
mod="$( echo "${mod}" | xargs )" # trim
# Does the module exist?
if [ -f "${mod_path}/${mod}.so" ]; then
# Exceptions to load speficially
if [ "${mod}" = "ioncube" ]; then
run "eche 'zend_extension=${mod_path}/ioncube.so' > '${cfg_path}/docker-ext-php-ext-ioncube.ini'" "${debug}"
# Generic Load
else
run "docker-php-ext-enable ${mod} || true" "${debug}"
fi
else
log "warn" "Enabling PHP Module: '${mod}' does not exist" "${debug}"
fi
done <<< "$( echo "${mods}" | tr ',' '\n' )"
fi
}

View File

@@ -15,7 +15,7 @@ set -o pipefail
disable_modules() { disable_modules() {
local mod_varname="${1}" local mod_varname="${1}"
local debug="${2}" local debug="${2}"
local mod_path="/usr/local/etc/php/conf.d" local cfg_path="/usr/local/etc/php/conf.d"
if ! env_set "${mod_varname}"; then if ! env_set "${mod_varname}"; then
log "info" "\$${mod_varname} not set. Not disabling any PHP modules." "${debug}" log "info" "\$${mod_varname} not set. Not disabling any PHP modules." "${debug}"
@@ -23,17 +23,16 @@ disable_modules() {
mods="$( env_get "${mod_varname}" )" mods="$( env_get "${mod_varname}" )"
if [ -z "${mods}" ]; then if [ -z "${mods}" ]; then
log "warn" "\$${mod_varname} set, but empty. Not disabling any PHP modules." "${debug}" log "info" "\$${mod_varname} set, but empty. Not disabling any PHP modules." "${debug}"
else else
log "info" "Disabling the following PHP modules: ${mods}" "${debug}" log "info" "Disabling the following PHP modules: ${mods}" "${debug}"
fi fi
while read -r mod; do while read -r mod; do
#for mod in ${mods//,/ }; do
mod="$( echo "${mod}" | xargs )" # trim mod="$( echo "${mod}" | xargs )" # trim
# Find all config files that enable that module # Find all config files that enable that module
files="$( grep -Er "^(zend_)?extension.*(=|/)${mod}\.so" "${mod_path}" || true )" files="$( grep -Er "^(zend_)?extension.*(=|/)${mod}\.so" "${cfg_path}" || true )"
if [ -n "${files}" ]; then if [ -n "${files}" ]; then
while read -r f; do while read -r f; do
@@ -44,6 +43,5 @@ disable_modules() {
done <<< "${files}" done <<< "${files}"
fi fi
done <<< "$( echo "${mods}" | tr ',' '\n' )" done <<< "$( echo "${mods}" | tr ',' '\n' )"
#done
fi fi
} }

View File

@@ -160,6 +160,12 @@ copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_INI_DIR}" "${DEBUG_LEVEL}"
copy_fpm_files "${PHP_CUST_FPM_DIR}" "${PHP_FPM_DIR}" "${DEBUG_LEVEL}" copy_fpm_files "${PHP_CUST_FPM_DIR}" "${PHP_FPM_DIR}" "${DEBUG_LEVEL}"
###
### Enable PHP Modules
###
enable_modules "ENABLE_MODULES" "${DEBUG_LEVEL}"
### ###
### Disable PHP Modules ### Disable PHP Modules
### ###

View File

@@ -160,6 +160,12 @@ copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_INI_DIR}" "${DEBUG_LEVEL}"
copy_fpm_files "${PHP_CUST_FPM_DIR}" "${PHP_FPM_DIR}" "${DEBUG_LEVEL}" copy_fpm_files "${PHP_CUST_FPM_DIR}" "${PHP_FPM_DIR}" "${DEBUG_LEVEL}"
###
### Enable PHP Modules
###
enable_modules "ENABLE_MODULES" "${DEBUG_LEVEL}"
### ###
### Disable PHP Modules ### Disable PHP Modules
### ###

View File

@@ -469,37 +469,37 @@ Check out this table to see which Docker image provides what PHP modules.
<tr> <tr>
<th>5.3</th> <th>5.3</th>
<td id="53-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, hash, iconv, json, libxml, mysql, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, SQLite, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td> <td id="53-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, hash, iconv, json, libxml, mysql, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, SQLite, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="53-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ionCube Loader, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, SQLite, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, the ionCube PHP Loader, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td> <td id="53-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, SQLite, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
</tr> </tr>
<tr> <tr>
<th>5.4</th> <th>5.4</th>
<td id="54-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, hash, iconv, json, libxml, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td> <td id="54-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, hash, iconv, json, libxml, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="54-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ionCube Loader, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured), tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td> <td id="54-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
</tr> </tr>
<tr> <tr>
<th>5.5</th> <th>5.5</th>
<td id="55-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td> <td id="55-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="55-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ionCube Loader, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured), tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td> <td id="55-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
</tr> </tr>
<tr> <tr>
<th>5.6</th> <th>5.6</th>
<td id="56-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mhash, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td> <td id="56-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mhash, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="56-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ionCube Loader, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mhash, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured), tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td> <td id="56-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mhash, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
</tr> </tr>
<tr> <tr>
<th>7.0</th> <th>7.0</th>
<td id="70-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td> <td id="70-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="70-mods">amqp, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ionCube Loader, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured), tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td> <td id="70-mods">amqp, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
</tr> </tr>
<tr> <tr>
<th>7.1</th> <th>7.1</th>
<td id="71-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td> <td id="71-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="71-mods">amqp, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ionCube Loader, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured), tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td> <td id="71-mods">amqp, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
</tr> </tr>
<tr> <tr>
<th>7.2</th> <th>7.2</th>
<td id="72-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td> <td id="72-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="72-mods">amqp, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ionCube Loader, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured), tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td> <td id="72-mods">amqp, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
</tr> </tr>
<tr> <tr>
<th>7.3</th> <th>7.3</th>
@@ -610,7 +610,7 @@ Have a look at the following table to see all supported environment variables fo
<td colspan="5"></td> <td colspan="5"></td>
</tr> </tr>
<tr> <tr>
<td rowspan="5"><strong>prod</strong><br/><br/><strong>work</strong></td> <td rowspan="6"><strong>prod</strong><br/><br/><strong>work</strong></td>
<td><code>TIMEZONE</code></td> <td><code>TIMEZONE</code></td>
<td>string</td> <td>string</td>
<td><code>UTC</code></td> <td><code>UTC</code></td>
@@ -622,6 +622,12 @@ Have a look at the following table to see all supported environment variables fo
<td><code>1</code></td> <td><code>1</code></td>
<td>By default all Docker images are configured to output their PHP-FPM access and error logs to stdout and stderr. Those which support it can change the behaviour to log into files inside the container. Their respective directories are available as volumes that can be mounted to the host computer. This feature might help developer who are more comfortable with tailing or searching through actual files instead of using docker logs.<br/><br/>Set this variable to <code>0</code> in order to enable logging to files. Log files are avilable under <code>/var/log/php/</code> which is also a docker volume that can be mounted locally.</td> <td>By default all Docker images are configured to output their PHP-FPM access and error logs to stdout and stderr. Those which support it can change the behaviour to log into files inside the container. Their respective directories are available as volumes that can be mounted to the host computer. This feature might help developer who are more comfortable with tailing or searching through actual files instead of using docker logs.<br/><br/>Set this variable to <code>0</code> in order to enable logging to files. Log files are avilable under <code>/var/log/php/</code> which is also a docker volume that can be mounted locally.</td>
</tr> </tr>
<tr>
<td><code>ENABLE_MODULES</code></td>
<td>string</td>
<td><code>''</code></td>
<td>Comma separated list of PHP modules to enable, which are not enabled by default.<br/><strong>Example:</strong><br/><code>ENABLE_MODULES=ioncube</code></td>
</tr>
<tr> <tr>
<td><code>DISABLE_MODULES</code></td> <td><code>DISABLE_MODULES</code></td>
<td>string</td> <td>string</td>

View File

@@ -188,8 +188,7 @@ RUN set -x \
&& php -m | grep -oiE '^Zend Opcache$' \ && php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \ && php-fpm -m | grep -oiE '^Zend Opcache$' \
{% elif ext == 'ioncube' %} {% elif ext == 'ioncube' %}
&& php -m | grep -oiE '^ionCube Loader$' \ {# Not enabled #}
&& php-fpm -m | grep -oiE '^ionCube Loader$' \
{% else %} {% else %}
&& php -m | grep -oiE '^{{ ext }}$' \ && php -m | grep -oiE '^{{ ext }}$' \
&& php-fpm -m | grep -oiE '^{{ ext }}$' \ && php-fpm -m | grep -oiE '^{{ ext }}$' \

View File

@@ -675,13 +675,12 @@ extensions_available:
EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube_loaders_lin_x86-64.tar.gz \ && tar xvfz ioncube.tar.gz \
&& cd ioncube \ && cd ioncube \
&& cp "ioncube_loader_lin_{{ php_version }}.so" "${EXTENSION_DIR}/ioncube.so" \ && cp "ioncube_loader_lin_{{ php_version }}.so" "${EXTENSION_DIR}/ioncube.so" \
&& cd ../ \ && cd ../ \
&& rm -rf ioncube \ && rm -rf ioncube \
&& rm -rf ioncube.tar.gz \ && rm -rf ioncube.tar.gz \
&& echo "zend_extension=${EXTENSION_DIR}/ioncube.so" > /usr/local/etc/php/conf.d/docker-php-ext-ioncube.ini \
json: json:
7.0: 7.0:
type: builtin type: builtin