PHP 扩展列表
March 12, 2022 · View on GitHub
更多扩展请通过
$ php -m查看
如果你需要增加其他扩展,请到这里 issues 反馈。
pecl 扩展
核心扩展
- mysql 7.0 移除
- mcrypt 7.2 移除
- interbase 7.4 移除
- wddx 7.4 移除
- recode 7.4 移除
- xmlrpc 8.0 移除
自行增加扩展
以下两种方式任选一种,然后按照 自定义 替换为自己的镜像,具体实例可以 参考这里:
1. 基于 khs1994/php:X.Y.Z-TYPE-alpine 重新构建镜像
ARG PHP_VERSION=7.3.17
ARG USERNAME=khs1994
FROM ${USERNAME}/php:${PHP_VERSION}-fpm-alpine
# 扩展源码在 PHP 源码
ENV PHP_CORE_EXT \
xsl
# pecl 扩展
# 如果 PHP 版本已经 EOL,建议加上版本号,因为新的扩展可能不再兼容旧的 PHP 版本
ENV PHP_PECL_EXT \
xxx \
xxx2-beta \
xxx3-x.y.z
ENV EXT_BUILD_DEP \
xxx-dev
ENV EXT_RUN_DEP \
xxx
ARG ALPINE_URL=dl-cdn.alpinelinux.org
RUN set -x \
&& sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_URL}/g" /etc/apk/repositories \
# 安装构建依赖,构建之后可以删除
&& apk add --no-cache --virtual .pecl_build_deps $EXT_BUILD_DEP $PHPIZE_DEPS \
# 安装运行依赖,不可以删除
&& apk add --no-cache $EXT_RUN_DEP \
# !请自行编辑以下内容
# 解压 PHP 源码,仅当扩展源码在 PHP 源码中时需要
# && docker-php-source extract \
#
# 5.6 | 7.0
#
# && docker-php-ext-configure XXX --XXX \
&& docker-php-ext-install $PHP_CORE_EXT \
&& docker-php-ext-enable $PHP_CORE_EXT \
&& for extension in ${PHP_PECL_EXT};do \
ext_real_name=$(echo ${extension} | cut -d '-' -f 1) \
&& pecl install $extension \
&& docker-php-ext-enable $ext_real_name || echo "pecl ${extension} install error" \
&& rm -rf /usr/local/lib/php/doc/$ext_real_name \
&& rm -rf /usr/local/lib/php/test/$ext_real_name \
&& rm -rf /usr/local/include/php/ext/$ext_real_name \
&& strip --strip-all $(php-config --extension-dir)/$ext_real_name.so ; \
done \
#
# 7.1 + 可以使用 pickle 安装 PHP 扩展
#
# && echo "--xxx" > /tmp/EXT_NAME.configure.options \
&& pickle install $PHP_CORE_EXT $PHP_PECL_EXT -n --defaults --strip --cleanup \
# !请自行编辑以上内容
# 清理
&& docker-php-source delete \
&& apk del --no-network .pecl_build_deps \
&& rm -rf /tmp/* \
&& rm -rf /usr/local/lib/php/.registry/.channel.pecl.php.net/* \
# 验证
&& php -m \
&& ls -la $(php-config --extension-dir)
# !请自行编辑以下内容
# 默认不启用的扩展可以将配置文件改为不以 .ini 结尾的文件名
# && mv /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
# /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini.default
2. 使用 Dockerfile 重头构建
# 这里只列出基本参数,其他参数按需自行添加
$ docker buildx build \
--build-arg PHP_EXTENSION_EXTRA="xsl" \
--build-arg PECL_EXTENSION_EXTRA="imagick msgpack" \
--build-arg APK_EXTRA="libxslt imagemagick-libs musl" \
--build-arg APK_DEV_EXTRA="libxslt-dev imagemagick imagemagick-dev" \
--build-arg PHP_VERSION="X.Y.Z" \
--build-arg USERNAME=${USERNAME:?USERNAME must set} \
--build-arg ALPINE_URL=${ALPINE_URL:-dl-cdn.alpinelinux.org} \
--push \
-t USERNAME/php:X.Y.Z-TYPE-alpine FOLDER
官方扩展列表
$ 进入 PHP 源码目录 ext 目录
$ docker run -it -d khs1994/php-fpm:7.2.4-alpine3.7
# 记住 container id ,并替换下边命令的 CONTAINER_ID
$ for ext in `ls`; do echo '*' $( docker exec -it CONTAINER_ID php -r "if(extension_loaded('$ext')){echo '[x] $ext';}else{echo '[ ] $ext';}" ); done
$ docker rm -f CONTAINER_ID
- bcmath
- bz2
- calendar
- com_dotnet
- ctype
- curl
- date
- dba
- dom
- enchant
- exif
- ext_skel.php
- ffi
- fileinfo
- filter
- ftp
- gd
- gettext
- gmp
- hash
- iconv
- imap
- intl
- json
- ldap
- libxml
- mbstring
- mysqli
- mysqlnd
- oci8
- odbc
- opcache
- openssl
- pcntl
- pcre
- pdo
- pdo_dblib
- pdo_firebird
- pdo_mysql
- pdo_oci
- pdo_odbc
- pdo_pgsql
- pdo_sqlite
- pgsql
- phar
- posix
- pspell
- readline
- reflection
- session
- shmop
- simplexml
- skeleton
- snmp
- soap
- sockets
- sodium
- spl
- sqlite3
- standard
- sysvmsg
- sysvsem
- sysvshm
- tidy
- tokenizer
- xml
- xmlreader
- xmlrpc
- xmlwriter
- xsl
- zend_test
- zip
- zlib
Session Redis 驱动
session.save_handler = redis
session.save_path ="tcp://redis:6379?auth=redis密码"