Sign inSign up

tackleza/php-apache-ext

By tackleza

Updated 6 days ago

PHP + Apache2 with common extensions pre-installed.

Image
Web servers
0

6.5K

tackleza/php-apache-ext repository overview

php-apache-ext

A production-ready PHP + Apache image with a curated set of common PHP extensions pre-installed.

Available Tags

TagPHP VersionStatus
8.1PHP 8.1⚠️ End-of-Life — security fixes only
8.2PHP 8.2✅ Supported
8.3PHP 8.3✅ Supported
8.4PHP 8.4✅ Supported
8.5PHP 8.5✅ Supported
latestPHP 8.5✅ Latest

PHP 8.6 / 9.0 are not yet available.

Installed Extensions

ExtensionDescription
bcmathArbitrary precision mathematics
bz2Bzip2 compressed file support
calendarCalendar conversion
exifEXIF metadata in images
gdImage creation and manipulation
gettextNative language support (GNU gettext)
gmpGNU Multiple Precision arithmetic
imagickImageMagick integration
imapIMAP email protocol support
intlInternationalization (ICU)
mongodMongoDB driver
mysqliMySQL Improved extension
opcachePHP bytecode cache
pcntlProcess control
pdo_mysqlPDO MySQL driver
shmopShared memory operations
soapSOAP protocol support
socketsLow-level socket interface
sysvmsgSystem V message queues
sysvsemSystem V semaphores
sysvshmSystem V shared memory
tidyHTML/XML cleaner and repairer
xslXSLT transformations
zipZIP archive support

Installed System Tools

  • Composer — PHP dependency manager
  • curl, git, nano, ping — common CLI utilities

Usage

Basic usage
docker run -d \
  --name my-site \
  -p 8080:80 \
  -v $(pwd)/websites:/var/www \
  tackleza/php-apache-ext:8.3
With custom PHP settings and Apache config
docker run -d \
  --name my-site \
  -p 8080:80 \
  -v $(pwd)/apache.conf:/etc/apache2/sites-available/000-default.conf \
  -v $(pwd)/custom-php.ini:/usr/local/etc/php/conf.d/custom-php.ini \
  -v $(pwd)/websites:/var/www \
  tackleza/php-apache-ext:8.3
Debug with container logs
docker logs my-site

Apache VirtualHost Example

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example.com

    <Directory /var/www/example.com>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/apache2/example.com/error.log
    CustomLog /var/log/apache2/example.com/access.log combined
</VirtualHost>

Custom PHP Configuration

Mount your own php.ini or additional .ini files:

-v $(pwd)/custom-php.ini:/usr/local/etc/php/conf.d/custom-php.ini

Example custom-php.ini:

memory_limit = 512M
upload_max_filesize = 512M
post_max_size = 512M
extension=gmp

File Permissions

The container automatically remaps www-data to match the UID/GID of whoever owns the mounted /var/www directory. No manual chown needed — PHP can write files and the host user retains full access for git pull, deploy scripts, and live code editing.

ScenarioBehavior
Mount from /home/user_a (uid=1000)www-data remapped to uid=1000
Mount from /home/user_b (uid=1001)www-data remapped to uid=1001
Mount from /root (uid=0)No remapping (root owns everything)

To override the detected UID/GID explicitly:

docker run -e APACHE_UID=$(id -u) -e APACHE_GID=$(id -g) \
  -v $(pwd)/websites:/var/www \
  tackleza/php-apache-ext:8.3

PHP Version Lifecycle

VersionStatusEOL Date
PHP 8.1⚠️ EOLNov 2025
PHP 8.2✅ ActiveDec 2026
PHP 8.3✅ ActiveDec 2027
PHP 8.4✅ ActiveDec 2028
PHP 8.5✅ ActiveDec 2029

Tag summary

Content type

Image

Digest

sha256:a70360fec

Size

268.2 MB

Last updated

6 days ago

docker pull tackleza/php-apache-ext