Dieses Repository enthält ein Skript, mit dem eine PHP -Erweiterung in den offiziellen PHP -Docker -Bildern einfach installiert werden kann.
Das Skript installiert alle erforderlichen APT/APK -Pakete. Am Ende der Skriptausführung werden die erforderlichen No-More-Pakete so entfernt, dass das Bild viel kleiner ist.
Unterstützte Docker -Bilder sind:
Siehe auch die Notizen im Abschnitt Special Anforderungen.
Sie haben viele Möglichkeiten, dieses Skript in Ihrer Dockerfile
zu verwenden.
Hier finden Sie eine Liste von Beispiele Dockerfile
S, die die GD- und Xdebug -PHP -Erweiterungen installieren:
ADD
herunterladen 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
WARNUNG : Durch die Verwendung dieser Methode können Sie eine veraltete Version des mlocati/php-extension-installer
Bilds verwenden. Möglicherweise möchten Sie docker pull mlocati/php-extension-installer
ausführen, um eine aktuelle Version zu verwenden.
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
WARNUNG : Durch die Verwendung dieser Methode können Sie eine veraltete Version des mlocati/php-extension-installer
Bilds verwenden. Möglicherweise möchten Sie docker pull mlocati/php-extension-installer
ausführen, um eine aktuelle Version zu verwenden.
Einfach anhängen -<version>
am Modulnamen. Zum Beispiel:
install-php-extensions xdebug-2.9.7
Das Skript unterstützt auch die Auflösung kompatibler Versionen, indem die Version mit einer Pflege ( ^
) vorangestellt wird. Zum Beispiel:
# 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
Bitte bemerken Sie, dass Sie mit der obigen Syntax die variierte neueste kompatible Version erhalten, die möglicherweise instabil ist. Um die neueste stabile Version zu installieren, können Sie @stable
anhängen:
# Install the most recent STABLE xdebug 3.x version (for example 3.2.2)
install-php-extensions xdebug-^3@stable
(Gültige Suffixe sind: @snapshot
, @devel
, @alpha
, @beta
und @stable
)
Vorabversionversionen Erweiterungen, die auf PECL
verfügbar sind, können eingerichtet werden, indem der Name der Erweiterung mit seinem Zustand IE alpha
, beta
, rc
, preview
, devel
oder snapshot
suffixiert wird. Zum Beispiel:
install-php-extensions xdebug-beta
Tipp: Wenn die neueste Version auf PECL
nicht stabil ist und Sie die stable
stabile Version beibehalten möchten, erzwingen Zum Beispiel:
install-php-extensions mongodb-stable
Sie können auch PHP -Erweiterungen aus dem Quellcode installieren (vorausgesetzt, er verfügt über ein package.xml
oder eine package2.xml
-Datei).
Akzeptierte Formate sind:
# 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
Sie können auch Komponisten installieren und auch eine Hauptversion oder eine Vollversion angeben.
Beispiele:
# 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
Das Root CA -Zertifikat von Let's Encrypt Änderungen (weitere Details hier).
Das bricht alte Linux -Verteilungen, nämlich:
Dieses Skript kann dieses Problem beheben: Übergeben Sie einfach @fix_letsencrypt
als Argument:
install-php-extensions @fix_letsencrypt
Verlängerung | 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 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Kalender | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Kassandra* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
cmark | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
CSV | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
DBA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ddtrace* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
dezimal | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ds | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ecma_intl* | ✓ | ✓ | ||||||||||
verzaubern | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ev | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Ereignis | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Excimer | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
exif | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ffi | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
ftp | ✓ | ✓ | ✓ | |||||||||
gd | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Gearmter | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Geoip | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
Geos* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Geospatial | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
GetText | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
gmagick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
GMP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
gnupg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
GRPC | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
http | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Igbinary | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Imagick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
IMAP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
inotifizieren | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Interbase | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
intl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Ion | ✓ | ✓ | ✓ | ✓ | ||||||||
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 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
öffnet sich | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
Opentelemetrie | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
parallel* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
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 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
phreads* | ✓ | ✓ | ✓ | |||||||||
Raphf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
rdkafka | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Recode | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
Redis | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Relais | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
saxon* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Seasclick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Seaslog | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Shmop | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Simdjson* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
smbclient | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
bissig | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
SNMP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
snufltupagus | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Seife | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Steckdosen | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Natrium* | ✓ | ✓ | ✓ | |||||||||
Solr | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
SourceGuardian | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
SPX | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
SQLSRV* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
SSH2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Stomp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Swoole | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
sybase_ct | ✓ | ✓ | ||||||||||
Synchronisation | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sysvmsg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sysvsem | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sysvshm | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Tensor | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
Tideways | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ordentlich | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Zeitzonedb | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
UOPZ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
UploadProgress | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Uuid | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
UV | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
VIPs* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
vld | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
WDDX | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
Wikidiff2* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
xdebug | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
XDIFF | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
XHPROF | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
xlswriter | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Xmldiff | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
xmlrpc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
xpass* | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
XSL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
yac | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Yaml | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Yar | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
zephir_parser | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Reißverschluss | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Zmq | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Zookeeper | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ZSTD | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Anzahl der unterstützten Erweiterungen: 151
PS: Die vorinstallierten PHP-Erweiterungen sind von dieser Liste ausgeschlossen. Sie können sie mit dem folgenden Befehl auflisten ( php:7.2-cli
ändern, um die PHP-Version widerzuspiegeln, an der Sie interessiert sind):
$ 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]
Sie können das Verhalten des Skripts konfigurieren und einige Erweiterungen fein stimmen, um Ihre Anforderungen zu entsprechen, indem Sie Umgebungsvariablen verwenden.
Hier ist ein Beispiel:
IPE_LZF_BETTERCOMPRESSION=1 install-php-extensions lzf
Hier ist die Liste aller unterstützten Umgebungsvariablen:
Verlängerung | Umgebungsvariable | Beschreibung |
---|---|---|
IPE_DEBUG=1 | Durch das Festlegen dieser Umgebungsvariablen wird das Skript alle ausführenden Befehle ausdrucken (es ist sehr ausführlich, nur für Debug -Zwecke nützlich). | |
IPE_PROCESSOR_COUNT | Standardmäßig alle verfügbaren Prozessoren. Legen Sie diese Umgebungsvariable fest, um die Anzahl der vom Skript erkannten Prozessoren zu überschreiben (für die parallele Zusammenstellung verwendet). | |
IPE_DONT_ENABLE=1 | Standardmäßig wird das Skript die Erweiterungen installiert und aktiviert. Wenn Sie sie nur installieren möchten (ohne sie zu aktivieren), können Sie diese Umgebungsvariable festlegen. Um die Erweiterungen zu einem späteren Zeitpunkt zu aktivieren, können Sie den Befehl Docker docker-php-ext-enable-xdebug docker-php-ext-enable-<extension> ausführen (z.Vorsicht : Die Installation einiger PHP -Erweiterungen erfordert, dass andere PHP -Erweiterungen bereits aktiviert sind. Verwenden Sie diese Funktion daher mit Bedacht. | |
IPE_SKIP_CHECK=1 | Standardmäßig prüft das Skript, ob die Erweiterungen aktiviert werden können: Wenn Sie diese Prüfung überspringen möchten, können Sie dieses Flag verwenden. Achten Sie auf : Erweiterungen können aktiviert werden, selbst wenn sie Php brechen: Verwenden Sie diese Funktion mit Bedacht. | |
IPE_KEEP_SYSPKG_CACHE=1 | Standardmäßig löscht das Skript den APT/APK/PEAR -Cache, um den Speicherplatz zu speichern. Sie können es deaktivieren, indem Sie diese Umgebungsvariable festlegen | |
LZF | IPE_LZF_BETTERCOMPRESSION=1 | Standardmäßig erstellen Sie die lzf install-php-extensions die die Geschwindigkeit gegenüber der Größe bevorzugen, die LZF-Erweiterung. Sie können diese Umgebungsvariable verwenden, um sie zu kompilieren, um die Größe gegenüber der Geschwindigkeit zu bevorzugen |
Ereignis | IPE_EVENT_NAMESPACE= ... | Standardmäßig sind die event im Stammnamenspace definiert. Sie können diese Umgebungsvariable verwenden, um einen benutzerdefinierten Namespace anzugeben |
gd | IPE_GD_WITHOUTAVIF=1 | Seit PHP 8.1 unterstützt GD das AVIF -Format. Für die Erstellung von Libaom/libdav1d/libyuv/libavif über Debian bis zu 11 und Alpine bis zu 3,14 muss er zeitaufwändig erfasst werden. Sie können AVIF -Support deaktivieren, indem Sie diese Umgebungsvariable auf diesen Betriebssystemversionen festlegen |
oci8 & pdo_oci | IPE_INSTANTCLIENT_BASIC=1 | Die PHP -Erweiterungen von OCI8 und PDO_OCI erfordern Oracle Instant Client. Um den Speicherplatz zu speichern, installieren wir die grundlegende Lite-Version: Wenn Sie die grundlegende (nicht-lite) Version installieren möchten, legen Sie diese Umgebungsvariable einfach fest |
HTTP, INTL, MongoDB | IPE_ICU_EN_ONLY=1 | Einige Erweiterungen erfordern die Intensivbibliothek. Verwenden Sie dieses Flag, um eine kleinere, aber nur englische Bibliothek in der Intensivstation auf Alpine 3.16 und später zu installieren |
PSPELL | IPE_ASPELL_LANGUAGES='...' | Konfigurieren Sie die zu verfügbaren Sprachen (z. B. IPE_ASPELL_LANGUAGES='en fr' ). Wenn wir weggelassen werden, nehmen wir en an |
IPE_DEB_ARCHIVE & IPE_DEB_ARCHIVE_SECURITY | Die passenden Pakete sehr alter Debian -Versionen (z. B. Jessie) wurden möglicherweise archiviert: Sie können diese Umgebungsvariablen verwenden, um benutzerdefinierte URLs dieser APT -Archive anzugeben | |
Newrelic | IPE_NEWRELIC_DAEMON=1 | Installieren Sie den Newrelic Dämon |
Newrelic | IPE_NEWRELIC_KEEPLOG=1 | Behalten Sie die Protokolldateien von Newrelic Setup ( /tmp/nrinstall-….tar ) auf |
Newrelic | NR_INSTALL_KEY | Ihr neuer Reliktlizenzschlüssel |
Einige Erweiterungen haben besondere Anforderungen:
Verlängerung | Anforderungen |
---|---|
Kassandra | • In jessie Docker Images nicht verfügbar• Nicht in stretch Docker -Bildern verfügbar• Nicht in buster Docker -Bildern verfügbar• Nicht in bullseye Docker -Bildern verfügbar• Nicht in bookworm -Docker -Bildern verfügbar |
ddtrace | Nicht in jessie Docker Images verfügbar |
ecma_intl | • Nicht in buster Docker -Bildern verfügbar• Nicht in bullseye Docker -Bildern verfügbar |
Geos | • Nicht in alpine3.9 Docker -Bildern verfügbar• Nicht in alpine3.10 Docker -Bildern verfügbar |
LZ4 | Nicht in jessie Docker Images verfügbar |
Memprof | • Nicht in alpine3.9 Docker -Bildern verfügbar• Nicht in alpine3.10 Docker -Bildern verfügbar• Nicht in alpine3.11 Docker -Bildern verfügbar• Nicht in alpine3.12 Docker -Bildern verfügbar• In alpine3.13 Docker -Bildern nicht verfügbar• Nicht in alpine3.14 Docker -Bildern verfügbar• Nicht in alpine3.15 Docker -Bildern verfügbar |
parallel | Benötigt Bilder mit PHP, die mit aktivierter Gewinde (ZTS) kompiliert sind ( zts ) |
Parle | Nicht in jessie Docker Images verfügbar |
Phpy | Nicht in buster Docker -Bildern verfügbar |
phreads | Benötigt Bilder mit PHP, die mit aktivierter Gewinde (ZTS) kompiliert sind ( zts ) |
Sachsen | Nicht in alpine Docker -Bildern verfügbar |
Simdjson | • In jessie Docker Images nicht verfügbar• Nicht in stretch Docker -Bildern verfügbar |
Natrium | Nicht in jessie Docker Images verfügbar |
SQLSRV | • Nicht in 7.1-alpine3.9 Docker-Bildern verfügbar• Nicht in 7.1-alpine3.10 Docker-Bildern verfügbar |
VIPs | • Nicht in alpine3.9 Docker -Bildern verfügbar• In jessie Docker Images nicht verfügbar |
Wikidiff2 | • In jessie Docker Images nicht verfügbar• Nicht in stretch Docker -Bildern verfügbar |
XPASS | Nicht in buster Docker -Bildern verfügbar |
Sie können diesen Befehl ausführen:
cat /etc/os-release
Zum Beispiel:
PRETTY_NAME= " Debian GNU/Linux 11 (bullseye) "
PRETTY_NAME= " Alpine Linux v3.14 "
Bei der Übermittlung einer Pull -Anfrage wird eine GitHub -Aktion ausgeführt, um zu überprüfen, ob die betroffenen PHP -Erweiterungen tatsächlich funktionieren (siehe unten).
Darüber hinaus überprüfen wir auch, dass neue Versionen von Erweiterungen im PECL -Repository weiter funktionieren werden. Dies geschieht auf geplanter Basis mit einer anderen Github -Aktion.
Im Falle eines Fehlers wird eine Nachricht an einen Telegrammkanal gesendet.
Fühlen Sie sich frei, es zu abonnieren, um Fehlermeldungen zu erhalten.
Bevor Sie eine Pull -Anfrage senden, sollten Sie das lint
-Skript im scripts
(oder in lint.bat
unter Windows) ausführen.
Wenn Sie dies nicht tun und ein Codierungsstilfehler vorliegt, werden Sie feststellen, dass der Check shell coding style
und/oder die Github -Aktionen Check PHP coding style
fehlschlagen.
Der Fehler wird so etwas sein:
--- 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
Sie sollten also die hervorgehobene Linie (die eine (s) unter line number
) beheben, indem Sie das ersetzen, was Sie nach dem -
mit dem, was Sie nach dem +
sehen, sehen
install-php-extensions
data/supported-extensions
data/special-requirements
eine neue Zeile hinzu, wobei der Erweiterungsgriff gefolgt von einem Speicherplatz und zts
Eine Beispielanforderung finden Sie in dieser Pull -Anfrage.
install-php-extensions
data/supported-extensions
und fügen Sie die neue PHPEine Beispielanforderung finden Sie in dieser Pull -Anfrage.
Wenn Sie einen Code ändern, der eine oder mehrere Erweiterungen betrifft, fügen Sie bitte eine Linie mit Test: extension1, extension2
zur Nachricht einer der Pull -Anfrage -Commits hinzu. Auf diese Weise werden die Testjobs die Erweiterung überprüft, auch wenn Sie die Datei data/supported-extensions
nicht berühren.
Hier ist ein Beispiel für eine Commit -Nachricht:
Improve the GD and ZIP extensions
Test: gd, zip
Tests überprüfen jeweils nur die Installation einer einzelnen PHP -Erweiterung. Wenn Sie gleichzeitig die Installation mehr PHP -Erweiterungen testen möchten, verwenden Sie eine solche Commit -Nachricht wie folgt:
Improve the GD and ZIP extensions
Test: gd+zip
Wenn Ihre Pull -Anfrage mehrere Commits enthält, überprüfen wir die Nachricht "Test:" Meldung jedes Commits. Wenn Sie aufhören möchten, als nächstes Commit zu analysieren, fügen Sie in der "Test:" -STOP-
hinzu: Beispiel:
Improve the GD and ZIP extensions
Test: gd, zip, -STOP-
Eine Beispielanforderung finden Sie in dieser Pull -Anfrage.
Im PECL -Archiv veröffentlichte PHP -Erweiterungen enthalten eine package.xml
(oder package2.xml
) Datei, in der die unterstützten PHP -Versionen beschrieben werden, und die Optionen, mit denen sie kompiliert werden können. Wenn wir Unterstützung für eine neue PHP -Erweiterung hinzufügen und eine neue Version einer PHP -Erweiterung veröffentlicht wird, müssen wir diese Einschränkungen überprüfen.
Es ist eine ziemlich mühsame Aufgabe, daher habe ich ein Projekt entwickelt, mit dem Sie diese Einschränkungen leicht überprüfen können: Sie finden es unter https://mlocati.github.io/pecl-info (hier finden Sie den Quellcode).
Siehe die Datei MAINTAINERS.md
.
Sie können mir einen monatlichen Kaffee oder einen einmaligen Kaffee anbieten