Этот репозиторий содержит сценарий, который можно использовать для легкости установки расширения PHP в официальных изображениях PHP Docker.
Сценарий установит все необходимые пакеты APT/APK; В конце выполнения скрипта необходимые пакеты не будут удалены, чтобы изображение было намного меньше.
Поддерживаемые изображения Docker:
См. Также примечания в разделе «Специальные требования».
У вас есть много способов использовать этот сценарий в вашем Dockerfile
S.
Вот список образцов Dockerfile
S, которые устанавливают расширения GD и 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
Предупреждение : используя этот метод, вы можете использовать устаревшую версию изображения mlocati/php-extension-installer
. Вы можете запустить 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
. Вы можете запустить 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
могут быть настроены путем суффикса имени расширения с его состоянием, то есть 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
Корневой сертификат CA о Let's Encrypt (более подробная информация здесь).
Это нарушает старые распределения 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_BC | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
аст | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Bcmath | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
битсет | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
черный огонь | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Бротли | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
BZ2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
календарь | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Кассандра* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
Cmark | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
CSV | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
дольдомер | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ddtrace* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Десятичный | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
дюймовый | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ecma_intl* | ✓ | ✓ | ||||||||||
очаровательный | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
эвихт | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
событие | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
эксимер | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
выпуск | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
FFI | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
FTP | ✓ | ✓ | ✓ | |||||||||
г.Д. | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Gearman | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
геоип | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
Геос* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
геопространство | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
getText | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Гмагик | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
GMP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Gnupg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
grpc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
http | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Igbinary | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ИМЕКИК | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
имап | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Инотифицировать | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
межбаза | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
Intl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ион | ✓ | ✓ | ✓ | ✓ | ||||||||
IonCube_Loader | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
JSmin | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
json_post | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
jsonpath | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
LDAP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Luasandbox | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
LZ4* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
LZF | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
MailParse | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
maxminddb | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
Макрипт | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Memcache | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Мемкахед | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Мемфор* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
монго | ✓ | ✓ | ||||||||||
Mongodb | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
комар | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
MSGPACK | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
MSSQL | ✓ | ✓ | ||||||||||
mysql | ✓ | ✓ | ||||||||||
mysqli | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Новорель | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Оаут | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
OCI8 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ODBC | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Opcache | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
OpenCensus | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
OpenSwoole | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
Opentelemetry | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
параллельно* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Парле* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
pcntl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PCOV | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
PDO_DBLIB | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
pdo_firebird | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PDO_MYSQL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PDO_OCI | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
PDO_ODBC | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PDO_PGSQL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PDO_SQLSRV | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
PGSQL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Фалкон | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
php_trie | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
phpy* | ✓ | ✓ | ✓ | ✓ | ||||||||
PKCS11 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
пк | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
прок | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
Протобуф | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Pspell | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
пса | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Pthreads* | ✓ | ✓ | ✓ | |||||||||
рафф | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
rdkafka | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
рекодировать | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
Редис | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
реле | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
саксон* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Seasclick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Морской | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Шмоп | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Симджсон* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
SMBClient | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
заново | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
SNMP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Snuffleupagus | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
мыло | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
гнезда | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
натрия* | ✓ | ✓ | ✓ | |||||||||
соль | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
SourceGuardian | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
spx | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
SQLSRV* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
SSH2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
топ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Стул | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
sybase_ct | ✓ | ✓ | ||||||||||
синхронизированный | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sysvmsg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
SysvSem | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Sysvshm | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
тензор | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
Приливы | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
аккуратный | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Timezonedb | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Uopz | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
uploadprogress | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
uuid | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
укр | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
VIP* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
vld | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
WDDX | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
wikidiff2* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
xdebug | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
xdiff | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
xhprof | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
XLSWRITER | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Xmldiff | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
XMLRPC | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
xpass* | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
XSL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
як | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Ямл | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
яр | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
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, чтобы сохранить дисковое пространство. Вы можете отключить его, установив переменную этой среды | |
LZF | IPE_LZF_BETTERCOMPRESSION=1 | По умолчанию install-php-extensions компилирует расширение lzf , предпочитая скорость по размеру; Вы можете использовать эту переменную среды для составления ее предпочтительного размера по скорости |
событие | IPE_EVENT_NAMESPACE= ... | По умолчанию классы event определены в пространстве имен корней. Вы можете использовать эту переменную среды, чтобы указать пользовательское пространство имен |
г.Д. | IPE_GD_WITHOUTAVIF=1 | С момента PHP 8.1 GD поддерживает формат AVIF. Для этого требуется составление Libaom/libdav1d/libyuv/libavif на Debian до 11 и альпийских до 3,14, что требует много времени. Вы можете отключить поддержку AVIF, установив переменную этой среды на этих версиях операционной системы |
OCI8 & PDO_OCI | IPE_INSTANTCLIENT_BASIC=1 | Расширения PHP OCI8 и PDO_OCI требуют Oracle Instant Client. Чтобы сохранить дисковое пространство, мы устанавливаем версию Basic Lite: если вы хотите установить основную (не-лейкологическую) версию, просто установите эту переменную среды |
http, intl, mongodb | IPE_ICU_EN_ONLY=1 | Некоторые расширения требуют библиотеки ICU, используйте этот флаг, чтобы установить меньшую, но только английский библиотека ICU на Alpine 3.16 и позже |
Pspell | IPE_ASPELL_LANGUAGES='...' | Настройте доступные языки (например: IPE_ASPELL_LANGUAGES='en fr' ). Если опущены, мы предполагаем en |
IPE_DEB_ARCHIVE & IPE_DEB_ARCHIVE_SECURITY | Подключенные пакеты очень старых версий Debian (например, Джесси), возможно, были заархивированы: вы можете использовать эти переменные среды для указания пользовательских URL -адресов этих Apt Archives | |
Новорель | IPE_NEWRELIC_DAEMON=1 | Установите новичный демон |
Новорель | IPE_NEWRELIC_KEEPLOG=1 | Сохранить файлы журнала Newrelic Setup ( /tmp/nrinstall-….tar ) |
Новорель | NR_INSTALL_KEY | Ваш новый лицензионный ключ реликвии |
Некоторые расширения имеют особые требования:
Расширение | Требования |
---|---|
Кассандра | • Недоступно на изображениях jessie Докер• Недоступно в изображениях stretch Docker• Недоступно в buster Docker Images• Недоступно в изображениях bullseye Docker• Недоступно в изображениях bookworm Docker |
Ddtrace | Недоступно на изображениях jessie Докер |
ecma_intl | • Недоступно в buster Docker Images• Недоступно в изображениях bullseye Docker |
Геос | • Недоступно в изображениях alpine3.9 Docker• Недоступно в alpine3.10 Docker Images |
LZ4 | Недоступно на изображениях jessie Докер |
мемпро | • Недоступно в изображениях alpine3.9 Docker• Недоступно в alpine3.10 Docker Images• Недоступно в alpine3.11 Docker Images• Недоступно в alpine3.12 Docker Images• Недоступно в alpine3.13 Docker Images• Недоступно в alpine3.14 Docker Images• Недоступно в alpine3.15 Docker Images |
параллель | Требуются изображения с PHP, скомпилированным с включенной безопасностью потока ( zts ) |
Парле | Недоступно на изображениях jessie Докер |
PHPY | Недоступно в buster Docker Images |
Pthreads | Требуются изображения с PHP, скомпилированным с включенной безопасностью потока ( zts ) |
саксонский | Недоступно на изображениях alpine докеров |
Симджсон | • Недоступно на изображениях jessie Докер• Недоступно в изображениях stretch Docker |
натрия | Недоступно на изображениях jessie Докер |
SQLSRV | • Недоступно в изображениях Docker 7.1-alpine3.9 • Недоступно в изображениях Docker 7.1-alpine3.10 |
виппис | • Недоступно в изображениях alpine3.9 Docker• Недоступно на изображениях jessie Докер |
Викидифф2 | • Недоступно на изображениях jessie Докер• Недоступно в изображениях stretch Docker |
xpass | Недоступно в buster Docker Images |
Вы можете запустить эту команду:
cat /etc/os-release
Например:
PRETTY_NAME= " Debian GNU/Linux 11 (bullseye) "
PRETTY_NAME= " Alpine Linux v3.14 "
При отправке запроса на вытяжение выполняется действие GitHub, чтобы проверить, действительно ли затронутые расширения PHP действительно работают (см. Ниже).
Кроме того, мы также проверяем, что новые версии расширений в репозитории PECL все еще будут работать. Это делается на запланированной основе с другим действием GitHub.
В случае сбоя сообщение отправляется на канал телеграммы.
Не стесняйтесь подписаться на него, чтобы получить уведомления о неудаче.
Перед отправкой какого -либо запроса на привлечение вы должны выполнить сценарий lint
в каталоге scripts
(или lint.bat
в Windows).
Если вы этого не сделаете, и если есть ошибка в стиле кодирования, вы увидите, что Check shell coding style
и/или действий Check PHP coding style
Github 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
), заменив то, что вы видите после -
с тем, что вы видите после +
install-php-extensions
data/supported-extensions
, добавив новую линию с помощью руководителя расширения и списка поддерживаемых версий PHPdata/special-requirements
, с дескриптором расширения с последующим пространством и zts
Смотрите этот запрос на пример для примера.
install-php-extensions
data/supported-extensions
, добавив новую версию PHP в существующую строку, соответствующую обновленному расширениюСмотрите этот запрос на пример для примера.
Если вы измените какой -то код, который влияет на одно или несколько расширений, добавьте строку с Test: extension1, extension2
в сообщение одного из Commits. Таким образом, задания тестирования будут проверять расширение, даже если вы не касаетесь файла 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-
Смотрите этот запрос на пример для примера.
Расширения PHP, опубликованные в архиве PECL, содержат файл package.xml
(или package2.xml
), описывающий поддерживаемые версии PHP, и параметры, которые можно использовать для его компиляции. Когда мы добавляем поддержку для нового расширения PHP, и когда выпускается новая версия расширения PHP, мы должны проверить эти ограничения.
Это довольно утомительная задача, поэтому я разработал проект, который позволяет легко проверять эти ограничения: вы можете найти его по адресу https://mlocati.github.io/pecl-info (здесь вы можете найти его исходный код).
Смотрите файл MAINTAINERS.md
.
Вы можете предложить мне ежемесячный кофе или одноразовый кофе