Repositori ini berisi skrip yang dapat digunakan untuk dengan mudah menginstal ekstensi PHP di dalam gambar Docker PHP resmi.
Skrip akan menginstal semua paket APT/APK yang diperlukan; Di akhir eksekusi skrip, paket yang tidak lebih dibutuhkan akan dihapus sehingga gambar akan jauh lebih kecil.
Gambar Docker yang didukung adalah:
Lihat juga catatan di bagian Persyaratan Khusus.
Anda memiliki banyak cara untuk menggunakan skrip ini di dalam Dockerfile
Anda.
Berikut daftar sampel Dockerfile
S yang menginstal ekstensi GD dan 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
PERINGATAN : Dengan menggunakan metode ini, Anda dapat menggunakan versi yang sudah ketinggalan zaman dari gambar mlocati/php-extension-installer
. Anda mungkin ingin menjalankan docker pull mlocati/php-extension-installer
untuk menggunakan versi terkini.
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
PERINGATAN : Dengan menggunakan metode ini, Anda dapat menggunakan versi yang sudah ketinggalan zaman dari gambar mlocati/php-extension-installer
. Anda mungkin ingin menjalankan docker pull mlocati/php-extension-installer
untuk menggunakan versi terkini.
Cukup tambahkan -<version>
ke nama modul. Misalnya:
install-php-extensions xdebug-2.9.7
Script juga mendukung penyelesaian versi yang kompatibel dengan mengawali versi dengan caret ( ^
). Misalnya:
# 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
Harap berkomentar bahwa dengan sintaks di atas Anda akan mendapatkan versi terbaru yang kompatibel, yang mungkin tidak stabil. Untuk menginstal versi stabil terbaru, Anda dapat menambahkan @stable
:
# Install the most recent STABLE xdebug 3.x version (for example 3.2.2)
install-php-extensions xdebug-^3@stable
(Sufiks yang valid adalah: @snapshot
, @devel
, @alpha
, @beta
, dan @stable
)
Ekstensi versi pra-rilis yang tersedia di PECL
dapat diatur dengan mencurahkan nama ekstensi dengan statonya yaitu alpha
, beta
, rc
, preview
, devel
atau snapshot
. Misalnya:
install-php-extensions xdebug-beta
Kiat: Ketika versi terbaru yang tersedia di PECL
tidak stabil, dan Anda ingin menjaga versi stabil terakhir, paksakannya dengan mencurahkan nama ekstensi dengan keadaan stable
. Misalnya:
install-php-extensions mongodb-stable
Anda juga dapat menginstal ekstensi PHP dari kode sumber (asalkan dilengkapi dengan package.xml
atau file package2.xml
).
Format yang diterima adalah:
# 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
Anda juga dapat menginstal komposer, dan Anda juga dapat menentukan versi utama, atau versi lengkap.
Contoh:
# 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
Sertifikat CA root dari Let's Encrypt Changes (detail lebih lanjut di sini).
Yang merusak distribusi Linux lama, yaitu:
Skrip ini dapat memperbaiki masalah ini: Cukup lulus @fix_letsencrypt
sebagai argumen:
install-php-extensions @fix_letsencrypt
Perpanjangan | 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 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Cassandra* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
cmark | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
CSV | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
DBA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ddtrace* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
desimal | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ds | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ecma_intl* | ✓ | ✓ | ||||||||||
mempesona | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
EV | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
peristiwa | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
excimer | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
exif | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ffi | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
ftp | ✓ | ✓ | ✓ | |||||||||
gd | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Gearman | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Geoip | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
Geos* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Geospasial | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
gettext | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Gmagick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
GMP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Gnupg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
grpc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
http | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
igbinary | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Imagick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
IMAP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
inotify | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
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 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
OpenSwoole | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
OpenTelemetry | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
paralel* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
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 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
rekode | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
Redis | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
menyampaikan | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
Saxon* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Klick Seas | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Secuslog | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
shmop | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
simdjson* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
SMBClient | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
tajam | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
snmp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
snuffleupagus | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
sabun | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
soket | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sodium* | ✓ | ✓ | ✓ | |||||||||
solr | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
SourceGuardian | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
spx | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sqlsrv* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
SSH2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
menginjak | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
swoole | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
sybase_ct | ✓ | ✓ | ||||||||||
sinkronisasi | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sysvmsg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Sysvsem | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sysvshm | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Tensor | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
Tideways | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
rapi | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
timezonedb | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Uopz | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
UploadProgress | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
UUID | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
UV | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
VIPS* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
vld | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
wddx | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
wikidiff2* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
xdebug | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
xdiff | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
xhprof | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
xlswriter | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
xmldiff | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
xmlrpc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
xpass* | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
xsl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
yac | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
yaml | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
yar | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
zephir_parser | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
ritsleting | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
zmq | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Zookeeper | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
zstd | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Jumlah ekstensi yang didukung: 151
PS: Ekstensi PHP yang telah dipasang sebelumnya dikecualikan dari daftar ini. Anda dapat mencantumkannya dengan perintah berikut (ubah php:7.2-cli
untuk mencerminkan versi PHP yang Anda minati):
$ 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]
Anda dapat mengonfigurasi perilaku skrip, serta menyempurnakan beberapa ekstensi agar sesuai dengan kebutuhan Anda, dengan menggunakan variabel lingkungan.
Inilah contohnya:
IPE_LZF_BETTERCOMPRESSION=1 install-php-extensions lzf
Inilah daftar semua variabel lingkungan yang didukung:
Perpanjangan | Variabel Lingkungan | Keterangan |
---|---|---|
IPE_DEBUG=1 | Dengan mengatur variabel lingkungan ini, skrip akan mencetak semua perintah yang dijalankannya (akan sangat bertele -tele, hanya berguna untuk tujuan debug) | |
IPE_PROCESSOR_COUNT | Secara default semua prosesor yang tersedia. Atur variabel lingkungan ini untuk mengganti jumlah prosesor yang terdeteksi oleh skrip (digunakan untuk kompilasi paralel) | |
IPE_DONT_ENABLE=1 | Secara default skrip akan menginstal dan mengaktifkan ekstensi. Jika Anda hanya ingin menginstalnya (tanpa mengaktifkannya), Anda dapat mengatur variabel lingkungan ini. Untuk mengaktifkan ekstensi di lain waktu Anda dapat menjalankan perintah docker-php-ext-enable-<extension> (misalnya: docker-php-ext-enable-xdebug ).Waspadalah : Menginstal beberapa ekstensi PHP mensyaratkan bahwa ekstensi PHP lainnya sudah diaktifkan, jadi gunakan fitur ini dengan bijak. | |
IPE_SKIP_CHECK=1 | Secara default skrip akan memeriksa apakah ekstensi dapat diaktifkan: Jika Anda ingin melewatkan cek ini, Anda dapat menggunakan bendera ini. Waspadalah : Ekstensi dapat diaktifkan bahkan jika mereka merusak PHP: Gunakan fungsi ini dengan bijak. | |
IPE_KEEP_SYSPKG_CACHE=1 | Secara default skrip akan menghapus cache APT/APK/PEAR untuk menyimpan ruang disk. Anda dapat menonaktifkannya dengan mengatur variabel lingkungan ini | |
LZF | IPE_LZF_BETTERCOMPRESSION=1 | Secara default install-php-extensions mengkompilasi ekstensi lzf untuk lebih memilih kecepatan daripada ukuran; Anda dapat menggunakan variabel lingkungan ini untuk mengkompilasinya lebih memilih ukuran daripada kecepatan |
peristiwa | IPE_EVENT_NAMESPACE= ... | Secara default, kelas event didefinisikan dalam root namespace. Anda dapat menggunakan variabel lingkungan ini untuk menentukan namespace khusus |
gd | IPE_GD_WITHOUTAVIF=1 | Sejak PHP 8.1, GD mendukung format AVIF. Mengaktifkannya membutuhkan kompilasi Libaom/libdav1d/libyuv/libavif pada Debian hingga 11 dan Alpine hingga 3,14, yang memakan waktu. Anda dapat menonaktifkan dukungan AVIF dengan mengatur variabel lingkungan ini pada versi sistem operasi tersebut |
OCI8 & PDO_OCI | IPE_INSTANTCLIENT_BASIC=1 | Ekstensi PHP OCI8 dan PDO_OCI memerlukan Oracle Instant Client. Untuk menyimpan ruang disk, kami menginstal versi Lite dasar: Jika Anda ingin menginstal versi dasar (non-lite) cukup mengatur variabel lingkungan ini |
http, intl, mongodb | IPE_ICU_EN_ONLY=1 | Beberapa ekstensi memerlukan perpustakaan ICU, menggunakan bendera ini untuk menginstal perpustakaan ICU yang lebih kecil, tetapi hanya bahasa Inggris di Alpine 3.16 dan lebih baru |
pspell | IPE_ASPELL_LANGUAGES='...' | Konfigurasikan bahasa yang akan tersedia (misalnya: IPE_ASPELL_LANGUAGES='en fr' ). Jika dihilangkan, kami akan menganggap en |
IPE_DEB_ARCHIVE & IPE_DEB_ARCHIVE_SECURITY | Paket -paket yang tepat dari versi Debian yang sangat lama (misalnya Jessie) mungkin telah diarsipkan: Anda dapat menggunakan variabel lingkungan ini untuk menentukan URL khusus dari arsip yang tepat ini | |
newrelic | IPE_NEWRELIC_DAEMON=1 | Instal Newrelic Daemon |
newrelic | IPE_NEWRELIC_KEEPLOG=1 | Simpan file log dari pengaturan newrelic ( /tmp/nrinstall-….tar ) |
newrelic | NR_INSTALL_KEY | Kunci Lisensi Relik Baru Anda |
Beberapa ekstensi memiliki persyaratan khusus:
Perpanjangan | Persyaratan |
---|---|
Cassandra | • Tidak tersedia dalam gambar jessie Docker• Tidak tersedia dalam gambar stretch Docker• Tidak tersedia dalam gambar buster Docker• Tidak tersedia dalam gambar Docker bullseye • Tidak tersedia dalam gambar bookworm Docker |
ddtrace | Tidak tersedia dalam gambar jessie Docker |
ecma_intl | • Tidak tersedia dalam gambar buster Docker• Tidak tersedia dalam gambar Docker bullseye |
Geos | • Tidak tersedia di alpine3.9 gambar Docker• Tidak tersedia di alpine3.10 gambar Docker |
lz4 | Tidak tersedia dalam gambar jessie Docker |
MEMPROF | • Tidak tersedia di alpine3.9 gambar Docker• Tidak tersedia di alpine3.10 gambar Docker• Tidak tersedia di alpine3.11 Docker Images• Tidak tersedia di alpine3.12 gambar Docker• Tidak tersedia dalam gambar Docker alpine3.13 • Tidak tersedia dalam gambar Docker alpine3.14 • Tidak tersedia dalam gambar Docker alpine3.15 |
paralel | Membutuhkan gambar dengan PHP yang dikompilasi dengan Thread-Safety diaktifkan ( zts ) |
Parle | Tidak tersedia dalam gambar jessie Docker |
phpy | Tidak tersedia dalam gambar buster Docker |
pthreads | Membutuhkan gambar dengan PHP yang dikompilasi dengan Thread-Safety diaktifkan ( zts ) |
Saxon | Tidak tersedia dalam gambar alpine docker |
simdjson | • Tidak tersedia dalam gambar jessie Docker• Tidak tersedia dalam gambar stretch Docker |
sodium | Tidak tersedia dalam gambar jessie Docker |
sqlsrv | • Tidak tersedia dalam 7.1-alpine3.9 gambar Docker• Tidak tersedia dalam 7.1-alpine3.10 gambar Docker |
VIP | • Tidak tersedia di alpine3.9 gambar Docker• Tidak tersedia dalam gambar jessie Docker |
wikidiff2 | • Tidak tersedia dalam gambar jessie Docker• Tidak tersedia dalam gambar stretch Docker |
xpass | Tidak tersedia dalam gambar buster Docker |
Anda dapat menjalankan perintah ini:
cat /etc/os-release
Misalnya:
PRETTY_NAME= " Debian GNU/Linux 11 (bullseye) "
PRETTY_NAME= " Alpine Linux v3.14 "
Saat mengirimkan permintaan tarik, tindakan GitHub dieksekusi untuk memeriksa apakah ekstensi PHP yang terpengaruh benar -benar berfungsi (lihat di bawah).
Selain itu, kami juga memeriksa bahwa versi ekstensi baru di repositori PECL masih akan berfungsi. Ini dilakukan secara terjadwal dengan tindakan GitHub lainnya.
Dalam hal kegagalan, pesan dikirim ke saluran telegram.
Jangan ragu untuk berlangganan untuk menerima pemberitahuan kegagalan.
Sebelum mengirimkan permintaan tarik apa pun, Anda harus menjalankan skrip lint
di direktori scripts
(atau lint.bat
di windows).
Jika Anda tidak melakukan itu, dan jika ada kesalahan gaya pengkodean, Anda akan melihat bahwa Check shell coding style
dan/atau Check PHP coding style
tindakan github akan gagal.
Kesalahan akan menjadi sesuatu seperti ini:
--- 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
Jadi, Anda harus memperbaiki baris yang disorot (satu di line number
) dengan mengganti apa yang Anda lihat setelah -
dengan apa yang Anda lihat setelah +
install-php-extensions
data/supported-extensions
, menambahkan baris baru dengan pegangan ekstensi dan daftar versi PHP yang didukungdata/special-requirements
, dengan pegangan ekstensi diikuti oleh ruang dan zts
Lihat permintaan tarik ini untuk sebuah contoh.
install-php-extensions
data/supported-extensions
, menambahkan versi PHP baru ke baris yang ada sesuai dengan ekstensi yang diperbaruiLihat permintaan tarik ini untuk sebuah contoh.
Jika Anda mengubah beberapa kode yang mempengaruhi satu atau lebih ekstensi, silakan tambahkan baris dengan Test: extension1, extension2
ke pesan dari salah satu permintaan tarik yang dilakukan. Dengan begitu, pekerjaan pengujian akan memeriksa ekstensi bahkan jika Anda tidak menyentuh file data/supported-extensions
.
Berikut adalah contoh pesan komit:
Improve the GD and ZIP extensions
Test: gd, zip
Tes hanya memeriksa pemasangan ekstensi PHP tunggal sekaligus. Jika Anda ingin menguji pemasangan lebih banyak ekstensi PHP secara bersamaan, gunakan pesan komit seperti ini:
Improve the GD and ZIP extensions
Test: gd+zip
Jika permintaan tarikan Anda berisi beberapa komit, kami akan memeriksa pesan "tes:" dari setiap komit. Jika Anda ingin berhenti mem -parsing komit berikutnya, tambahkan -STOP-
di baris "tes:", misalnya:
Improve the GD and ZIP extensions
Test: gd, zip, -STOP-
Lihat permintaan tarik ini untuk sebuah contoh.
Ekstensi PHP yang diterbitkan pada arsip PECL berisi file package.xml
(atau package2.xml
) yang menggambarkan versi PHP yang didukung dan opsi yang dapat digunakan untuk mengkompilasinya. Ketika kami menambahkan dukungan untuk ekstensi PHP baru, dan ketika versi baru dari ekstensi PHP dirilis, kami harus memeriksa kendala tersebut.
Ini adalah tugas yang agak membosankan, jadi saya mengembangkan proyek yang memungkinkan Anda dengan mudah memeriksa kendala tersebut: Anda dapat menemukannya di https://mlocati.github.io/pecl-info (di sini Anda dapat menemukan kode sumbernya).
Lihat file MAINTAINERS.md
.
Anda dapat menawarkan saya kopi bulanan atau kopi satu kali