php/docker-php-ext-install
Tianon Gravi fef9f6ec8a Add new "docker-php-ext-enable" script for more intelligent module enabling
This also updates `docker-php-ext-install` to invoke this script properly after successful extension compilation.

If modules are determined to already be enabled, it'll skip them appropriately.

This removes simple warnings like `PHP Warning:  Module 'curl' already loaded in Unknown on line 0`, and enables things like `pecl install mongo && docker-php-ext-enable mongo`.
2015-08-04 16:04:25 -07:00

48 lines
932 B
Bash
Executable File

#!/bin/bash
set -e
cd /usr/src/php/ext
usage() {
echo "usage: $0 ext-name [ext-name ...]"
echo " ie: $0 gd mysqli"
echo " $0 pdo pdo_mysql"
echo
echo 'if custom ./configure arguments are necessary, see docker-php-ext-configure'
echo
echo 'Possible values for ext-name:'
echo $(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | cut -d/ -f6 | sort)
}
exts=()
while [ $# -gt 0 ]; do
ext="$1"
shift
if [ -z "$ext" ]; then
continue
fi
if [ ! -d "$ext" ]; then
echo >&2 "error: $(pwd -P)/$ext does not exist"
echo >&2
usage >&2
exit 1
fi
exts+=( "$ext" )
done
if [ "${#exts[@]}" -eq 0 ]; then
usage >&2
exit 1
fi
for ext in "${exts[@]}"; do
(
cd "$ext"
[ -e Makefile ] || docker-php-ext-configure "$ext"
make
make install
find modules -maxdepth 1 -name '*.so' -exec basename '{}' ';' | xargs --no-run-if-empty --verbose docker-php-ext-enable
make clean
)
done