Closed vndroid closed 11 months ago
https://hub.docker.com/_/php#:~:text=How%20to%20install%20more%20PHP%20extensions
How to install more PHP extensions
Many extensions are already compiled into the image, so it's worth checking the output of
php -m
orphp -i
before going through the effort of compiling more.We provide the helper scripts
docker-php-ext-configure
,docker-php-ext-install
, anddocker-php-ext-enable
to more easily install PHP extensions.In order to keep the images smaller, PHP's source is kept in a compressed tar file. To facilitate linking of PHP's source with any extension, we also provide the helper script
docker-php-source
to easily extract the tar or delete the extracted source. Note: if you do usedocker-php-source
to extract the source, be sure to delete it in the same layer of the docker image.FROM php:8.2-cli RUN docker-php-source extract \ # do important things \ && docker-php-source delete
PHP Core Extensions
For example, if you want to have a PHP-FPM image with the
gd
extension, you can inherit the base image that you like, and write your ownDockerfile
like this:FROM php:8.2-fpm RUN apt-get update && apt-get install -y \ libfreetype-dev \ libjpeg62-turbo-dev \ libpng-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) gd
Remember, you must install dependencies for your extensions manually. If an extension needs custom
configure
arguments, you can use thedocker-php-ext-configure
script like this example. There is no need to rundocker-php-source
manually in this case, since that is handled by theconfigure
andinstall
scripts.If you are having difficulty figuring out which Debian or Alpine packages need to be installed before
docker-php-ext-install
, then have a look at theinstall-php-extensions
project. This script builds upon thedocker-php-ext-*
scripts and simplifies the installation of PHP extensions by automatically adding and removing Debian (apt) and Alpine (apk) packages. For example, to install the GD extension you simply have to runinstall-php-extensions gd
. This tool is contributed by community members and is not included in the images, please refer to their Git repository for installation, usage, and issues.See also "Dockerizing Compiled Software" for a description of the technique Tianon uses for determining the necessary build-time dependencies for any bit of software (which applies directly to compiling PHP extensions).
Default extensions
Some extensions are compiled by default. This depends on the PHP version you are using. Run
php -m
in the container to get a list for your specific version.
The docker image
php:8.2.8-fpm-alpine3.18
already has the curl extension, but some feature is disabled.If I want to enable the
CharConv
andhttp3
,I try the command:
but they are both unrecognized. what should I do it?