該存儲庫包含一個腳本,該腳本可用於輕鬆在官方PHP Docker映像中安裝PHP擴展名。
該腳本將安裝所有必需的APT/APK軟件包;在腳本執行結束時,將刪除無用的軟件包,以使圖像要小得多。
支持的Docker圖像是:
另請參見“特殊要求”部分中的註釋。
您有許多方法可以在Dockerfile
s中使用此腳本。
這是安裝GD和XDEBUG PHP擴展名的樣本Dockerfile
s的列表:
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
警告:通過使用此方法,您可以使用mlocati/php-extension-installer
image的過時版本。您可能需要運行docker pull mlocati/php-extension-installer
以便使用最新版本。
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
警告:通過使用此方法,您可以使用mlocati/php-extension-installer
image的過時版本。您可能需要運行docker pull mlocati/php-extension-installer
以便使用最新版本。
只需將-<version>
附加到模塊名稱。例如:
install-php-extensions xdebug-2.9.7
該腳本還通過將版本( ^)的版本前綴( ^
)前綴來支持解決兼容版本。例如:
# 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
請注意,使用上面的語法,您將獲得變化的最新兼容版本,這可能是不穩定的。為了安裝最新穩定版本,您可以附加@stable
:
# Install the most recent STABLE xdebug 3.x version (for example 3.2.2)
install-php-extensions xdebug-^3@stable
(有效後綴為: @snapshot
, @devel
, @alpha
, @beta
和@stable
)
PECL
上可用的預訂版本擴展名可以通過使用其狀態IE alpha
, beta
, rc
, preview
, devel
或snapshot
來設置擴展名的名稱。例如:
install-php-extensions xdebug-beta
提示:當PECL
上可用的最新版本不穩定時,您想保留最後一個穩定的版本,請通過stable
狀態將擴展名稱的後綴強加。例如:
install-php-extensions mongodb-stable
您還可以從源代碼安裝PHP擴展名(前提是它帶有package.xml
或package2.xml
文件)。
公認格式是:
# 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
您也可以安裝作曲家,還可以指定其主要版本或完整版本。
示例:
# 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
Let's Encrypt更改的根CA證書(在此處進行更多詳細信息)。
破壞了舊的Linux分佈,即:
此腳本可以解決此問題:只需將@fix_letsencrypt
作為參數傳遞:
install-php-extensions @fix_letsencrypt
擴大 | 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 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
比特斯特 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
黑火 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Brotli | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
BZ2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
日曆 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
卡桑德拉* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
cmark | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
CSV | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
DBA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ddtrace* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
十進制 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
DS | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ecma_intl* | ✓ | ✓ | ||||||||||
附魔 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ev | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
事件 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
準分子 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
exif | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
FFI | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
ftp | ✓ | ✓ | ✓ | |||||||||
GD | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
齒輪 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
地理 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
Geos* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
地理空間 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
getText | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Gmagick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
GMP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
gnupg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
grpc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
http | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
igbinary | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Imagick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
IMAP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
iNotify | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
互相 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
intl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
離子 | ✓ | ✓ | ✓ | ✓ | ||||||||
ioncube_loader | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
JSmin | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
JSON_POST | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
JSONPATH | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
LDAP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Luasandbox | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
LZ4* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
lzf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
MailParse | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
MAXMINDDB | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
McRypt | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
memcache | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
備忘錄 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
memprof* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
蒙哥 | ✓ | ✓ | ||||||||||
mongodb | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
蚊子 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
msgpack | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
MSSQL | ✓ | ✓ | ||||||||||
mysql | ✓ | ✓ | ||||||||||
mysqli | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
newrelic | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Oauth | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
OCI8 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ODBC | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
opcache | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
OpenCensus | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Openswoole | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
Opentelemetry | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
平行線* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
帕爾* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
PCNTL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PCOV | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
pdo_dblib | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
pdo_firebird | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PDO_MYSQL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PDO_OCI | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
PDO_ODBC | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PDO_PGSQL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PDO_SQLSRV | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
PGSQL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PHALCON | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
php_trie | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
phpy* | ✓ | ✓ | ✓ | ✓ | ||||||||
PKCS11 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
PQ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
先知 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
Protobuf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Pspell | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PSR | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
pthreads* | ✓ | ✓ | ✓ | |||||||||
RAPHF | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
rdkafka | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
重新編碼 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
Redis | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
中繼 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
撒克遜人* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
搜尋 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
seaslog | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
shmop | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Simdjson* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
smbclient | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
活潑 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
SNMP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Snuffleupagus | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
肥皂 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
插座 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
鈉* | ✓ | ✓ | ✓ | |||||||||
索爾 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
來源guardian | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
SPX | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
SQLSRV* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
SSH2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
踩踏 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
燕子 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
sybase_ct | ✓ | ✓ | ||||||||||
同步 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sysvmsg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sysvsem | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sysvshm | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
張量 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
潮汐 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
整齊的 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
TimeZonedB | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Uopz | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
上載 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
UUID | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
紫外線 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
VIP* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
vld | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
WDDX | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
Wikidiff2* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
xdebug | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
XDIFF | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
xhprof | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
xlswriter | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
xmldiff | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
XMLRPC | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
X Pass* | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
XSL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
yac | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
yaml | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
YAR | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
zephir_parser | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
拉鍊 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ZMQ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
動物園管理員 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ZSTD | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
支持擴展的數量:151
PS:從此列表中排除了預安裝的PHP擴展名。您可以使用以下命令列出它們(更改php:7.2-cli
以反映您感興趣的PHP版本):
$ 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]
您可以使用環境變量來配置腳本的行為,並通過使用環境變量來微調一些擴展。
這是一個例子:
IPE_LZF_BETTERCOMPRESSION=1 install-php-extensions lzf
這是所有受支持的環境變量的列表:
擴大 | 環境變量 | 描述 |
---|---|---|
IPE_DEBUG=1 | 通過設置此環境變量,該腳本將打印其執行的所有命令(它將非常詳細,僅適用於調試目的) | |
IPE_PROCESSOR_COUNT | 默認情況下所有可用的處理器。設置此環境變量以覆蓋腳本檢測到的處理器數量(用於並行編譯) | |
IPE_DONT_ENABLE=1 | 默認情況下,腳本將安裝並啟用擴展名。 如果您只想安裝它們(不啟用它們),則可以設置此環境變量。 要在以後啟用擴展名,您可以執行命令 docker-php-ext-enable-<extension> (例如: docker-php-ext-enable-xdebug )。當心:安裝一些PHP擴展名要求已經啟用了其他PHP擴展,因此請明智地使用此功能。 | |
IPE_SKIP_CHECK=1 | 默認情況下,腳本將檢查是否可以啟用擴展名:如果要跳過此支票,則可以使用此標誌。 當心:即使破壞PHP:明智地使用此功能,也可以啟用擴展名。 | |
IPE_KEEP_SYSPKG_CACHE=1 | 默認情況下,腳本將清除APT/APK/PEAR CACE,以節省磁盤空間。您可以通過設置此環境變量來禁用它 | |
lzf | IPE_LZF_BETTERCOMPRESSION=1 | 默認情況下, install-php-extensions 編譯了lzf 擴展,更喜歡速度而不是尺寸。您可以使用此環境變量來編譯它更喜歡尺寸而不是速度 |
事件 | IPE_EVENT_NAMESPACE= ... | 默認情況下, event 類是在根名稱空間中定義的。您可以使用此環境變量指定自定義名稱空間 |
GD | IPE_GD_WITHOUTAVIF=1 | 自PHP 8.1以來,GD支持AVIF格式。啟用它需要在Debian上彙編Libaom/libdav1d/libyuv/libavif,最高為11,高山高達3.14,這很耗時。您可以通過在這些操作系統版本上設置此環境變量來禁用AVIF支持 |
OCI8和PDO_OCI | IPE_INSTANTCLIENT_BASIC=1 | OCI8和PDO_OCI PHP擴展需要Oracle Instant客戶端。為了節省磁盤空間,我們安裝了基本的LITE版本:如果要安裝基本(非L-LITE)版本,請簡單地設置此環境變量 |
HTTP,INTL,MongoDB | IPE_ICU_EN_ONLY=1 | 一些擴展需要ICU庫,使用此標誌安裝較小但僅英語的Alpine 3.16及以後的ICU庫 |
Pspell | IPE_ASPELL_LANGUAGES='...' | 配置要提供的語言(例如: IPE_ASPELL_LANGUAGES='en fr' )。如果省略,我們會en |
IPE_DEB_ARCHIVE & IPE_DEB_ARCHIVE_SECURITY | 非常古老的Debian版本的APT包(例如Jessie)可能已存檔:您可以使用這些環境變量來指定這些APT檔案的自定義URL | |
newrelic | IPE_NEWRELIC_DAEMON=1 | 安裝新守護程序 |
newrelic | IPE_NEWRELIC_KEEPLOG=1 | 保留NewRelic設置的日誌文件( /tmp/nrinstall-….tar ) |
newrelic | NR_INSTALL_KEY | 您的新RESIC許可證密鑰 |
一些擴展具有特殊要求:
擴大 | 要求 |
---|---|
卡桑德拉 | • jessie Docker)圖像中沒有可用•在 stretch 碼頭圖像中不可用•在 buster Docker Images中不可用• bullseye Docker圖像中沒有可用•在 bookworm 碼頭圖像中沒有可用的圖像 |
ddtrace | jessie 迪克(Jessie Docker)圖像中沒有 |
ecma_intl | •在buster Docker Images中不可用• bullseye Docker圖像中沒有可用 |
地理 | • alpine3.9 Docker Images中不可用• alpine3.10 Docker Images中不可用 |
LZ4 | jessie 迪克(Jessie Docker)圖像中沒有 |
memprof | • alpine3.9 Docker Images中不可用• alpine3.10 Docker Images中不可用• alpine3.11 Docker Images中不可用• alpine3.12 Docker Images中沒有可用• alpine3.13 Docker Images中不可用• alpine3.14 Docker Images中不可用• alpine3.15 Docker圖像中不可用 |
平行線 | 需要帶有啟用線程安全的PHP的圖像( zts ) |
帕爾 | jessie 迪克(Jessie Docker)圖像中沒有 |
phpy | buster Docker圖像中沒有可用 |
pthreads | 需要帶有啟用線程安全的PHP的圖像( zts ) |
撒克遜人 | alpine 碼頭圖像中沒有可用的圖像 |
Simdjson | • jessie Docker)圖像中沒有可用•在 stretch 碼頭圖像中不可用 |
鈉 | jessie 迪克(Jessie Docker)圖像中沒有 |
SQLSRV | •在7.1-alpine3.9 docker圖像中不可用• 7.1-alpine3.10 docker圖像中不可用 |
VIP | • alpine3.9 Docker Images中不可用• jessie Docker)圖像中沒有可用 |
Wikidiff2 | • jessie Docker)圖像中沒有可用•在 stretch 碼頭圖像中不可用 |
xpass | buster Docker圖像中沒有可用 |
您可以運行此命令:
cat /etc/os-release
例如:
PRETTY_NAME= " Debian GNU/Linux 11 (bullseye) "
PRETTY_NAME= " Alpine Linux v3.14 "
提交拉動請求時,執行了GITHUB操作,以檢查受影響的PHP擴展是否實際工作(請參見下文)。
此外,我們還檢查了PECL存儲庫中的新版本的擴展版是否仍然可以正常工作。這是按照另一項github訴訟計劃完成的。
如果失敗,則將消息發送到電報頻道。
隨時訂閱它以接收失敗通知。
在提交任何拉請請求之前,您應該在scripts
目錄(或Windows上的lint.bat
)中執行lint
腳本。
如果您不這樣做,並且如果存在編碼樣式錯誤,您會發現Check shell coding style
和/或Check PHP coding style
GitHub操作將失敗。
錯誤將是這樣的:
--- 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
因此,您應該通過替換+
之後-
的line number
來修復突出顯示的線(一(s))
install-php-extensions
腳本data/supported-extensions
文件,添加了一條新行,並使用擴展名的句柄和支持的PHP版本列表data/special-requirements
文件中添加新行,並帶有擴展名字,然後是一個空間和zts
請參閱此拉請求的示例。
install-php-extensions
腳本data/supported-extensions
文件,將新的PHP版本添加到與已更新擴展程序相對應的現有行請參閱此拉請求的示例。
如果您更改影響一個或多個擴展程序的某些代碼,請添加一個帶有Test: extension1, extension2
將“拉動請求”提交之一的消息添加。這樣,即使您不觸摸data/supported-extensions
文件,測試作業也會檢查擴展名。
這是提交消息的示例:
Improve the GD and ZIP extensions
Test: gd, zip
測試一次僅檢查一次安裝單個PHP擴展名。如果要同時測試安裝更多PHP擴展程序,請使用這樣的提交消息:
Improve the GD and ZIP extensions
Test: gd+zip
如果您的拉請請求包含多個提交,我們將檢查每個提交的“測試:”消息。如果您想停止分析下一個提交,請在“測試:”行中添加-STOP-
,例如:
Improve the GD and ZIP extensions
Test: gd, zip, -STOP-
請參閱此拉請求的示例。
PECL存檔上發布的PHP擴展名包含一個package.xml
(或package2.xml
)文件,描述了支持的PHP版本以及可用於編譯它的選項。當我們添加對新的PHP擴展名的支持,並且發布新版本的PHP擴展名時,我們必須檢查這些約束。
這是一項非常繁瑣的任務,因此我開發了一個項目,可讓您輕鬆檢查這些約束:您可以在https://mlocati.github.io/pecl-info上找到它(在這裡您可以找到其原始碼).
請參閱MAINTAINERS.md
文件。
您可以為我提供每月咖啡或一次性咖啡