diff --git a/Dockerfiles/mods/Dockerfile-7.3 b/Dockerfiles/mods/Dockerfile-7.3 index 1fde9b5c..b9c045ed 100644 --- a/Dockerfiles/mods/Dockerfile-7.3 +++ b/Dockerfiles/mods/Dockerfile-7.3 @@ -379,9 +379,8 @@ RUN set -x \ # ---- Installing PHP Extension: swoole ---- && git clone https://github.com/swoole/swoole-src /tmp/swoole \ && cd /tmp/swoole \ - && git checkout master \ && git checkout $(git describe --abbrev=0 --tags) \ -&& phpize \ + && phpize \ && ./configure \ --enable-openssl \ --enable-sockets \ diff --git a/Dockerfiles/mods/Dockerfile-7.4 b/Dockerfiles/mods/Dockerfile-7.4 index 598dfe14..1ed0c50c 100644 --- a/Dockerfiles/mods/Dockerfile-7.4 +++ b/Dockerfiles/mods/Dockerfile-7.4 @@ -293,7 +293,7 @@ RUN set -x \ && sed -i'' 's/ZEND_ACC_CTOR | //g' redis.c \ && sed -i'' 's/ZEND_ACC_DTOR | //g' redis.c \ && sed -i'' 's/ZEND_ACC_CTOR | //g' redis_cluster.c \ -&& ./configure \ +&& ./configure --enable-redis \ && make -j$(getconf _NPROCESSORS_ONLN) \ && make install \ \ @@ -333,8 +333,7 @@ RUN set -x \ && git clone https://github.com/swoole/swoole-src /tmp/swoole \ && cd /tmp/swoole \ && git checkout master \ - && git checkout $(git describe --abbrev=0 --tags) \ -&& phpize \ + && phpize \ && ./configure \ --enable-openssl \ --enable-sockets \ diff --git a/Dockerfiles/mods/Dockerfile-8.0 b/Dockerfiles/mods/Dockerfile-8.0 index f4bde49b..1b84c72d 100644 --- a/Dockerfiles/mods/Dockerfile-8.0 +++ b/Dockerfiles/mods/Dockerfile-8.0 @@ -181,6 +181,32 @@ RUN set -x \ && (rm -rf /usr/local/lib/php/test/memcached || true) \ && (rm -rf /usr/local/lib/php/doc/memcached || true) \ \ +# ---- Installing PHP Extension: mongodb ---- + && git clone https://github.com/mongodb/mongo-php-driver /tmp/mongodb \ + && cd /tmp/mongodb \ + && git submodule update --init \ +# FIXME: This is a work-around to mitigate compile error with PHP 8.0 +&& rgrep -I 'TSRMLS_C' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_C)/)/g' \ +&& rgrep -I 'TSRMLS_C' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_C,/,/g' \ +&& rgrep -I 'TSRMLS_CC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_CC)/)/g' \ +&& rgrep -I 'TSRMLS_CC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_CC,/,/g' \ +&& rgrep -I 'TSRMLS_DC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_DC)/)/g' \ +&& rgrep -I 'TSRMLS_DC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_DC,/,/g' \ +&& sed -i'' 's/TSRMLS_SET_CTX(ctx);/\/\/TSRMLS_SET_CTX(ctx);/g' php_phongo.c \ +&& phpize \ +&& ./configure --enable-mongodb \ +&& make all \ +&& make install \ + \ + && docker-php-ext-enable mongodb \ + && (rm -rf /usr/local/lib/php/test/mongodb || true) \ + && (rm -rf /usr/local/lib/php/doc/mongodb || true) \ + \ +# ---- Installing PHP Extension: mysqli ---- + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && (rm -rf /usr/local/lib/php/test/mysqli || true) \ + && (rm -rf /usr/local/lib/php/doc/mysqli || true) \ + \ # ---- Installing PHP Extension: oci8 ---- && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ @@ -270,6 +296,28 @@ RUN set -x \ && (rm -rf /usr/local/lib/php/test/recode || true) \ && (rm -rf /usr/local/lib/php/doc/recode || true) \ \ +# ---- Installing PHP Extension: redis ---- + && git clone https://github.com/phpredis/phpredis /tmp/redis \ + && cd /tmp/redis \ + && phpize \ +&& sed -i'' 's/ZEND_ACC_CTOR | //g' redis.c \ +&& sed -i'' 's/ZEND_ACC_DTOR | //g' redis.c \ +&& sed -i'' 's/ZEND_ACC_CTOR | //g' redis_cluster.c \ +# FIXME: This is a work-around to mitigate compile error with PHP 8.0 +&& rgrep -I 'TSRMLS_C' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_C)/)/g' \ +&& rgrep -I 'TSRMLS_C' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_C,/,/g' \ +&& rgrep -I 'TSRMLS_CC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_CC)/)/g' \ +&& rgrep -I 'TSRMLS_CC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_CC,/,/g' \ +&& rgrep -I 'TSRMLS_DC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_DC)/)/g' \ +&& rgrep -I 'TSRMLS_DC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_DC,/,/g' \ +&& ./configure --enable-redis \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ + \ + && docker-php-ext-enable redis \ + && (rm -rf /usr/local/lib/php/test/redis || true) \ + && (rm -rf /usr/local/lib/php/doc/redis || true) \ + \ # ---- Installing PHP Extension: shmop ---- && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ && (rm -rf /usr/local/lib/php/test/shmop || true) \ @@ -422,6 +470,10 @@ RUN set -x \ && php-fpm -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^memcached$' \ && php-fpm -m | grep -oiE '^memcached$' \ + && php -m | grep -oiE '^mongodb$' \ + && php-fpm -m | grep -oiE '^mongodb$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ && php -m | grep -oiE '^mysqlnd$' \ && php-fpm -m | grep -oiE '^mysqlnd$' \ && php -m | grep -oiE '^oci8$' \ @@ -459,6 +511,8 @@ RUN set -x \ && php -m | grep -oiE '^readline$' \ && php -m | grep -oiE '^recode$' \ && php-fpm -m | grep -oiE '^recode$' \ + && php -m | grep -oiE '^redis$' \ + && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^reflection$' \ && php-fpm -m | grep -oiE '^reflection$' \ && php -m | grep -oiE '^session$' \ diff --git a/README.md b/README.md index b4c1ef1d..8af36e4a 100644 --- a/README.md +++ b/README.md @@ -648,7 +648,7 @@ Check out this table to see which Docker image provides what PHP modules.