Apache, PHP and MariaDB, with Adminer, in one container. Start it with one docker run, with no compose file needed.
This is a development image. It is the successor to tomsik68/xampp. Coming from there? Read the migration guide.
docker run -d --name lamp \
-p 80:80 -p 3306:3306 \
-v "$PWD":/var/www/html \
-v lamp-db:/var/lib/mysql \
tomsik68/lamp- Your site: http://localhost/
- Adminer: http://localhost/adminer/ (user
root, passwordroot) - MariaDB:
localhost:3306from the host, orlocalhostfrom PHP inside the container.
Warning
The default MariaDB login is root / root, and root can connect from outside the container. That's convenient on your laptop, but don't publish port 3306 on a network you don't trust. To choose a different password, set -e MARIADB_ROOT_PASSWORD=… on the first start. See configuration.
- The official
php:X.Y-apacheimage on Debian trixie, withmod_rewriteandAllowOverride All. - MariaDB 11.8 from Debian, and Adminer at
/adminer(/phpmyadminredirects there). - PHP extensions: mysqli, pdo_mysql, gd, intl, zip, bcmath, exif, opcache, imagick, soap, redis, memcached, plus xdebug (installed but off by default).
composer.- No SSH. Use
docker exec -it lamp bashanddocker cp.
| Tag | PHP | Status |
|---|---|---|
8.5, 8, latest, 8.5-trixie, 8.5.X |
8.5 | supported |
8.4, 8.4-trixie, 8.4.X |
8.4 | supported |
- Only PHP branches that upstream still supports are built. When a branch reaches end of life, its tags stay on Docker Hub, frozen. They are marked unsupported here and never rebuilt.
- Images are rebuilt automatically when the base image or a Debian package gets an update, so pulling
8.4again picks up security fixes. - Images are published for
linux/amd64andlinux/arm64, and are mirrored atghcr.io/tomsik68/lamp.
- Configuration: environment variables and config drop-ins.
- Extending the image: extra PHP extensions, Valkey and memcached servers.
- Migrating from tomsik68/xampp
MIT