docker-php-ext-install 1.72 KB
#!/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-$
        echo
	echo 'Possible values for ext-name:'
        echo $(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -na$
}

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
                ini="/usr/local/etc/php/conf.d/docker-php-ext-$ext.ini"
               	for module in modules/*.so; do
                        if [ -f "$module" ]; then
                               	if grep -q zend_extension_entry "$module$
                                       	# https://wiki.php.net/internals$
                                       	line="zend_extension=$(basename $
                               	else
                                       	line="extension=$(basename "$mod$
                               	fi
                               	if ! grep -q "$line" "$ini"; then
                                       	echo "$line" >> "/usr/local/etc/$
                               	fi
                       	fi
               	done
               	make clean
        )
done