DEV Community

Xun Zhou
Xun Zhou

Posted on • Updated on

My checklist of PHP extensions used in Alpine docker image

I use a base-alpine-php image to build micro-service. For most of my use cases, I am going to install the following packages, if I really need them:

optional, only if I need to read/parse XML documents

  • php8-xml
  • php8-xmlwriter
  • php8-simplexml

optional, only if I need serve the application via FastCGI

  • php8-fpm
  • php8-session

optional, only if I need the communication with my favorite PostgreSQL

  • php8-pdo
  • php8-pdo_pgsql
  • php8-pgsql

optional, only if I need debug the complex PHP project

  • php8-xdebug

optional, only if I need compress the documents.

  • php8-zlib
  • php8-phar
Package Description significance
git git is required to install certain packages from source code ✅ must
make make is required to build certain packages from source code ✅ must
nano nano alternative lightweight editor in CLI optional
htop a handy command-line tool that displays running processes on a Linux system in real-time optional
curl curl is required to download certain packages ✅ must
openRC OpenRC is the init system used in alpine. The init system manages the services, startup and shutdown of the system. ✅ must
nginx Nginx (engine x) is an HTTP and reverse proxy server optional
php8 PHP engine version 8 ✅ must
php8-apcu APCu is an in-memory key-value store for PHP. APC provides both opcode caching (opcache) and object caching. ✅ must
php8-ctype this extension checks whether a character or string falls into a certain character class according to the current locale ✅ must
php8-curl this extension supports PHP to download data using curl. ✅ must
php8-posix This module contains an interface to those functions defined in the IEEE 1003.1 (POSIX.1) standards document which are not accessible through other means. ✅ must
php8-tokenizer The tokenizer functions provide an interface to the PHP tokenizer embedded in the Zend Engine. ✅ must
php8-iconv iconv converts a string from one character encoding to another ✅ must
php8-intl It enables PHP programmers to perform UCA-conformant collation and date/time/number/currency formatting in their scripts. ✅ must
php8-json PHP has these built-in functions to encode and decode JSON data ✅ must
php8-mbstring Mbstring is an extension of php used to manage non-ASCII strings. It is non-default and need to be enabled manually. ✅ must
php8-opcache Enables the opcode cache for the CLI version of PHP ✅ must
php8-openssl This extension binds functions of OpenSSL library for symmetric and asymmetric encryption and decryption. ✅ must
php8-pcntl Process Control support in PHP implements the Unix style of process creation, program execution, signal handling and process termination. ✅ must
php8-dom The built-in DOM parser makes it possible to process XML documents in PHP. optional
php8-xml XML parser for PHP optional
php8-xmlwriter XML writer for PHP optional
php8-fileinfo FileInfo functions module can guess a content type and encoding of a file optional
php8-fpm FastCGI Process Manager is a primary PHP FastCGI implementation containing some features (mostly) useful for heavy-loaded sites. optional
php8-pdo PHP PDO is a database access layer that provides a uniform interface for working with multiple databases optional
php8-phar phar  is a very simple program for creating phar files with CLI optional
php8-pdo_pgsql PDO_PGSQL is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to PostgreSQL databases. optional
php8-pgsql a PostgreSQL module for PHP engine optional
php8-xdebug Xdebug module for PHP optional
php8-zlib This module enables you to transparently read and write gzip (.gz) compressed files optional
php8-session The session-support in PHP consists of a way to preserve certain data across subsequent accesses. optional
php8-simplexml a very robust SimpleXML parser optional
php8-soap The SOAP extension can be used to write SOAP Servers and Clients. It supports subsets of » SOAP 1.1, » SOAP 1.2 and » WSDL 1.1 specifications optional

Top comments (6)

Collapse
 
icolomina profile image
Nacho Colomina Torregrosa

Hey! Great list, thanks!!
As an addition, php8-soap if you need to connect to soap services

Collapse
 
vikbert profile image
Xun Zhou

thx, add php8-soap to the list.

Collapse
 
denniskahlerlon profile image
DennisKahlerlon

Thanks for the list, I use github.com/mlocati/docker-php-exte... for extensions

Collapse
 
vikbert profile image
Xun Zhou

Nice project. I starred it. Thx for sharing. The purpose to create this check list for myself, is to remind me, start always with the minimal php image and install only the extension which is necessary for current product.

I am a minimalist :)

Collapse
 
chauhan__vinod profile image
Vinod Chauhan

Hi Dennis, Can share how to use this lib. I'm using it in my dockerfile but it giving me error docker-php-ext-install: not found

This occurs in when I inherit FROM alpine:3.11

Thanks

Collapse
 
bestwebdevelopment profile image
ReactJS Development Company

Thanks for sharing these PHP extensions, very nice. These are very useful in PHP development projects.