Este repositório contém um script que pode ser usado para instalar facilmente uma extensão PHP dentro das imagens oficiais do PHP Docker.
O script instalará todos os pacotes APT/APK necessários; No final da execução do script, os pacotes não necessários serão removidos para que a imagem seja muito menor.
As imagens do Docker suportadas são:
Veja também as notas na seção de requisitos especiais.
Você tem muitas maneiras de usar esse script em seus Dockerfile
s.
Aqui está uma lista de amostras de Dockerfile
s que instalam as extensões GD e XDEBUG PHP:
ADD
FROM php:7.2-cli
ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN install-php-extensions gd xdebug
curl
FROM php:7.2-cli
RUN curl -sSLf
-o /usr/local/bin/install-php-extensions
https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions &&
chmod +x /usr/local/bin/install-php-extensions &&
install-php-extensions gd xdebug
curl
FROM php:8.2-cli
RUN ( curl -sSLf https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - || echo 'return 1' ) | sh -s
gd xdebug
FROM php:7.2-cli
COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/
RUN install-php-extensions gd xdebug
AVISO : Ao usar este método, você pode usar uma versão desatualizada da imagem mlocati/php-extension-installer
. Você pode executar docker pull mlocati/php-extension-installer
para usar uma versão atualizada.
RUN --mount=type=bind,from=mlocati/php-extension-installer:latest,source=/usr/bin/install-php-extensions,target=/usr/local/bin/install-php-extensions
install-php-extensions gd xdebug
AVISO : Ao usar este método, você pode usar uma versão desatualizada da imagem mlocati/php-extension-installer
. Você pode executar docker pull mlocati/php-extension-installer
para usar uma versão atualizada.
Simplesmente anexar -<version>
ao nome do módulo. Por exemplo:
install-php-extensions xdebug-2.9.7
O script também suporta a resolução de versões compatíveis , prefixando a versão com um caret ( ^
). Por exemplo:
# Install the most recent xdebug 2.x version (for example 2.9.8)
install-php-extensions xdebug-^2
# Install the most recent xdebug 2.8.x version (for example 2.8.1)
install-php-extensions xdebug-^2.8
Por favor, observe que, com a sintaxe acima, você obterá a versão compatível mais recente, que pode ser instável. Para instalar a versão estável mais recente, você pode anexar @stable
:
# Install the most recent STABLE xdebug 3.x version (for example 3.2.2)
install-php-extensions xdebug-^3@stable
(Os sufixos válidos são: @snapshot
, @devel
, @alpha
, @beta
e @stable
)
Extensões de versões de pré-lançamento disponíveis no PECL
podem ser configuradas sufixando o nome da extensão com seu estado, ou seja, alpha
, beta
, rc
, preview
, devel
ou snapshot
. Por exemplo:
install-php-extensions xdebug-beta
Dica: quando a versão mais recente disponível no PECL
não estiver estável e você deseja manter a última versão estável, force -a sufixando o nome da extensão com o estado stable
. Por exemplo:
install-php-extensions mongodb-stable
Você também pode instalar extensões PHP a partir do código -fonte (desde que ele vem com um arquivo package.xml
ou package2.xml
).
Os formatos aceitos são:
# Install from a specific commit (full commit SHA-1)
install-php-extensions php-memcached-dev/php-memcached@8f106564e6bb005ca6100b12ccc89000daafa9d8
# Install from a specific commit (short commit SHA-1)
install-php-extensions php-memcached-dev/php-memcached@8f106564e6bb
# Install from tag v3.2.0RC2
install-php-extensions php-memcached-dev/[email protected]
install-php-extensions php-memcached-dev/php-memcached@refs/tags/v3.2.0RC2
# Install from branch master
install-php-extensions php-memcached-dev/php-memcached@master
install-php-extensions php-memcached-dev/php-memcached@refs/heads/master
# tgz archive for commit 8f106564e6bb005ca6100b12ccc89000daafa9d8
install-php-extensions https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/8f106564e6bb005ca6100b12ccc89000daafa9d8
# tgz archive for tag v3.1.5
install-php-extensions https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/refs/tags/v3.1.5
# tgz archive for branch master
install-php-extensions https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/refs/heads/master
# Download the source code
curl -o /tmp/source.tgz https://codeload.github.com/php-memcached-dev/php-memcached/tar.gz/refs/tags/v3.1.5
tar xzf /tmp/source.tgz -C /tmp
install-php-extensions /tmp/php-memcached-3.1.5
Você também pode instalar o Composer e também pode especificar uma versão principal ou uma versão completa.
Exemplos:
# Install the latest version
install-php-extensions @composer
# Install the latest 1.x version
install-php-extensions @composer-1
# Install a specific version
install-php-extensions @composer-2.0.2
O certificado raiz da CA de Let's Encrypt muda (mais detalhes aqui).
Isso quebra as distribuições antigas do Linux, a saber:
Este script pode corrigir este problema: basta passar @fix_letsencrypt
como um argumento:
install-php-extensions @fix_letsencrypt
Extensão | Php 8.4 | Php 8.3 | Php 8.2 | Php 8.1 | PHP 8.0 | Php 7.4 | Php 7.3 | Php 7.2 | Php 7.1 | Php 7.0 | Php 5.6 | Php 5.5 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
AMQP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
apcu | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
apcu_bc | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
ast | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
bcmath | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Bitset | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Blackfire | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Brotli | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
BZ2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
calendário | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Cassandra* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
CMARK | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
CSV | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
DBA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ddtrace* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
decimal | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ds | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ecma_intl* | ✓ | ✓ | ||||||||||
encantar | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Ev | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
evento | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Excimer | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
exif | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
FFI | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
ftp | ✓ | ✓ | ✓ | |||||||||
GD | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Gearman | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Geoip | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
geos* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
geoespacial | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
getText | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
gmagick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
GMP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
gnupg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
GRPC | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
http | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Igbinário | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
imagick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
IMAP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
inotificar | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
interbase | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
Intl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
íon | ✓ | ✓ | ✓ | ✓ | ||||||||
ioncube_loader | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
jsmin | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
json_post | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
jsonpath | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
LDAP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
LuasandBox | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Lz4* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
lzf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Mailparse | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
maxminddb | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
McRypt | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
memcache | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Memcached | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
memprof* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Mongo | ✓ | ✓ | ||||||||||
MongoDB | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
mosquitto | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
msgpack | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
mssql | ✓ | ✓ | ||||||||||
mysql | ✓ | ✓ | ||||||||||
mysqli | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Newrelic | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Oauth | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
OCI8 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ODBC | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
opcache | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
OpenCensus | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
OpenSwoole | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
Opentelemetria | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
paralelo* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
parle* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
pcntl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
pcov | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
pdo_dblib | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
pdo_firebird | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PDO_MYSQL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
pdo_oci | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
pdo_odbc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PDO_PGSQL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PDO_SQLSRV | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
PGSQL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Phalcon | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
php_trie | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
phpy* | ✓ | ✓ | ✓ | ✓ | ||||||||
PKCS11 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
pq | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Propro | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
Protobuf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PSPELL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
psr | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
pthreads* | ✓ | ✓ | ✓ | |||||||||
RAPHF | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
rdkafka | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Recode | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
Redis | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
revezamento | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
saxão* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
mar Seas | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Seaslog | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
shmop | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Simdjson* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
SMBCLIENT | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Snappy | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
SNMP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Snuffleupagus | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
sabão | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
soquetes | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sódio* | ✓ | ✓ | ✓ | |||||||||
Solr | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Sourceguardian | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
spx | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sqlsrv* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
SSH2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Stomp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Swoole | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
sybase_ct | ✓ | ✓ | ||||||||||
sincronização | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sysvmsg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Sysvsem | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sysvshm | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
tensor | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
Tideways | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
limpo | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Time ZonedB | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
uopz | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
uploadProgress | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
uuid | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
UV | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
VIPS* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
VLD | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
wddx | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
Wikidiff2* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
xdebug | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
xdiff | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
xhprof | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
xlswriter | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
xmldiff | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
xmlrpc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
xpass* | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
xsl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Yac | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Yaml | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
yar | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
zephir_parser | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Zip | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
zmq | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Zookeeper | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
zstd | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Número de extensões suportadas: 151
PS: As extensões de PHP pré-instaladas são excluídas desta lista. Você pode listá-los com o seguinte comando (altere php:7.2-cli
para refletir a versão PHP em que você está interessado):
$ docker run --rm php:7.2-cli php -m
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib
[Zend Modules]
Você pode configurar o comportamento do script, além de ajustar algumas extensões para atender às suas necessidades, usando variáveis de ambiente.
Aqui está um exemplo:
IPE_LZF_BETTERCOMPRESSION=1 install-php-extensions lzf
Aqui está a lista de todas as variáveis de ambiente suportadas:
Extensão | Variável de ambiente | Descrição |
---|---|---|
IPE_DEBUG=1 | Ao definir essa variável de ambiente, o script imprimirá todos os comandos executados (será muito detalhado, útil apenas para fins de depuração) | |
IPE_PROCESSOR_COUNT | Por padrão, todos os processadores disponíveis. Defina esta variável de ambiente para substituir o número de processadores detectados pelo script (usado para compilação paralela) | |
IPE_DONT_ENABLE=1 | Por padrão, o script instalará e ativará as extensões. Se você deseja instalá -los apenas (sem habilitá -los), poderá definir essa variável de ambiente. Para ativar as extensões posteriormente, você pode executar o comando docker-php-ext-enable-<extension> (por exemplo: docker-php-ext-enable-xdebug ).Cuidado : a instalação de algumas extensões de PHP exige que outras extensões de PHP já estejam ativadas; portanto, use esse recurso com sabedoria. | |
IPE_SKIP_CHECK=1 | Por padrão, o script verificará se as extensões podem ser ativadas: se você deseja pular essa verificação, poderá usar esse sinalizador. Cuidado : as extensões podem ser ativadas mesmo se elas quebrarem o PHP: use esta função com sabedoria. | |
IPE_KEEP_SYSPKG_CACHE=1 | Por padrão, o script limpará o cache apt/apk/pêra para salvar o espaço do disco. Você pode desativá -lo definindo esta variável de ambiente | |
lzf | IPE_LZF_BETTERCOMPRESSION=1 | Por padrão, install-php-extensions compila a extensão lzf para preferir a velocidade do tamanho; Você pode usar esta variável de ambiente para compilá -la preferindo o tamanho da velocidade |
evento | IPE_EVENT_NAMESPACE= ... | Por padrão, as classes event são definidas no espaço de nome da raiz. Você pode usar esta variável de ambiente para especificar um espaço de nome personalizado |
GD | IPE_GD_WITHOUTAVIF=1 | Desde o PHP 8.1, a GD suporta o formato AVIF. Habilitando-se requer compilar o Libaom/libdav1d/lybyuv/libavif no Debian até 11 e alpino até 3,14, o que consome tempo. Você pode desativar o suporte AVIF definindo essa variável de ambiente nessas versões do sistema operacional |
OCI8 & PDO_OCI | IPE_INSTANTCLIENT_BASIC=1 | As extensões OCI8 e PDO_OCI PHP requerem o Oracle Instant Client. Para salvar o espaço em disco, instalamos a versão Basic Lite: se você deseja instalar a versão Basic (não-Lite), basta definir essa variável de ambiente |
HTTP, INTL, MONGODB | IPE_ICU_EN_ONLY=1 | Algumas extensões requerem a biblioteca da UTI, use esta bandeira para instalar uma biblioteca menor, mas apenas em inglês, na UTI no Alpine 3.16 e posteriormente |
PSPELL | IPE_ASPELL_LANGUAGES='...' | Configure os idiomas a serem disponibilizados (por exemplo: IPE_ASPELL_LANGUAGES='en fr' ). Se omitido, assumiremos en |
IPE_DEB_ARCHIVE & IPE_DEB_ARCHIVE_SECURITY | Os pacotes adequados de versões muito antigas do Debian (por exemplo, Jessie) podem ter sido arquivadas: você pode usar essas variáveis de ambiente para especificar URLs personalizados desses arquivos APT | |
Newrelic | IPE_NEWRELIC_DAEMON=1 | Instale o daemon newrelic |
Newrelic | IPE_NEWRELIC_KEEPLOG=1 | Mantenha os arquivos de log da configuração newrelic ( /tmp/nrinstall-….tar ) |
Newrelic | NR_INSTALL_KEY | Sua nova chave de licença de relíquia |
Algumas extensões têm requisitos especiais:
Extensão | Requisitos |
---|---|
Cassandra | • Não disponível em imagens de jessie Docker• Não disponível em imagens stretch do Docker• Não disponível em imagens buster Docker• Não disponível em imagens bullseye docker• Não disponível nas imagens do bookworm |
DDTRACE | Não disponível em imagens de jessie Docker |
ecma_intl | • Não disponível em imagens buster Docker• Não disponível em imagens bullseye docker |
Geos | • Não disponível no alpine3.9 Docker Images• Não disponível em alpine3.10 Docker Images |
LZ4 | Não disponível em imagens de jessie Docker |
MEMPROF | • Não disponível no alpine3.9 Docker Images• Não disponível em alpine3.10 Docker Images• Não disponível no alpine3.11 Docker Images• Não disponível no alpine3.12 Docker Images• Não disponível em alpine3.13 Docker Images• Não disponível em imagens alpine3.14 docker• Não disponível no alpine3.15 Docker Images |
paralelo | Requer imagens com PHP compilado com a segurança do threads ativada ( zts ) |
parle | Não disponível em imagens de jessie Docker |
phpy | Não disponível em imagens buster Docker |
pthreads | Requer imagens com PHP compilado com a segurança do threads ativada ( zts ) |
saxão | Não disponível em imagens alpine do Docker |
Simdjson | • Não disponível em imagens de jessie Docker• Não disponível em imagens stretch do Docker |
sódio | Não disponível em imagens de jessie Docker |
SQLSRV | • Não disponível em imagens 7.1-alpine3.9 Docker• Não disponível em 7.1-alpine3.10 imagens do docker |
VIPs | • Não disponível no alpine3.9 Docker Images• Não disponível em imagens de jessie Docker |
Wikidiff2 | • Não disponível em imagens de jessie Docker• Não disponível em imagens stretch do Docker |
xpass | Não disponível em imagens buster Docker |
Você pode executar este comando:
cat /etc/os-release
Por exemplo:
PRETTY_NAME= " Debian GNU/Linux 11 (bullseye) "
PRETTY_NAME= " Alpine Linux v3.14 "
Ao enviar uma solicitação de tração, uma ação do GitHub é executada para verificar se as extensões de PHP afetadas realmente funcionam (veja abaixo).
Além disso, também verificamos se novas versões de extensões no repositório PECL ainda funcionarão. Isso é feito de forma programada com outra ação do GitHub.
Em caso de falha, uma mensagem é enviada para um canal de telegrama.
Sinta -se à vontade para assiná -lo para receber notificações de falha.
Antes de enviar qualquer solicitação de tração, você deve executar o script lint
no diretório scripts
(ou lint.bat
no Windows).
Se você não fizer isso, e se houver um erro de estilo de codificação, verá que o Check shell coding style
e/ou as ações do Github Check PHP coding style
falharão.
O erro será algo assim:
--- filename.orig
+++ filename
@@ -line number,7 +line number,7 @@
good line of code #1
good line of code #2
good line of code #3
- the original line with a wrong coding style
+ the line wrong coding style that has been corrected
good line of code #4
good line of code #5
good line of code #6
Então, você deve corrigir a linha destacada (a (s) no line number
) substituindo o que você vê depois do -
com o que você vê depois do +
install-php-extensions
data/supported-extensions
, adicionando uma nova linha com o identificador da extensão e a lista de versões PHP suportadasdata/special-requirements
, com a alça de extensão seguida por um espaço e zts
Veja esta solicitação de tração para um exemplo.
install-php-extensions
data/supported-extensions
, adicionando a nova versão PHP à linha existente correspondente à extensão atualizadaVeja esta solicitação de tração para um exemplo.
Se você alterar algum código que afete uma ou mais extensões, adicione uma linha com Test: extension1, extension2
à mensagem de uma das solicitações de tração. Dessa forma, os trabalhos de teste verificarão a extensão, mesmo que você não toque no arquivo de data/supported-extensions
.
Aqui está um exemplo de uma mensagem de confirmação:
Improve the GD and ZIP extensions
Test: gd, zip
Os testes verificam apenas a instalação de uma única extensão de PHP por vez. Se você deseja testar a instalação de mais extensões de PHP ao mesmo tempo, use uma mensagem de confirmação como esta:
Improve the GD and ZIP extensions
Test: gd+zip
Se a sua solicitação de tração contiver vários compromissos, verificaremos a mensagem "Teste:" de cada confirmação. Se você quiser parar de analisar as próximas compromissos, adicione -STOP-
na linha "Teste:", por exemplo:
Improve the GD and ZIP extensions
Test: gd, zip, -STOP-
Veja esta solicitação de tração para um exemplo.
As extensões PHP publicadas no arquivo PECL contêm um arquivo package.xml
(ou package2.xml
) que descreve as versões PHP suportadas e as opções que podem ser usadas para compilá -lo. Quando adicionamos suporte para uma nova extensão PHP e, quando uma nova versão de uma extensão PHP é lançada, precisamos verificar essas restrições.
É uma tarefa bastante tediosa, então desenvolvi um projeto que permite verificar facilmente essas restrições: você pode encontrá-lo em https://mlocati.github.io/pecl-info (aqui você pode encontrar seu código-fonte).
Consulte o arquivo MAINTAINERS.md
.
Você pode me oferecer um café mensal ou um café único