Add more PHP extensions

This commit is contained in:
cytopia
2018-02-25 14:45:04 +01:00
parent a6fe8167b3
commit d35de6c6cb
9 changed files with 6656 additions and 2555 deletions

View File

@@ -18,132 +18,43 @@ LABEL \
### Envs
###
ENV BUILD_DEPS \
{# ---- PHP Built-in Extensions ---- #}
{% for ext in php_builtin_extensions.keys() %}
{# Enabled #}
{% if php_version in php_builtin_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %}
{# Version specific build_deps available #}
{% if php_version in php_builtin_extensions[ext] and 'build_dep' in php_builtin_extensions[ext][php_version] %}
{% for dep in php_builtin_extensions[ext][php_version]['build_dep'] %}
{{ dep }} \
{# Loop over enabled build dependencies #}
{% for ext in extensions_enabled %}
{# Not disabled #}
{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %}
{# Version specific build dependency available? #}
{% if php_version in extensions_available[ext] and 'build_dep' in extensions_available[ext][php_version] %}
{% for build_dep in extensions_available[ext][php_version]['build_dep'] %}
{{ build_dep }} \
{% endfor %}
{# Generic build dependency available? #}
{% elif 'all' in extensions_available[ext] and 'build_dep' in extensions_available[ext]['all'] %}
{% for build_dep in extensions_available[ext]['all']['build_dep'] %}
{{ build_dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
{# General build_deps available? #}
{% elif 'all' in php_builtin_extensions[ext] and 'build_dep' in php_builtin_extensions[ext]['all'] %}
{% for dep in php_builtin_extensions[ext]['all']['build_dep'] %}
{{ dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{# ---- PHP PECL Extensions ---- #}
{% for ext in php_pecl_extensions.keys() %}
{# Enabled #}
{% if php_version in php_pecl_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %}
{# Version specific build_deps available #}
{% if php_version in php_pecl_extensions[ext] and 'build_dep' in php_pecl_extensions[ext][php_version] %}
{% for dep in php_pecl_extensions[ext][php_version]['build_dep'] %}
{{ dep }} \
{% endfor %}
{# General build_deps available? #}
{% elif 'all' in php_pecl_extensions[ext] and 'build_dep' in php_pecl_extensions[ext]['all'] %}
{% for dep in php_pecl_extensions[ext]['all']['build_dep'] %}
{{ dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{# ---- PHP GIT Extensions git requirement ---- #}
{% if php_git_extensions %}
git \
{% endif %}
{# ---- PHP GIT Extensions ---- #}
{% for ext in php_git_extensions.keys() %}
{# Enabled #}
{% if php_version in php_git_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %}
{# Version specific build_deps available #}
{% if php_version in php_git_extensions[ext] and 'build_dep' in php_git_extensions[ext][php_version] %}
{% for dep in php_git_extensions[ext][php_version]['build_dep'] %}
{{ dep }} \
{% endfor %}
{# General build_deps available? #}
{% elif 'all' in php_git_extensions[ext] and 'build_dep' in php_git_extensions[ext]['all'] %}
{% for dep in php_git_extensions[ext]['all']['build_dep'] %}
{{ dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
ca-certificates
ca-certificates \
git
ENV RUN_DEPS \
{# ---- PHP Built-in Extensions ---- #}
{% for ext in php_builtin_extensions.keys() %}
{# Enabled #}
{% if php_version in php_builtin_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %}
{# Version specific run_deps available #}
{% if php_version in php_builtin_extensions[ext] and 'run_dep' in php_builtin_extensions[ext][php_version] %}
{% for dep in php_builtin_extensions[ext][php_version]['run_dep'] %}
{{ dep }} \
{% endfor %}
{# General config available? #}
{% elif 'all' in php_builtin_extensions[ext] and 'run_dep' in php_builtin_extensions[ext]['all'] %}
{% for dep in php_builtin_extensions[ext]['all']['run_dep'] %}
{{ dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{# ---- PHP PECL Extensions ---- #}
{% for ext in php_pecl_extensions.keys() %}
{# Enabled #}
{% if php_version in php_pecl_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %}
{# Version specific run_deps available #}
{% if php_version in php_pecl_extensions[ext] and 'run_dep' in php_pecl_extensions[ext][php_version] %}
{% for dep in php_pecl_extensions[ext][php_version]['run_dep'] %}
{{ dep }} \
{% endfor %}
{# General run_deps available? #}
{% elif 'all' in php_pecl_extensions[ext] and 'run_dep' in php_pecl_extensions[ext]['all'] %}
{% for dep in php_pecl_extensions[ext]['all']['run_dep'] %}
{{ dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{# ---- PHP GIT Extensions ---- #}
{% for ext in php_git_extensions.keys() %}
{# Enabled #}
{% if php_version in php_git_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %}
{# Version specific run_deps available #}
{% if php_version in php_git_extensions[ext] and 'run_dep' in php_git_extensions[ext][php_version] %}
{% for dep in php_git_extensions[ext][php_version]['run_dep'] %}
{{ dep }} \
{% endfor %}
{# General run_deps available? #}
{% elif 'all' in php_git_extensions[ext] and 'run_dep' in php_git_extensions[ext]['all'] %}
{% for dep in php_git_extensions[ext]['all']['run_dep'] %}
{{ dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{# Loop over enabled run-time dependencies #}
{% for ext in extensions_enabled %}
{# Not disabled #}
{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %}
{# Version specific run-time dependency available? #}
{% if php_version in extensions_available[ext] and 'run_dep' in extensions_available[ext][php_version] %}
{% for run_dep in extensions_available[ext][php_version]['run_dep'] %}
{{ run_dep }} \
{% endfor %}
{# Generic run-time dependency available? #}
{% elif 'all' in extensions_available[ext] and 'run_dep' in extensions_available[ext]['all'] %}
{% for run_dep in extensions_available[ext]['all']['run_dep'] %}
{{ run_dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
ca-certificates
@@ -157,109 +68,104 @@ RUN set -x \
${BUILD_DEPS} \
\
\
{# ---- PHP Built-in Extensions ---- #}
{% for ext in php_builtin_extensions.keys() %}
{# Enabled #}
{% if php_version in php_builtin_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %}
{# Version specific command available #}
{% if php_version in php_builtin_extensions[ext] and 'command' in php_builtin_extensions[ext][php_version] %}
&& {{ php_builtin_extensions[ext][php_version]['command'] }} \
{# General command available? #}
{% elif 'all' in php_builtin_extensions[ext] and 'command' in php_builtin_extensions[ext]['all'] %}
&& {{ php_builtin_extensions[ext]['all']['command'] }} \
{% endif %}
{# Version specific configure available #}
{% if php_version in php_builtin_extensions[ext] and 'configure' in php_builtin_extensions[ext][php_version] %}
&& /usr/local/bin/docker-php-ext-configure {{ ext }} {{ php_builtin_extensions[ext][php_version]['configure'] }} \
{# General configure available? #}
{% elif 'all' in php_builtin_extensions[ext] and 'configure' in php_builtin_extensions[ext]['all'] %}
&& /usr/local/bin/docker-php-ext-configure {{ ext }} {{ php_builtin_extensions[ext]['all']['configure'] }} \
{% endif %}
&& /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
{% endif %}
{% endif %}
{% endfor %}
\
\
{# ---- PHP PECL Extensions ---- #}
{% for ext in php_pecl_extensions.keys() %}
{# Enabled #}
{% if php_version in php_pecl_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %}
{# Version specific command available #}
{% if php_version in php_pecl_extensions[ext] and 'command' in php_pecl_extensions[ext][php_version] %}
&& {{ php_pecl_extensions[ext][php_version]['command'] }} \
{# General command available? #}
{% elif 'all' in php_pecl_extensions[ext] and 'command' in php_pecl_extensions[ext]['all'] %}
&& {{ php_pecl_extensions[ext]['all']['command'] }} \
{# Version specific name available #}
{% elif php_version in php_pecl_extensions[ext] and 'alt_name' in php_pecl_extensions[ext][php_version] %}
&& pecl install {{ php_pecl_extensions[ext][php_version]['alt_name'] }} \
{# General name available? #}
{% elif 'all' in php_pecl_extensions[ext] and 'alt_name' in php_pecl_extensions[ext]['all'] %}
&& pecl install {{ php_pecl_extensions[ext]['all']['alt_name'] }} \
{% else %}
&& pecl install {{ ext }} \
{% endif %}
{# Version specific module available #}
{% if php_version in php_pecl_extensions[ext] and 'alt_module' in php_pecl_extensions[ext][php_version] %}
&& docker-php-ext-enable {{ php_pecl_extensions[ext][php_version]['alt_module'] }} \
{# General module available? #}
{% elif 'all' in php_pecl_extensions[ext] and 'alt_module' in php_pecl_extensions[ext]['all'] %}
&& docker-php-ext-enable {{ php_pecl_extensions[ext]['all']['alt_module'] }} \
{% else %}
&& docker-php-ext-enable {{ ext }} \
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
\
\
{# ---- PHP GIT Extensions ---- #}
{% for ext in php_git_extensions.keys() %}
{# Enabled #}
{% if php_version in php_git_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %}
{# Version specific url available #}
{% if php_version in php_git_extensions[ext] and 'git_url' in php_git_extensions[ext][php_version] %}
&& git clone -v {{ php_git_extensions[ext][php_version]['git_url'] }} /tmp/{{ ext }} \
{# General url available? #}
{% else %}
&& git clone -v {{ php_git_extensions[ext]['all']['git_url'] }} /tmp/{{ ext }} \
{% endif %}
{# Version specific ref available #}
{% if php_version in php_git_extensions[ext] and 'git_ref' in php_git_extensions[ext][php_version] %}
&& cd /tmp/{{ ext }} \
&& git checkout {{ php_git_extensions[ext][php_version]['git_ref'] }} \
{# General ref available? #}
{% elif 'all' in php_git_extensions[ext] and 'git_ref' in php_git_extensions[ext]['all'] %}
&& cd /tmp/{{ ext }} \
&& git checkout {{ php_git_extensions[ext]['all']['git_ref'] }} \
{% endif %}
{# Version specific command available #}
{% if php_version in php_git_extensions[ext] and 'command' in php_git_extensions[ext][php_version] %}
&& cd /tmp/{{ ext }} && {{ php_git_extensions[ext][php_version]['command'] }} \
{# General command available? #}
{% else %}
&& cd /tmp/{{ ext }} && {{ php_git_extensions[ext]['all']['command'] }} \
{% endif %}
{# Version specific module available #}
{% if php_version in php_git_extensions[ext] and 'alt_module' in php_git_extensions[ext][php_version] %}
&& docker-php-ext-enable {{ php_git_extensions[ext][php_version]['alt_module'] }} \
{# General module available? #}
{% elif 'all' in php_git_extensions[ext] and 'alt_module' in php_git_extensions[ext]['all'] %}
&& docker-php-ext-enable {{ php_git_extensions[ext]['all']['alt_module'] }} \
{% else %}
&& docker-php-ext-enable {{ ext }} \
{% endif %}
{# Cleanup #}
&& cd / && rm -rf /tmp/{{ ext }} \
{% endif %}
{% endif %}
{# Loop over enabled extensions #}
{% for ext in extensions_enabled %}
{# Not disabled #}
{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %}
{# ---------- Pre Command ---------- #}
{# Version specific pre-command available? #}
{% if php_version in extensions_available[ext] and 'pre' in extensions_available[ext][php_version] %}
&& {{ extensions_available[ext][php_version]['pre'] }} \
{# Generic pre-command available? #}
{% elif 'all' in extensions_available[ext] and 'pre' in extensions_available[ext]['all'] %}
&& {{ extensions_available[ext]['all']['pre'] }} \
{% endif %}
{# ---------- Installation (specific) ---------- #}
{% if php_version in extensions_available[ext] and 'type' in extensions_available[ext][php_version] %}
{# ---- 1.) Builtin ---- #}
{% if extensions_available[ext][php_version]['type'] == 'builtin' %}
{% if 'configure' in extensions_available[ext][php_version] %}
&& /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext][php_version]['configure'] }} \
{% endif %}
&& /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
{# ---- 2.) PECL ---- #}
{% elif extensions_available[ext][php_version]['type'] == 'pecl' %}
{% if 'command' in extensions_available[ext][php_version] %}
&& {{ extensions_available[ext][php_version]['command'] }} \
{% else %}
&& pecl install {{ ext }}{% if 'version' in extensions_available[ext][php_version] %}-{{ extensions_available[ext][php_version]['version'] }}{% endif %} \
{% endif %}
&& docker-php-ext-enable {{ ext }} \
{# ---- 3.) GIT ---- #}
{% elif extensions_available[ext][php_version]['type'] == 'git' %}
&& git clone -v {{ extensions_available[ext][php_version]['git_url'] }} /tmp/{{ ext }} \
&& cd /tmp/{{ ext }} \
{% if 'git_ref' in extensions_available[ext][php_version] %}
&& git checkout {{ extensions_available[ext][php_version]['git_ref'] }} \
{% endif %}
{% if 'command' in extensions_available[ext][php_version] %}
&& {{ extensions_available[ext][php_version]['command'] }} \
{% else %}
&& phpize \
&& ./configure {% if 'configure' in extensions_available[ext][php_version] %} {{ extensions_available[ext][php_version]['configure'] }}{% endif %} \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
{% endif %}
&& docker-php-ext-enable {{ ext }} \
&& cd / && rm -rf /tmp/{{ ext }} \
{% endif %}
{# ---------- Installation (generic) ---------- #}
{% elif 'all' in extensions_available[ext] and 'type' in extensions_available[ext]['all'] %}
{# ---- 1.) Builtin ---- #}
{% if extensions_available[ext]['all']['type'] == 'builtin' %}
{% if 'configure' in extensions_available[ext]['all'] %}
&& /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \
{% endif %}
&& /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
{# ---- 2.) PECL ---- #}
{% elif extensions_available[ext]['all']['type'] == 'pecl' %}
{% if 'command' in extensions_available[ext]['all'] %}
&& {{ extensions_available[ext]['all']['command'] }} \
{% else %}
&& pecl install {{ ext }}{% if 'version' in extensions_available[ext]['all'] %}-{{ extensions_available[ext]['all']['version'] }}{% endif %} \
{% endif %}
&& docker-php-ext-enable {{ ext }} \
{# ---- 3.) GIT ---- #}
{% elif extensions_available[ext]['all']['type'] == 'git' %}
&& git clone -v {{ extensions_available[ext]['all']['git_url'] }} /tmp/{{ ext }} \
&& cd /tmp/{{ ext }} \
{% if 'git_ref' in extensions_available[ext]['all'] %}
&& git checkout {{ extensions_available[ext]['all']['git_ref'] }} \
{% endif %}
{% if 'command' in extensions_available[ext]['all'] %}
&& {{ extensions_available[ext]['all']['command'] }} \
{% else %}
&& phpize \
&& ./configure {% if 'configure' in extensions_available[ext]['all'] %} {{ extensions_available[ext]['all']['configure'] }}{% endif %} \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
{% endif %}
&& docker-php-ext-enable {{ ext }} \
&& cd / && rm -rf /tmp/{{ ext }} \
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
\
\
@@ -285,53 +191,17 @@ RUN set -x \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \
{# ---- PHP Built-in Extensions ---- #}
{% for ext in php_builtin_extensions.keys() %}
{# Enabled #}
{% if php_version in php_builtin_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %}
{% if ext == 'opcache' %}
&& php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
{% else %}
&& php -m | grep -oiE '^{{ ext }}$' \
&& php-fpm -m | grep -oiE '^{{ ext }}$' \
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{# ---- PHP PECL Extensions ---- #}
{% for ext in php_pecl_extensions.keys() %}
{# Enabled #}
{% if php_version in php_pecl_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %}
{% if ext == 'opcache' %}
&& php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
{% else %}
&& php -m | grep -oiE '^{{ ext }}$' \
&& php-fpm -m | grep -oiE '^{{ ext }}$' \
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{# ---- PHP GIT Extensions ---- #}
{% for ext in php_git_extensions.keys() %}
{# Enabled #}
{% if php_version in php_git_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %}
{% if ext == 'opcache' %}
&& php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
{% else %}
&& php -m | grep -oiE '^{{ ext }}$' \
&& php-fpm -m | grep -oiE '^{{ ext }}$' \
{% endif %}
{% endif %}
{% endif %}
{% for ext in extensions_enabled %}
{# Not disabled #}
{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %}
{% if ext == 'opcache' %}
&& php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
{% else %}
&& php -m | grep -oiE '^{{ ext }}$' \
&& php-fpm -m | grep -oiE '^{{ ext }}$' \
{% endif %}
{% endif %}
{% endfor %}
&& true

View File

@@ -31,463 +31,563 @@ php_conf_dir: /usr/local/etc/php.d
###
### Available GIT extensions
### Extensions to actually enable
###
### <ext>:
### enabled: []
### disabled: []
### all:
### git_url: Url for git clone
### git_ref: git branch tag, commit or shell command to retrieve a tag or commit
### command: command to install
### alt_module: alternative module name to enable (precedence over <ext>.so)
### build_dep:
### run_dep:
###
php_git_extensions:
memcache:
enabled: "{{ php_all_versions }}"
disabled: [5.4, 5.5, 5.6] # Officiel memcache is installed via pecl for 5.4, 5.5 and 5.6
all:
git_url: https://github.com/websupport-sk/pecl-memcache
git_ref: NON_BLOCKING_IO_php7
command: phpize && ./configure --with-zlib-dir=/usr && make -j$(getconf _NPROCESSORS_ONLN) && make install
build_dep: [zlib1g-dev]
phalcon:
enabled: "{{ php_all_versions }}"
5.4:
git_ref: phalcon-v2.0.13
all:
git_url: https://github.com/phalcon/cphalcon
git_ref: $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g')
command: cd build && ./install
uploadprogress:
enabled: "{{ php_all_versions }}"
disabled: [5.4, 5.5, 5.6]
all:
git_url: https://github.com/php/pecl-php-uploadprogress
git_ref: master
command: phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install
extensions_enabled:
- amqp
- apcu
- bcmath
- bz2
- calendar
- ctype
- curl
- 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
- mysql
- mysqli
- mysqlnd
- oci8
- odbc
- opcache
- openssl
- pcntl
- pcre
- pdo
- pdo_dblib
- pdo_firebird
- pdo_mysql
- pdo_oci
- pdo_odbc
- pdo_pgsql
- pdo_sqlite
- pgsql
- phalcon
- phar
- posix
- pspell
- readline
- recode
- redis
- session
- shmop
- simplexml
- snmp
- soap
- sockets
- sodium
- spl
- swoole
- sysvmsg
- sysvsem
- sysvshm
- tidy
- tokenizer
- uploadprogress
- wddx
- xdebug
- xml
- xmlreader
- xmlrpc
- xmlwriter
- xsl
- zip
###
### Available PECL extensions
### All available php modules
###
### <ext>:
### enabled: []
### disabled: []
### all:
### command: alternative command to install (precedence over <alt_name> and <ext>
### alt_name: alternative name of <ext> to install (precedence over <ext>
### alt_module: alternative module name to enable (precedence over <ext>.so)
### build_dep:
### run_dep:
###
php_pecl_extensions:
#apc:
# enabled: "{{ php_all_versions }}"
# disabled: [5.5, 5.6, 7.0, 7.1, 7.2]
#apcu_bc:
# enabled: "{{ php_all_versions }}"
# disabled: [5.4, 5.5, 5.6]
# all:
# alt_module: apc
apcu:
enabled: "{{ php_all_versions }}"
5.4:
alt_name: apcu-4.0.11
5.5:
alt_name: apcu-4.0.11
5.6:
alt_name: apcu-4.0.11
# all: is generic version of defines
# 7.2: is specific version of defines
# disabled: [optional] Array of PHP versions for which to disable this module
#
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
# pre: [optional] Run command before anything else
# build_dep: [optional] Array of build dependencies
# run_dep: [optional] Array of run-time dependencies
# type: [required] One of 'builtin', 'pecl' or 'git'
#
# type: builtin
# configure: [optional] Add './configure' arguments
# type: pecl
# version: [optional] Pecl packet version
# command: [optional] Overwrite pecl command (pecl install ext)
# type: git
# git_url: [required] Git repository URL
# git_ref: [optional] Tag, branch, commit to checkout
# configure: [optional] Add './configure' arguments
# command: [optional] Overwrite default command (phpize && ./configure && make && make install)
extensions_available:
amqp:
enabled: "{{ php_all_versions }}"
7.2:
type: pecl
run_dep: [librabbitmq4]
all:
type: pecl
command: echo "/usr" | pecl install amqp
build_dep: [librabbitmq-dev]
run_dep: [librabbitmq1]
igbinary:
enabled: "{{ php_all_versions }}"
imagick:
enabled: "{{ php_all_versions }}"
7.2:
run_dep: [libmagickwand-6.q16-3]
all:
build_dep: [libmagickwand-dev]
run_dep: [libmagickwand-6.q16-2]
mcrypt:
enabled: "{{ php_all_versions }}"
disabled: [5.4, 5.5, 5.6, 7.0, 7.1] # Already avail by default in other versions
7.2:
alt_name: mcrypt-1.0.1
build_dep: [libmcrypt-dev]
run_dep: [libmcrypt4]
memcache:
enabled: "{{ php_all_versions }}"
disabled: [7.0, 7.1, 7.2] # PHP7 uses unofficial git clone (see above)
all:
build_dep: [zlib1g-dev]
memcached:
enabled: "{{ php_all_versions }}"
apcu:
5.4:
alt_name: memcached-2.2.0
type: pecl
version: 4.0.11
5.5:
alt_name: memcached-2.2.0
type: pecl
version: 4.0.11
5.6:
alt_name: memcached-2.2.0
type: pecl
version: 4.0.11
all:
build_dep: [zlib1g-dev, libmemcached-dev]
run_dep: [libmemcachedutil2]
mongodb:
enabled: "{{ php_all_versions }}"
5.4:
alt_name: mongodb-1.2.11
build_dep: [libssl-dev]
msgpack:
enabled: "{{ php_all_versions }}"
5.4:
alt_name: msgpack-0.5.7
5.5:
alt_name: msgpack-0.5.7
5.6:
alt_name: msgpack-0.5.7
redis:
enabled: "{{ php_all_versions }}"
swoole:
enabled: "{{ php_all_versions }}"
5.4:
alt_name: swoole-1.9.23
5.5:
alt_name: swoole-1.9.23
5.6:
alt_name: swoole-1.9.23
7.2:
run_dep: [libnghttp2-14]
all:
build_dep: [libnghttp2-dev, libssl-dev]
run_dep: [libnghttp2-5]
uploadprogress:
enabled: "{{ php_all_versions }}"
disabled: [7.2, 7.1, 7.0]
xdebug:
enabled: "{{ php_all_versions }}"
5.4:
alt_name: xdebug-2.4.1
5.5:
alt_name: xdebug-2.5.5
5.6:
alt_name: xdebug-2.5.5
###
### PHP Built-in Modules to enable
###
### will use e.g. 5.6 for PHP 5.6 as specific configuration
### or if not available, use all
###
### module-name:
### enabled: [ what php versions it is enabled for]
### disabled: [ what php versions it is disabled for] (precedence over enabled)
### '5.6':
### command: command to execute prior installation
### configure: custom configure command
### build_dep:
### run_dep:
### all:
### command:
### configure:
### build_dep:
### run_dep:
###
php_builtin_extensions:
type: pecl
bcmath:
enabled: "{{ php_all_versions }}"
bz2:
enabled: "{{ php_all_versions }}"
all:
type: builtin
bz2:
all:
type: builtin
build_dep: [libbz2-dev]
calendar:
enabled: "{{ php_all_versions }}"
ctype:
enabled: "{{ php_all_versions }}"
curl:
enabled: "{{ php_all_versions }}"
all:
type: builtin
ctype:
all:
type: builtin
curl:
all:
type: builtin
build_dep: [libcurl4-openssl-dev]
dba:
enabled: "{{ php_all_versions }}"
dom:
enabled: "{{ php_all_versions }}"
all:
type: builtin
dom:
all:
type: builtin
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
enchant:
enabled: "{{ php_all_versions }}"
all:
type: builtin
build_dep: [libenchant-dev]
run_dep: [libenchant1c2a]
exif:
enabled: "{{ php_all_versions }}"
all:
type: builtin
fileinfo:
enabled: "{{ php_all_versions }}"
all:
type: builtin
filter:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # Available by default
ftp:
enabled: "{{ php_all_versions }}"
all:
type: builtin
configure: --with-openssl-dir
build_dep: [libssl-dev]
gd:
enabled: "{{ php_all_versions }}"
7.2:
type: builtin
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev]
run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6]
7.1:
type: builtin
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev]
run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp-dev]
7.0:
type: builtin
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev]
run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp-dev]
all:
command: ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/
type: builtin
pre: ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/
configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev]
run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6]
gettext:
enabled: "{{ php_all_versions }}"
gmp:
enabled: "{{ php_all_versions }}"
all:
command: ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/
type: builtin
gmp:
all:
type: builtin
pre: ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/
build_dep: [libgmp-dev]
hash:
enabled: "{{ php_all_versions }}"
iconv:
enabled: "{{ php_all_versions }}"
imap:
enabled: "{{ php_all_versions }}"
all:
command: ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/
type: builtin
iconv:
all:
type: builtin
igbinary:
all:
type: pecl
imagick:
7.2:
type: pecl
run_dep: [libmagickwand-6.q16-3]
all:
type: pecl
build_dep: [libmagickwand-dev]
run_dep: [libmagickwand-6.q16-2]
imap:
all:
type: builtin
pre: ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/
configure: --with-kerberos --with-imap-ssl --with-imap
build_dep: [libc-client-dev, libkrb5-dev, libcurl4-openssl-dev]
run_dep: [libc-client2007e]
interbase:
enabled: "{{ php_all_versions }}"
disabled: [5.4]
all:
type: builtin
build_dep: [libfbclient2, libib-util, firebird-dev]
run_dep: [libfbclient2]
intl:
enabled: "{{ php_all_versions }}"
7.2:
type: builtin
run_dep: [libicu57]
all:
type: builtin
build_dep: [libicu-dev]
run_dep: [libicu52]
json:
enabled: "{{ php_all_versions }}"
ldap:
enabled: "{{ php_all_versions }}"
all:
command: ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/
type: builtin
ldap:
all:
type: builtin
pre: ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/
configure: --with-ldap --with-ldap-sasl
build_dep: [libldap2-dev, libsasl2-dev]
libxml:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # Available by default
mbstring:
enabled: "{{ php_all_versions }}"
mcrypt:
enabled: "{{ php_all_versions }}"
disabled: [7.2]
7.2:
build_dep: []
run_dep: []
all:
type: builtin
mcrypt:
7.2:
type: pecl
version: 1.0.1
all:
type: builtin
run_dep: [libmcrypt4]
build_dep: [libmcrypt-dev]
memcache:
7.2:
type: git
git_url: https://github.com/websupport-sk/pecl-memcache
configure: --with-zlib-dir=/usr
7.1:
type: git
git_url: https://github.com/websupport-sk/pecl-memcache
configure: --with-zlib-dir=/usr
7.0:
type: git
git_url: https://github.com/websupport-sk/pecl-memcache
configure: --with-zlib-dir=/usr
all:
type: pecl
build_dep: [zlib1g-dev]
memcached:
5.4:
type: pecl
version: 2.2.0
5.5:
type: pecl
version: 2.2.0
5.6:
type: pecl
version: 2.2.0
all:
type: pecl
build_dep: [zlib1g-dev, libmemcached-dev]
run_dep: [libmemcachedutil2]
mongodb:
5.4:
type: pecl
version: 1.2.11
all:
type: pecl
build_dep: [libssl-dev]
msgpack:
5.4:
type: pecl
version: 0.5.7
5.5:
type: pecl
version: 0.5.7
5.6:
type: pecl
version: 0.5.7
all:
type: pecl
mysql:
enabled: "{{ php_all_versions }}"
disabled: [7.0, 7.1, 7.2]
disabled: [7.0, 7.1, 7.2] # Deprecated in newer versions
all:
type: builtin
mysqli:
enabled: "{{ php_all_versions }}"
#disabled: [7.0, 7.1, 7.2]
all:
type: builtin
mysqlnd:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # Available by default
oci8:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # TODO: Oracle library is missing
odbc:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # TODO: sqlext.h' not found!
opcache:
enabled: "{{ php_all_versions }}"
disabled: [5.4]
5.4:
type: pecl
command: pecl install zendopcache
all:
type: builtin
openssl:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # Available by default
pcntl:
enabled: "{{ php_all_versions }}"
all:
type: builtin
pcre:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # Available by default
pdo:
enabled: "{{ php_all_versions }}"
pdo_dblib:
enabled: "{{ php_all_versions }}"
all:
command: ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/
type: builtin
pdo_dblib:
all:
type: builtin
pre: ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/
build_dep: [freetds-dev]
run_dep: [libsybdb5]
pdo_firebird:
enabled: "{{ php_all_versions }}"
all:
type: builtin
build_dep: [libfbclient2, libib-util, firebird-dev]
run_dep: [libfbclient2]
pdo_mysql:
enabled: "{{ php_all_versions }}"
all:
type: builtin
configure: --with-zlib-dir=/usr
build_dep: [zlib1g-dev]
pdo_oci:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # TODO: Oracle library is missing
pdo_odbc:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # TODO: Build errors
pdo_pgsql:
enabled: "{{ php_all_versions }}"
all:
type: builtin
build_dep: [libpq-dev]
run_dep: [libpq5]
pdo_sqlite:
enabled: "{{ php_all_versions }}"
all:
type: builtin
build_dep: [libsqlite3-dev]
pgsql:
enabled: "{{ php_all_versions }}"
all:
type: builtin
build_dep: [libpq-dev]
run_dep: [libpq5]
phar:
enabled: "{{ php_all_versions }}"
phalcon:
5.4:
type: git
git_url: https://github.com/phalcon/cphalcon
git_ref: phalcon-v2.0.13
command: cd build && ./install
all:
type: git
git_url: https://github.com/phalcon/cphalcon
git_ref: $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g')
command: cd build && ./install
phar:
all:
type: builtin
build_dep: [libssl-dev]
posix:
enabled: "{{ php_all_versions }}"
pspell:
enabled: "{{ php_all_versions }}"
all:
type: builtin
pspell:
all:
type: builtin
build_dep: [libpspell-dev]
run_dep: [libaspell15]
readline:
enabled: "{{ php_all_versions }}"
disabled: [5.4]
disabled: [5.4] # Available by default
all:
type: builtin
build_dep: [libedit-dev, libreadline-dev]
recode:
enabled: "{{ php_all_versions }}"
all:
type: builtin
build_dep: [librecode-dev]
run_dep: [librecode0]
session:
enabled: "{{ php_all_versions }}"
redis:
all:
type: pecl
session:
all:
type: builtin
configure: --with-mm
build_dep: [libmm-dev]
shmop:
enabled: "{{ php_all_versions }}"
simplexml:
enabled: "{{ php_all_versions }}"
all:
type: builtin
simplexml:
all:
type: builtin
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
snmp:
enabled: "{{ php_all_versions }}"
all:
type: builtin
configure: --with-openssl-dir
build_dep: [libssl-dev, libsnmp-dev, snmp]
run_dep: [snmp]
soap:
enabled: "{{ php_all_versions }}"
all:
type: builtin
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
sockets:
enabled: "{{ php_all_versions }}"
sodium:
enabled: "{{ php_all_versions }}"
disabled: [5.4, 5.5, 5.6, 7.0, 7.1]
all:
type: builtin
sodium:
disabled: [5.4, 5.5, 5.6, 7.0, 7.1]
7.2:
type: builtin
build_dep: [libsodium-dev]
spl:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # TODO: Did not work
sysvmsg:
enabled: "{{ php_all_versions }}"
sysvsem:
enabled: "{{ php_all_versions }}"
sysvshm:
enabled: "{{ php_all_versions }}"
tidy:
enabled: "{{ php_all_versions }}"
swoole:
5.4:
type: pecl
version: 1.9.23
5.5:
type: pecl
version: 1.9.23
5.6:
type: pecl
version: 1.9.23
7.2:
type: pecl
run_dep: [libnghttp2-14]
all:
type: pecl
build_dep: [libnghttp2-dev, libssl-dev]
run_dep: [libnghttp2-5]
sysvmsg:
all:
type: builtin
sysvsem:
all:
type: builtin
sysvshm:
all:
type: builtin
tidy:
7.2:
type: builtin
run_dep: [libtidy5]
all:
type: builtin
build_dep: [libtidy-dev]
run_dep: [libtidy-0.99-0]
tokenizer:
enabled: "{{ php_all_versions }}"
wddx:
enabled: "{{ php_all_versions }}"
all:
type: builtin
uploadprogress:
7.2:
type: git
git_url: https://github.com/php/pecl-php-uploadprogress
configure: --enable-uploadprogress
7.1:
type: git
git_url: https://github.com/php/pecl-php-uploadprogress
configure: --enable-uploadprogress
7.0:
type: git
git_url: https://github.com/php/pecl-php-uploadprogress
configure: --enable-uploadprogress
all:
type: pecl
wddx:
all:
type: builtin
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
xml:
enabled: "{{ php_all_versions }}"
xdebug:
5.4:
type: pecl
version: 2.4.1
5.5:
type: pecl
version: 2.4.1
5.6:
type: pecl
version: 2.4.1
all:
type: pecl
xml:
all:
type: builtin
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
xmlreader:
enabled: "{{ php_all_versions }}"
disabled: [7.0, 7.1, 7.2] # build errors
disabled: [7.0, 7.1, 7.2] # Available by default
all:
type: builtin
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
xmlrpc:
enabled: "{{ php_all_versions }}"
all:
type: builtin
configure: --with-libxml-dir=/usr --with-iconv-dir=/usr
build_dep: [libxml2-dev]
xmlwriter:
enabled: "{{ php_all_versions }}"
all:
type: builtin
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
xsl:
enabled: "{{ php_all_versions }}"
all:
type: builtin
build_dep: [libxslt-dev]
run_dep: [libxslt1.1]
zip:
enabled: "{{ php_all_versions }}"
5.4:
type: builtin
configure: --with-zlib-dir=/usr --with-pcre-dir=/usr
build_dep: [zlib1g-dev]
run_dep: []
5.5:
type: builtin
configure: --with-zlib-dir=/usr --with-pcre-dir=/usr
build_dep: [zlib1g-dev]
run_dep: []
7.2:
type: builtin
run_dep: [libzip4]
all:
type: builtin
configure: --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip
build_dep: [zlib1g-dev, libzip-dev]
run_dep: [libzip2]