{"id":19302083,"url":"https://github.com/wodby/php","last_synced_at":"2025-04-12T14:18:54.472Z","repository":{"id":39175262,"uuid":"79631345","full_name":"wodby/php","owner":"wodby","description":"Generic PHP docker container images","archived":false,"fork":false,"pushed_at":"2025-04-12T02:31:17.000Z","size":1593,"stargazers_count":160,"open_issues_count":22,"forks_count":106,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-12T14:18:48.944Z","etag":null,"topics":["alpine","docker","php"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wodby.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-01-21T07:36:08.000Z","updated_at":"2025-04-12T02:31:20.000Z","dependencies_parsed_at":"2023-02-09T09:46:09.848Z","dependency_job_id":"3f6027ef-c9cd-46ce-a5ff-2c2c805b3209","html_url":"https://github.com/wodby/php","commit_stats":null,"previous_names":[],"tags_count":302,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wodby%2Fphp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wodby%2Fphp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wodby%2Fphp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wodby%2Fphp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wodby","download_url":"https://codeload.github.com/wodby/php/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248578876,"owners_count":21127714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpine","docker","php"],"created_at":"2024-11-09T23:19:53.602Z","updated_at":"2025-04-12T14:18:54.447Z","avatar_url":"https://github.com/wodby.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PHP Docker Container Images\n\n[![Build Status](https://github.com/wodby/php/workflows/Build%20docker%20image/badge.svg)](https://github.com/wodby/php/actions)\n[![Docker Pulls](https://img.shields.io/docker/pulls/wodby/php.svg)](https://hub.docker.com/r/wodby/php)\n[![Docker Stars](https://img.shields.io/docker/stars/wodby/php.svg)](https://hub.docker.com/r/wodby/php)\n\n## Table of Contents\n\n- [Docker Images](#docker-images)\n    - [`-dev`](#-dev)\n    - [`-dev-macos`](#-dev-macos)\n    - [Supported architectures](#supported-architectures)\n- [Environment Variables](#environment-variables)\n    - [PHP and PHP-FPM configuration](#php-and-php-fpm-configuration)\n    - [Additional configuration](#additional-configuration)\n- [Build arguments](#build-arguments)\n- [PHP Extensions](#php-extensions)\n- [Tools](#tools)\n- [Xdebug](#xdebug)\n- [Changelog](#changelog)\n- [Users and permissions](#users-and-permissions)\n- [Crond](#crond)\n- [SSHD](#sshd)\n- [Adding SSH key](#adding-ssh-key)\n- [Complete PHP-based stack](#complete-php-based-stacks)\n- [Images based on `wodby/php`](#images-based-on-wodbyphp)\n- [Orchestration Actions](#orchestration-actions)\n\n## Docker Images\n\n❗For better reliability we release images with stability tags (`wodby/php:8-X.X.X`) which correspond\nto [git tags](https://github.com/wodby/php/releases). We strongly recommend using images only with stability tags.\n\nAbout images:\n\n- All images based on Alpine Linux\n- Base image: official [php](https://github.com/docker-library/php)\n- [GitHub actions builds](https://github.com/wodby/php/actions)\n- [Docker Hub](https://hub.docker.com/r/wodby/php)\n\nSupported tags and respective `Dockerfile` links:\n\n- `8.4`, `8`, `latest` [_(8/Dockerfile)_]\n- `8.3` [_(8/Dockerfile)_]\n- `8.2` [_(8/Dockerfile)_]\n- `8.1` [_(8/Dockerfile)_]\n- `8.4-dev`, `8-dev`, `dev` [_(8/Dockerfile)_]\n- `8.3-dev` [_(8/Dockerfile)_]\n- `8.2-dev` [_(8/Dockerfile)_]\n- `8.1-dev` [_(8/Dockerfile)_]\n- `8.4-dev-macos`, `8-dev-macos`, `dev-macos` [_(8/Dockerfile)_]\n- `8.3-dev-macos` [_(8/Dockerfile)_]\n- `8.2-dev-macos` [_(8/Dockerfile)_]\n- `8.1-dev-macos` [_(8/Dockerfile)_]\n\n### `-dev`\n\nImages with `-dev` tag have a few differences:\n\n- `sudo` allowed for all commands for `wodby` user\n- PHP source code available under `/usr/src/php.tar.xz`\n- `PHP_FPM_CLEAR_ENV` is set to `no` by default\n- Additional packages installed: yarn\n\n### `-dev-macos`\n\nSame as `-dev` but the default user/group `wodby` has uid/gid `501`/`20`  to match the macOS default user/group ids.\n\n### Supported architectures\n\nAll images built for `linux/amd64` and `linux/arm64`\n\n## Environment Variables\n\n#### PHP and PHP-FPM configuration\n\nThe default configuration not recommended for use for production environment:\n\n| Variable                                    | 8.4                    | 8.3                    | 8.2                    | 8.1                                            |\n|---------------------------------------------|------------------------|------------------------|------------------------|------------------------------------------------|\n| [`PHP_ALLOW_URL_FOPEN`]                     | `On`                   | `On`                   | `On`                   | `On`                                           |\n| [`PHP_APCU_ENABLE_CLI`]                     | `0`                    | `0`                    | `0`                    | `0`                                            |\n| [`PHP_APCU_ENABLED`]                        | `1`                    | `1`                    | `1`                    | `1`                                            |\n| [`PHP_APCU_ENTRIES_HINT`]                   | `4096`                 | `4096`                 | `4096`                 | `4096`                                         |\n| [`PHP_APCU_COREDUMP_UNMAP`]                 | `0`                    | `0`                    | `0`                    | `0`                                            |\n| [`PHP_APCU_GC_TTL`]                         | `3600`                 | `3600`                 | `3600`                 | `3600`                                         |\n| [`PHP_APCU_PRELOAD_PATH`]                   | `NULL`                 | `NULL`                 | `NULL`                 | `NULL`                                         |\n| [`PHP_APCU_SERIALIZER`]                     |                        |                        |                        |                                                |\n| [`PHP_APCU_SHM_SEGMENTS`]                   | `1`                    | `1`                    | `1`                    | `1`                                            |\n| [`PHP_APCU_SHM_SIZE`]                       | `128M`                 | `128M`                 | `128M`                 | `128M`                                         |\n| [`PHP_APCU_SLAM_DEFENSE`]                   | `1`                    | `1`                    | `1`                    | `1`                                            |\n| [`PHP_APCU_TTL`]                            | `0`                    | `0`                    | `0`                    | `0`                                            |\n| [`PHP_APCU_USE_REQUEST_TIME`]               | `1`                    | `1`                    | `1`                    | `1`                                            |\n| [`PHP_ASSERT_ACTIVE`]                       | -                      | -                      | `On`                   | `On`                                           |\n| [`PHP_AUTO_PREPEND_FILE`]                   |                        |                        |                        |                                                |\n| [`PHP_AUTO_APPEND_FILE`]                    |                        |                        |                        |                                                |\n| `PHP_BROTLI_OUTPUT_COMPRESSION`             | `0`                    | `0`                    | `0`                    | `0`                                            |\n| `PHP_BROTLI_OUTPUT_COMPRESSION_LEVEL`       | `-1`                   | `-1`                   | `-1`                   | `-1`                                           |\n| `PHP_CLI_MEMORY_LIMIT`                      | `-1`                   | `-1`                   | `-1`                   | `-1`                                           |\n| [`PHP_DATE_TIMEZONE`]                       | `UTC`                  | `UTC`                  | `UTC`                  | `UTC`                                          |\n| [`PHP_DEFAULT_SOCKET_TIMEOUT`]              | `60`                   | `60`                   | `60`                   | `60`                                           |\n| [`PHP_DISABLE_FUNCTIONS`]                   |                        |                        |                        |                                                |\n| [`PHP_DISABLE_CLASSES`]                     |                        |                        |                        |                                                |\n| [`PHP_DISPLAY_STARTUP_ERRORS`]              | `On`                   | `On`                   | `On`                   | `On`                                           |\n| [`PHP_ERROR_REPORTING`]                     | `E_ALL`                | `E_ALL`                | `E_ALL`                | `E_ALL`                                        |\n| [`PHP_EXPOSE`]                              | `Off`                  | `Off`                  | `Off`                  | `Off`                                          |\n| `PHP_EXTENSIONS_DISABLE`                    | `xdebug,xhprof,spx`    | `xdebug,xhprof,spx`    | `xdebug,xhprof,spx`    | `xdebug,xhprof,spx`                            |\n| [`PHP_FPM_CLEAR_ENV`]                       | `yes`                  | `yes`                  | `yes`                  | `yes`                                          |\n| `PHP_FPM_ENV_VARS`                          |                        |                        |                        |                                                |\n| [`PHP_FPM_LOG_LEVEL`]                       | `notice`               | `notice`               | `notice`               | `notice`                                       |\n| [`PHP_FPM_PM`]                              | `dynamic`              | `dynamic`              | `dynamic`              | `dynamic`                                      |\n| [`PHP_FPM_PM_MAX_CHILDREN`]                 | `8`                    | `8`                    | `8`                    | `8`                                            |\n| [`PHP_FPM_PM_MAX_REQUESTS`]                 | `500`                  | `500`                  | `500`                  | `500`                                          |\n| [`PHP_FPM_PM_MAX_SPARE_SERVERS`]            | `3`                    | `3`                    | `3`                    | `3`                                            |\n| [`PHP_FPM_PM_MIN_SPARE_SERVERS`]            | `1`                    | `1`                    | `1`                    | `1`                                            |\n| [`PHP_FPM_PM_STATUS_PATH`]                  |                        |                        |                        |                                                |\n| [`PHP_FPM_REQUEST_SLOWLOG_TIMEOUT`]         |                        |                        |                        |                                                |\n| [`PHP_FPM_PM_START_SERVERS`]                | `2`                    | `2`                    | `2`                    | `2`                                            |\n| [`PHP_FPM_USER`]                            | `www-data`             | `www-data`             | `www-data`             | `www-data`                                     |\n| [`PHP_FPM_GROUP`]                           | `www-data`             | `www-data`             | `www-data`             | `www-data`                                     |\n| [`PHP_GRPC_ENABLE_FORK_SUPPORT`]            | `1`                    | `1`                    | `1`                    | `1`                                            |\n| [`PHP_GRPC_LOG_FILENAME`]                   | `/proc/self/fd/2`      | `/proc/self/fd/2`      | `/proc/self/fd/2`      | `/proc/self/fd/2`                              |\n| [`PHP_GRPC_POLL_STRATEGY`]                  | `epoll1`               | `epoll1`               | `epoll1`               | `epoll1`                                       |\n| [`PHP_GRPC_TRACE`]                          |                        |                        |                        |                                                |\n| [`PHP_GRPC_VERBOSITY`]                      | `error`                | `error`                | `error`                | `error`                                        |\n| `PHP_IGBINARY_COMPACT_STRINGS`              | `On`                   | `On`                   | `On`                   | `On`                                           |\n| [`PHP_LOG_ERRORS`]                          | `On`                   | `On`                   | `On`                   | `On`                                           |\n| [`PHP_LOG_ERRORS_MAX_LEN`]                  | `0`                    | `0`                    | `0`                    | `0`                                            |\n| [`PHP_MAX_EXECUTION_TIME`]                  | `120`                  | `120`                  | `120`                  | `120`                                          |\n| [`PHP_MAX_FILE_UPLOADS`]                    | `20`                   | `20`                   | `20`                   | `20`                                           |\n| [`PHP_MAX_INPUT_TIME`]                      | `60`                   | `60`                   | `60`                   | `60`                                           |\n| [`PHP_MAX_INPUT_VARS`]                      | `2000`                 | `2000`                 | `2000`                 | `2000`                                         |\n| [`PHP_MEMORY_LIMIT`]                        | `512M`                 | `512M`                 | `512M`                 | `512M`                                         |\n| [`PHP_MYSQLI_CACHE_SIZE`]                   | `2000`                 | `2000`                 | `2000`                 | `2000`                                         |\n| [`PHP_NEWRELIC_LICENSE`]                    |                        |                        |                        |                                                |\n| _see all newrelic ext options_              | [8.x newrelic]         | [8.x newrelic]         | [8.x newrelic]         | [8.x newrelic]                                 |\n| [`PHP_OPCACHE_ENABLE`]                      | `1`                    | `1`                    | `1`                    | `1`                                            |\n| [`PHP_OPCACHE_ENABLE_CLI`]                  | `0`                    | `0`                    | `0`                    | `0`                                            |\n| [`PHP_OPCACHE_VALIDATE_TIMESTAMPS`]         | `1`                    | `1`                    | `1`                    | `1`                                            |\n| [`PHP_OPCACHE_REVALIDATE_FREQ`]             | `2`                    | `2`                    | `2`                    | `2`                                            |\n| [`PHP_OPCACHE_MAX_ACCELERATED_FILES`]       | `4000`                 | `4000`                 | `4000`                 | `4000`                                         |\n| [`PHP_OPCACHE_MEMORY_CONSUMPTION`]          | `128`                  | `128`                  | `128`                  | `128`                                          |\n| [`PHP_OPCACHE_INTERNED_STRINGS_BUFFER`]     | `8`                    | `8`                    | `8`                    | `8`                                            |\n| [`PHP_OPCACHE_FAST_SHUTDOWN`]               | -                      | -                      | -                      | -                                              |\n| [`PHP_OPCACHE_HUGE_CODE_PAGES`]             | `0`                    | `0`                    | `0`                    | `0`                                            |\n| [`PHP_OPCACHE_PRELOAD`]                     | -                      | -                      | -                      | -                                              |\n| [`PHP_OPCACHE_PRELOAD_USER`]                | `www-data`             | `www-data`             | `www-data`             | `www-data`                                     |\n| [`PHP_OPCACHE_JIT`]                         | `tracing`              | `tracing`              | `tracing`              | `tracing`                                      |\n| [`PHP_OPCACHE_JIT_BUFFER_SIZE`]             | `0`                    | `0`                    | `0`                    | `0`                                            |\n| [`PHP_OUTPUT_BUFFERING`]                    | `4096`                 | `4096`                 | `4096`                 | `4096`                                         |\n| [`PHP_PCOV_ENABLED`]                        | `0`                    | `0`                    | `0`                    | `0`                                            |\n| _see all pcov ext options_                  | [8.x pcov]             | [8.x pcov]             | [8.x pcov]             | [8.x pcov]                                     |\n| [`PHP_PDO_MYSQL_CACHE_SIZE`]                | -                      | -                      | -                      | -                                              |\n| [`PHP_PHAR_READONLY`]                       | `1`                    | `1`                    | `1`                    | `1`                                            |\n| [`PHP_PHAR_REQUIRE_HASH`]                   | `1`                    | `1`                    | `1`                    | `1`                                            |\n| [`PHP_PHAR_CACHE_LIST`]                     |                        |                        |                        |                                                |\n| [`PHP_POST_MAX_SIZE`]                       | `32M`                  | `32M`                  | `32M`                  | `32M`                                          |\n| [`PHP_REALPATH_CACHE_SIZE`]                 | `4096k`                | `4096k`                | `4096k`                | `4096k`                                        |\n| [`PHP_REALPATH_CACHE_TTL`]                  | `120`                  | `120`                  | `120`                  | `120`                                          |\n| [`PHP_SENDMAIL_PATH`]                       | `/usr/bin/msmtp -t -i` | `/usr/bin/msmtp -t -i` | `/usr/bin/msmtp -t -i` | `/usr/bin/dos2unix -u \\| /usr/bin/msmtp -t -i` |\n| `PHP_MAIL_MIXED_LF_AND_CRLF`                | `Off`                  | `Off`                  | `Off`                  | -                                              |\n| [`PHP_SESSION_SAVE_HANDLER`]                | `files`                | `files`                | `files`                | `files`                                        |\n| [`PHP_SHORT_OPEN_TAG`]                      | `1`                    | `1`                    | `1`                    | `1`                                            |\n| [`PHP_SPX_DATA_DIR`]                        | `/mnt/files/spx`       | `/mnt/files/spx`       | `/mnt/files/spx`       | `/mnt/files/spx`                               |\n| [`PHP_SPX_HTTP_ENABLED`]                    | `0`                    | `0`                    | `0`                    | `0`                                            |\n| [`PHP_SPX_HTTP_KEY`]                        |                        |                        |                        |                                                |\n| [`PHP_SPX_HTTP_IP_WHITELIST`]               |                        |                        |                        |                                                |\n| _see all sqlsrv ext options_                | [8.x sqlsrv]           | [8.x sqlsrv]           | [8.x sqlsrv]           | [8.x sqlsrv]                                   |\n| _see all session options_                   | [8.3 session]          | [8.3 session]          | [8.2 session]          | [8.1 session]                                  |\n| _see all xhprof options_                    | [8.x xhprof]           | [8.x xhprof]           | [8.x xhprof]           | [8.x xhprof]                                   |\n| [`PHP_UPLOAD_MAX_FILESIZE`]                 | `32M`                  | `32M`                  | `32M`                  | `32M`                                          |\n| [`PHP_XDEBUG_MODE`]                         | `off`                  | `off`                  | `off`                  | `off`                                          |\n| _see all xdebug ext options_                | [8.x xdebug]           | [8.x xdebug]           | [8.x xdebug]           | [8.x xdebug]                                   |\n| [`PHP_ZEND_ASSERTIONS`]                     | `1`                    | `1`                    | `1`                    | `1`                                            |\n| [`PHP_ZEND_EXCEPTION_IGNORE_ARGS`]          | `0`                    | `0`                    | `0`                    | `0`                                            |\n| [`PHP_ZEND_MULTIBYTE`]                      | `0`                    | `0`                    | `0`                    | `0`                                            |\n| [`PHP_ZEND_SIGNAL_CHECK`]                   | `0`                    | `0`                    | `0`                    | `0`                                            |\n| [`PHP_ZEND_EXCEPTION_STRING_PARAM_MAX_LEN`] | `15`                   | `15`                   | `15`                   | `15`                                           |\n| [`PHP_ZEND_SCRIPT_ENCODING`]                |                        |                        |                        |                                                |\n| [`PHP_ZEND_DETECT_UNICODE`]                 |                        |                        |                        |                                                |\n\n\u003e \"-\" - Not available for this version\n\n#### Additional configuration\n\n| Variable                                | Default value       |\n|-----------------------------------------|---------------------|\n| `GIT_USER_EMAIL`                        | `wodby@example.com` |\n| `GIT_USER_NAME`                         | `wodby`             |\n| `HTTP_PROXY`                            |                     |\n| `SSH_PRIVATE_KEY`                       |                     |\n| `SSH_DISABLE_STRICT_KEY_CHECKING`       |                     |\n| `SSHD_GATEWAY_PORTS`                    | `no`                |\n| `SSHD_HOST_KEYS_DIR`                    | `/etc/ssh`          |\n| `SSHD_LOG_LEVEL`                        | `INFO`              |\n| `SSHD_PASSWORD_AUTHENTICATION`          | `no`                |\n| `SSHD_PERMIT_USER_ENV`                  | `yes`               |\n| `SSHD_USE_DNS`                          | `yes`               |\n| `MSMTP_PORT`                            | `25`                |\n| `MSMTP_TLS`                             | `off`               |\n| `MSMTP_LOG`                             |                     |\n| `MSMTP_LOGFILE`                         | `/proc/self/fd/2`   |\n| `MSMTP_AUTH`                            | `off`               |\n| `MSMTP_HOST`                            | `opensmtpd`         |\n| `MSMTP_ADD_MISSING_DATE_HEADER`         | `on`                |\n| `MARIADB_CLIENT_SSL_VERIFY_SERVER_CERT` | `                   |\n\n## Build arguments\n\n| Argument         | Default value |\n|------------------|---------------|\n| `PHP_VER`        |               |\n| `PHP_DEV`        |               |\n| `WODBY_GROUP_ID` | `1000`        |\n| `WODBY_USER_ID`  | `1000`        |\n\nChange `WODBY_USER_ID` and `WODBY_GROUP_ID` mainly for local dev version of images, if it matches with existing system\nuser/group ids the latter will be deleted.\n\n## PHP Extensions\n\nExtensions xdebug, xhprof and spx disabled by default, to change it override the default env\nvar `PHP_EXTENSIONS_DISABLE=xdebug,xhprof,spx`.\n\n| Extension        | 8.4      | 8.3      | 8.2      | 8.1      |\n|------------------|----------|----------|----------|----------|\n| [amqp]           | 2.1.2    | 2.1.2    | 2.1.2    | 2.1.2    |\n| [apcu]           | 5.1.24   | 5.1.24   | 5.1.24   | 5.1.24   |\n| [ast]            | 1.1.2    | 1.1.2    | 1.1.2    | 1.1.2    |\n| bcmath           |          |          |          |          |\n| brotli           | 0.15.2   | 0.15.2   | 0.15.2   | 0.15.2   |\n| bz2              |          |          |          |          |\n| calendar         |          |          |          |          |\n| Core             |          |          |          |          |\n| ctype            |          |          |          |          |\n| curl             |          |          |          |          |\n| date             |          |          |          |          |\n| dom              |          |          |          |          |\n| [ds]             | 1.5.0    | 1.5.0    | 1.5.0    | 1.5.0    |\n| exif             |          |          |          |          |\n| [event]          | 3.1.4    | 3.1.4    | 3.1.4    | 3.1.4    |\n| fileinfo         |          |          |          |          |\n| filter           |          |          |          |          |\n| ftp              |          |          |          |          |\n| gd               |          |          |          |          |\n| [grpc]           | 1.68.0   | 1.68.0   | 1.68.0   | 1.68.0   |\n| hash             |          |          |          |          |\n| iconv            |          |          |          |          |\n| [igbinary]       | 3.2.16   | 3.2.16   | 3.2.16   | 3.2.16   |\n| [imagick]        | `master` | `master` | `master` | `master` |\n| [imap]           | 1.0.3    | -        | -        | -        |\n| imap             | -        |          |          |          |\n| intl             |          |          |          |          |\n| json             |          |          |          |          |\n| ldap             |          |          |          |          |\n| libxml           |          |          |          |          |\n| mbstring         |          |          |          |          |\n| [memcached]      | 3.3.0    | 3.3.0    | 3.3.0    | 3.3.0    |\n| [mongodb]        | 1.21.0   | 1.21.0   | 1.21.0   | 1.21.0   |\n| mysqli           |          |          |          |          |\n| mysqlnd          |          |          |          |          |\n| [newrelic]       | latest   | latest   | latest   | latest   |\n| [OAuth]          | 2.0.9    | 2.0.9    | 2.0.9    | 2.0.9    |\n| openssl          |          |          |          |          |\n| [opentelemetry]  | 1.1.2    | 1.1.2    | 1.1.2    | 1.1.2    |\n| [pcov]           | 1.0.12   | 1.0.12   | 1.0.12   | 1.0.12   |\n| pcntl            |          |          |          |          |\n| pcre             |          |          |          |          |\n| PDO              |          |          |          |          |\n| pdo_mysql        |          |          |          |          |\n| pdo_pgsql        |          |          |          |          |\n| pdo_sqlite       |          |          |          |          |\n| [pdo_sqlsrv]*    | 5.12.0   | 5.12.0   | 5.12.0   | 5.12.0   |\n| pgsql            |          |          |          |          |\n| Phar             |          |          |          |          |\n| posix            |          |          |          |          |\n| [rdkafka]        | 6.0.5    | 6.0.5    | 6.0.5    | 6.0.5    |\n| readline         |          |          |          |          |\n| [redis]          | 6.1.0    | 6.1.0    | 6.1.0    | 6.1.0    |\n| Reflection       |          |          |          |          |\n| session          |          |          |          |          |\n| SimpleXML        |          |          |          |          |\n| [smbclient]      | 1.1.1    | 1.1.1    | 1.1.1    | 1.1.1    |\n| soap             |          |          |          |          |\n| sockets          |          |          |          |          |\n| sodium           |          |          |          |          |\n| SPL              |          |          |          |          |\n| [spx]            | 0.4.17   | 0.4.17   | 0.4.17   | 0.4.17   |\n| sqlite3          |          |          |          |          |\n| [sqlsrv]*        | 5.12.0   | 5.12.0   | 5.12.0   | 5.12.0   |\n| standard         |          |          |          |          |\n| tidy             |          |          |          |          |\n| tokenizer        |          |          |          |          |\n| [uploadprogress] | 2.0.2    | 2.0.2    | 2.0.2    | 2.0.2    |\n| [uuid]           | 1.2.1    | 1.2.1    | 1.2.1    | 1.2.1    |\n| [xdebug]         | 3.4.2    | 3.4.2    | 3.4.2    | 3.4.2    |\n| [xhprof]         | 2.3.10   | 2.3.10   | 2.3.10   | 2.3.10   |\n| xml              |          |          |          |          |\n| xmlreader        |          |          |          |          |\n| xmlwriter        |          |          |          |          |\n| xsl              |          |          |          |          |\n| [yaml]           | 2.2.4    | 2.2.4    | 2.2.4    | 2.2.4    |\n| Zend OPcache     |          |          |          |          |\n| zip              |          |          |          |          |\n| zlib             |          |          |          |          |\n\nLegend:\n\n\u003e - [EMPTY] – Core PHP extension\n\u003e - \"-\" - Not exists in this version\n    \u003e Some extensions may not be available in [`-dev`](#-dev) images\n\n* sqlsrv extension has no arm64 support because the driver has no support for linux/arm64\n\n## Tools\n\n| Tool                                | 8.4    | 8.3    | 8.2    | 8.1    |\n|-------------------------------------|--------|--------|--------|--------|\n| [Composer](https://getcomposer.org) | latest | latest | latest | latest |\n\n## Xdebug\n\nBy default, xdebug [mode](https://xdebug.org/docs/all_settings#mode) set to `off`, which has close to 0 overhead. If you\nwant to disable the extension completely set `PHP_EXTENSIONS_DISABLE=xdebug`.\n\n## Changelog\n\nChanges per stability tag reflected in git tags description under [releases](https://github.com/wodby/python/releases).\n\n## Crond\n\nYou can run Crond with this image changing the command to `sudo -E crond -f -d 0` and mounting a crontab file\nto `./crontab:/etc/crontabs/www-data`. Example crontab file contents:\n\n```\n# min\thour\tday\tmonth\tweekday\tcommand\n*/1\t*\t*\t*\t*\techo \"test\" \u003e /mnt/files/cron\n```\n\n## SSHD\n\nYou can run SSHD with this image by changing the command to `sudo /usr/sbin/sshd -De` and mounting authorized public\nkeys to `/home/wodby/.ssh/authorized_keys`\n\n## Adding SSH key\n\nYou can add a private SSH key to the container by mounting it to `/home/wodby/.ssh/id_rsa`\n\n## Users and permissions\n\nDefault container user is `wodby:wodby` (UID/GID `1000`). PHP-FPM runs from `www-data:www-data` user (UID/GID `82`) by\ndefault. User `wodby` is a part of `www-data` group.\n\nCodebase volume `$APP_ROOT` (`/var/www/html`) owned by `wodby:wodby`. Files volume `$FILES_DIR` (`/mnt/files`) owned\nby `www-data:www-data` with `775` mode.\n\nSee https://github.com/wodby/php/issues/22 for more details.\n\n#### Helper scripts\n\n- `files_chmod` – in case you need write access for `wodby` user to a file/dir generated by `www-data` on this volume\n  run `sudo files_chmod [FILEPATH]` script (FILEPATH must be under `/mnt/files`), it will recursively change the mode\n  to `ug=rwX,o=rX`\n\n- `files_chown` – in case you manually uploaded files under `wodby` user to files volume and want to change the\n  ownership of those files to `www-data` run `sudo files_chown [FILEPATH]` script (FILEPATH must be under `/mnt/files`),\n  it will recursively change ownership to `www-data:www-data`\n\n## Complete PHP-based stacks\n\n- [wodby/docker4php](https://github.com/wodby/docker4php)\n- [wodby/docker4laravel](https://github.com/wodby/docker4laravel)\n- [wodby/docker4drupal](https://github.com/wodby/docker4drupal)\n- [wodby/docker4wordpress](https://github.com/wodby/docker4wordpress)\n\n## Images based on `wodby/php`\n\n- [wodby/drupal-php](https://github.com/wodby/drupal-php)\n- [wodby/wordpress-php](https://github.com/wodby/wordpress-php)\n- [wodby/adminer](https://github.com/wodby/adminer)\n- [wodby/matomo](https://github.com/wodby/matomo)\n- [wodby/cachet](https://github.com/wodby/cachet)\n- [wodby/webgrind](https://github.com/wodby/webgrind)\n- [wodby/xhprof](https://github.com/wodby/xhprof)\n\n## Orchestration Actions\n\nUsage:\n\n```\nmake COMMAND [params ...]\n\ncommands:\n    migrate\n    check-ready [host max_try wait_seconds delay_seconds]\n    git-clone url [branch]\n    git-checkout target [is_hash]   \n    files-import source\n    files-link public_dir \n    update-keys\n    walter\n\ndefault params values:\n    is_hash 0\n    branch \"\" Branch, tag or hash commit\n```\n\n[_(8/Dockerfile)_]: https://github.com/wodby/php/tree/master/8/Dockerfile\n\n[8.x xdebug]: https://github.com/wodby/php/tree/master/8/templates/docker-php-ext-xdebug.ini.tmpl\n\n[8.x pcov]: https://github.com/wodby/php/tree/master/8/templates/docker-php-ext-pcov.ini.tmpl\n\n[8.x newrelic]: https://github.com/wodby/php/tree/master/8/templates/docker-php-ext-newrelic.ini.tmpl\n\n[8.x xhprof]: https://github.com/wodby/php/tree/master/8/templates/docker-php-ext-xhprof.ini.tmpl\n\n[8.x sqlsrv]: https://github.com/wodby/php/tree/master/8/templates/docker-php-ext-sqlsrv.ini.tmpl\n\n[8.1 session]: https://github.com/wodby/php/tree/master/8/templates/docker-php-8.1.ini.tmpl\n\n[8.2 session]: https://github.com/wodby/php/tree/master/8/templates/docker-php-8.2.ini.tmpl\n\n[8.3 session]: https://github.com/wodby/php/tree/master/8/templates/docker-php-8.3.ini.tmpl\n\n[`PHP_ALLOW_URL_FOPEN`]: http://php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen\n\n[`PHP_APCU_COREDUMP_UNMAP`]: http://php.net/manual/en/apcu.configuration.php#ini.apcu.coredump-unmap\n\n[`PHP_APCU_ENABLE_CLI`]: http://php.net/manual/en/apcu.configuration.php#ini.apcu.enable-cli\n\n[`PHP_APCU_ENABLED`]: http://php.net/manual/en/apcu.configuration.php#ini.apcu.enabled\n\n[`PHP_APCU_ENTRIES_HINT`]: http://php.net/manual/en/apcu.configuration.php#ini.apcu.entries-hint\n\n[`PHP_APCU_GC_TTL`]: http://php.net/manual/en/apcu.configuration.php#ini.apcu.gc-ttl\n\n[`PHP_APCU_PRELOAD_PATH`]: http://php.net/manual/en/apcu.configuration.php#ini.apcu.preload-path\n\n[`PHP_APCU_SERIALIZER`]: http://php.net/manual/en/apcu.configuration.php#ini.apcu.serializer\n\n[`PHP_APCU_SHM_SEGMENTS`]: http://php.net/manual/en/apcu.configuration.php#ini.apcu.shm-segments\n\n[`PHP_APCU_SHM_SIZE`]: http://php.net/manual/en/apcu.configuration.php#ini.apcu.shm-size\n\n[`PHP_APCU_SLAM_DEFENSE`]: http://php.net/manual/en/apcu.configuration.php#ini.apcu.slam-defense\n\n[`PHP_APCU_TTL`]: http://php.net/manual/en/apcu.configuration.php#ini.apcu.ttl\n\n[`PHP_APCU_USE_REQUEST_TIME`]: http://php.net/manual/en/apcu.configuration.php#ini.apcu.use-request-time\n\n[`PHP_ASSERT_ACTIVE`]: http://php.net/assert.active\n\n[`PHP_AUTO_APPEND_FILE`]: http://php.net/auto-append-file\n\n[`PHP_AUTO_PREPEND_FILE`]: http://php.net/auto-prepend-file\n\n[`PHP_DATE_TIMEZONE`]: http://php.net/date.timezone\n\n[`PHP_DEFAULT_SOCKET_TIMEOUT`]: http://php.net/manual/en/filesystem.configuration.php#ini.default-socket-timeout\n\n[`PHP_DISPLAY_ERRORS`]: http://php.net/display-errors\n\n[`PHP_DISABLE_FUNCTIONS`]: https://www.php.net/manual/en/ini.core.php#ini.disable-functions\n\n[`PHP_DISABLE_CLASSES`]: https://www.php.net/manual/en/ini.core.php#ini.disable-classes\n\n[`PHP_DISPLAY_STARTUP_ERRORS`]: http://php.net/display-startup-errors\n\n[`PHP_ERROR_REPORTING`]: http://php.net/error-reporting\n\n[`PHP_EXPOSE`]: http://php.net/expose-php\n\n[`PHP_FPM_CLEAR_ENV`]: http://php.net/manual/en/install.fpm.configuration.php#clear-env\n\n[`PHP_FPM_GROUP`]: http://php.net/manual/en/install.fpm.configuration.php#group\n\n[`PHP_FPM_LOG_LEVEL`]: http://php.net/manual/en/install.fpm.configuration.php#log-level\n\n[`PHP_FPM_PM_MAX_CHILDREN`]: http://php.net/manual/en/install.fpm.configuration.php#pm.max-chidlren\n\n[`PHP_FPM_PM_MAX_REQUESTS`]: http://php.net/manual/en/install.fpm.configuration.php#pm.max-requests\n\n[`PHP_FPM_PM_MAX_SPARE_SERVERS`]: http://php.net/manual/en/install.fpm.configuration.php#pm.max-spare-servers\n\n[`PHP_FPM_PM_MIN_SPARE_SERVERS`]: http://php.net/manual/en/install.fpm.configuration.php#pm.min-spare-servers\n\n[`PHP_FPM_PM_START_SERVERS`]: http://php.net/manual/en/install.fpm.configuration.php#pm.start-servers\n\n[`PHP_FPM_PM_STATUS_PATH`]: http://php.net/manual/en/install.fpm.configuration.php#pm.status-path\n\n[`PHP_FPM_PM`]: http://php.net/manual/en/install.fpm.configuration.php#pm\n\n[`PHP_FPM_REQUEST_SLOWLOG_TIMEOUT`]: http://php.net/manual/en/install.fpm.configuration.php#request-slowlog-timeout\n\n[`PHP_GRPC_ENABLE_FORK_SUPPORT`]: https://github.com/grpc/grpc/blob/master/doc/environment_variables.md\n\n[`PHP_GRPC_POLL_STRATEGY`]: https://github.com/grpc/grpc/blob/master/doc/environment_variables.md\n\n[`PHP_GRPC_LOG_FILENAME`]: https://github.com/grpc/grpc/blob/master/doc/environment_variables.md\n\n[`PHP_GRPC_TRACE`]: https://github.com/grpc/grpc/blob/master/doc/environment_variables.md\n\n[`PHP_GRPC_VERBOSITY`]: https://github.com/grpc/grpc/blob/master/doc/environment_variables.md\n\n[`PHP_FPM_USER`]: http://php.net/manual/en/install.fpm.configuration.php#user\n\n[`PHP_LOG_ERRORS_MAX_LEN`]: http://php.net/log-errors-max-len\n\n[`PHP_LOG_ERRORS`]: http://php.net/log-errors\n\n[`PHP_MAX_EXECUTION_TIME`]: http://php.net/max-execution-time\n\n[`PHP_MAX_FILE_UPLOADS`]: http://php.net/manual/en/ini.core.php#ini.max-file-uploads\n\n[`PHP_MAX_INPUT_TIME`]: http://php.net/max-input-time\n\n[`PHP_MAX_INPUT_VARS`]: http://php.net/max-input-vars\n\n[`PHP_MBSTRING_ENCODING_TRANSLATION`]: http://php.net/mbstring.encoding-translation\n\n[`PHP_MBSTRING_HTTP_INPUT`]: http://php.net/mbstring.http-input\n\n[`PHP_MBSTRING_HTTP_OUTPUT`]: http://php.net/mbstring.http-output\n\n[`PHP_MEMORY_LIMIT`]: http://php.net/memory-limit\n\n[`PHP_MYSQLI_CACHE_SIZE`]: http://php.net/mysqli.cache_size\n\n[`PHP_NEWRELIC_APPNAME`]: https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration#inivar-appname\n\n[`PHP_NEWRELIC_BROWSER_MONITORING_AUTO_INSTRUMENT`]: https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration#inivar-autorum\n\n[`PHP_NEWRELIC_CAPTURE_PARAMS`]: https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration#inivar-enabled\n\n[`PHP_NEWRELIC_ENABLED`]: https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration#inivar-enabled\n\n[`PHP_NEWRELIC_FRAMEWORK`]: https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration#inivar-framework\n\n[`PHP_NEWRELIC_GUZZLE_ENABLED`]: https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration#inivar-autorum\n\n[`PHP_NEWRELIC_HIGH_SECURITY`]: https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration#inivar-high-security\n\n[`PHP_NEWRELIC_IGNORED_PARAMS`]: https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration#inivar-ignored_params\n\n[`PHP_NEWRELIC_LABELS`]: https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration#inivar-labels\n\n[`PHP_NEWRELIC_LICENSE`]: https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration#inivar-license\n\n[`PHP_NEWRELIC_LOGLEVEL`]: https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration#inivar-loglevel\n\n[`PHP_NEWRELIC_TRANSACTION_TRACER_DETAIL`]: https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration#inivar-tt-detail\n\n[`PHP_NEWRELIC_DISTRIBUTED_TRACING_ENABLED`]: https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration#inivar-misctt-settings\n\n[`PHP_OPCACHE_ENABLE_CLI`]: http://php.net/manual/en/opcache.configuration.php#ini.opcache.enable-cli\n\n[`PHP_OPCACHE_ENABLE`]: http://php.net/manual/en/opcache.configuration.php#ini.opcache.enable\n\n[`PHP_OPCACHE_FAST_SHUTDOWN`]: http://php.net/manual/en/opcache.configuration.php#ini.opcache.fast-shutdown\n\n[`PHP_OPCACHE_HUGE_CODE_PAGES`]: http://php.net/manual/en/opcache.configuration.php#ini.opcache.huge_code_pages\n\n[`PHP_OPCACHE_INTERNED_STRINGS_BUFFER`]: http://php.net/manual/en/opcache.configuration.php#ini.opcache.interned-strings-buffer\n\n[`PHP_OPCACHE_JIT`]: https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.jit\n\n[`PHP_OPCACHE_JIT_BUFFER_SIZE`]: https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.jit-buffer-size\n\n[`PHP_OPCACHE_MAX_ACCELERATED_FILES`]: http://php.net/manual/en/opcache.configuration.php#ini.opcache.max-accelerated-files\n\n[`PHP_OPCACHE_MEMORY_CONSUMPTION`]: http://php.net/manual/en/opcache.configuration.php#ini.opcache.memory-consumption\n\n[`PHP_OPCACHE_PRELOAD`]: http://php.net/manual/en/opcache.configuration.php#ini.opcache.preload\n\n[`PHP_OPCACHE_PRELOAD_USER`]: http://php.net/manual/en/opcache.configuration.php#ini.opcache.preload-user\n\n[`PHP_OPCACHE_REVALIDATE_FREQ`]: http://php.net/manual/en/opcache.configuration.php#ini.opcache.revalidate-freq\n\n[`PHP_OPCACHE_VALIDATE_TIMESTAMPS`]: http://php.net/manual/en/opcache.configuration.php#ini.opcache.validate-timestamps\n\n[`PHP_OUTPUT_BUFFERING`]: http://php.net/output-buffering\n\n[`PHP_PDO_MYSQL_CACHE_SIZE`]: http://php.net/pdo_mysql.cache_size\n\n[`PHP_PHAR_CACHE_LIST`]: http://php.net/manual/en/phar.configuration.php#ini.phar.cache-list\n\n[`PHP_PHAR_READONLY`]: http://php.net/manual/en/phar.configuration.php#ini.phar.readonly\n\n[`PHP_PHAR_REQUIRE_HASH`]: http://php.net/manual/en/phar.configuration.php#ini.phar.require-hash\n\n[`PHP_POST_MAX_SIZE`]: http://php.net/post-max-size\n\n[`PHP_REALPATH_CACHE_SIZE`]: http://php.net/realpath-cache-size\n\n[`PHP_REALPATH_CACHE_TTL`]: http://php.net/realpath-cache-ttl\n\n[`PHP_SENDMAIL_PATH`]: http://php.net/sendmail-path\n\n[`PHP_SESSION_SAVE_HANDLER`]: http://php.net/session.save-handler\n\n[`PHP_SHORT_OPEN_TAG`]: https://www.php.net/manual/en/ini.core.php#ini.short-open-tag\n\n[`PHP_TRACK_ERRORS`]: http://php.net/track-errors\n\n[`PHP_UPLOAD_MAX_FILESIZE`]: http://php.net/upload-max-filesize\n\n[`PHP_XDEBUG_MODE`]: https://xdebug.org/docs/all_settings#mode\n\n[`PHP_XDEBUG`]: #xdebug\n\n[`PHP_ZEND_ASSERTIONS`]: https://www.php.net/manual/en/ini.core.php#ini.zend.assertions\n\n[`PHP_ZEND_EXCEPTION_IGNORE_ARGS`]: https://www.php.net/manual/en/ini.core.php#ini.zend.exception-ignore-args\n\n[`PHP_ZEND_MULTIBYTE`]: https://www.php.net/manual/en/ini.core.php#ini.zend.multibyte\n\n[`PHP_ZEND_SIGNAL_CHECK`]: https://www.php.net/manual/en/ini.core.php#ini.zend.signal-check\n\n[`PHP_ZEND_EXCEPTION_STRING_PARAM_MAX_LEN`]: https://www.php.net/manual/en/ini.core.php#ini.zend.exception-string-param-max-len\n\n[`PHP_ZEND_SCRIPT_ENCODING`]: https://www.php.net/manual/en/ini.core.php#ini.zend.script-encoding\n\n[`PHP_ZEND_DETECT_UNICODE`]: https://www.php.net/manual/en/ini.core.php#ini.zend.detect-unicode\n\n[`PHP_PCOV_ENABLED`]: https://github.com/krakjoe/pcov#configuration\n\n[`PHP_SPX_DATA_DIR`]: https://github.com/NoiseByNorthwest/php-spx?tab=readme-ov-file#configuration\n\n[`PHP_SPX_HTTP_ENABLED`]: https://github.com/NoiseByNorthwest/php-spx?tab=readme-ov-file#configuration\n\n[`PHP_SPX_HTTP_KEY`]: https://github.com/NoiseByNorthwest/php-spx?tab=readme-ov-file#configuration\n\n[`PHP_SPX_HTTP_IP_WHITELIST`]: https://github.com/NoiseByNorthwest/php-spx?tab=readme-ov-file#configuration\n\n[amqp]: http://pecl.php.net/package/amqp\n\n[apcu]: http://pecl.php.net/package/apcu\n\n[ast]: https://github.com/nikic/php-ast\n\n[ds]: https://pecl.php.net/package/ds\n\n[event]: https://pecl.php.net/package/event\n\n[grpc]: https://pecl.php.net/package/grpc\n\n[igbinary]: https://pecl.php.net/package/igbinary\n\n[imagick]: https://pecl.php.net/package/imagick\n\n[imap]: https://pecl.php.net/package/imap\n\n[mcrypt]: http://pecl.php.net/package/mcrypt\n\n[memcached]: http://pecl.php.net/package/memcached\n\n[mongodb]: http://pecl.php.net/package/mongodb\n\n[newrelic]: http://download.newrelic.com/php_agent/release\n\n[OAuth]: http://pecl.php.net/package/oauth\n\n[pcov]: https://pecl.php.net/package/pcov\n\n[opentelemetry]: https://pecl.php.net/package/opentelemetry\n\n[pdo_sqlsrv]: http://pecl.php.net/package/sqlsrv\n\n[rdkafka]: https://pecl.php.net/package/rdkafka\n\n[redis]: http://pecl.php.net/package/redis\n\n[smbclient]: http://pecl.php.net/package/smbclient\n\n[sqlsrv]: http://pecl.php.net/package/sqlsrv\n\n[spx]: https://github.com/NoiseByNorthwest/php-spx\n\n[uploadprogress]: https://pecl.php.net/package/uploadprogress\n\n[uuid]: https://pecl.php.net/package/uuid\n\n[xdebug]: https://pecl.php.net/package/xdebug\n\n[xhprof]: https://pecl.php.net/package/xhprof\n\n[yaml]: https://pecl.php.net/package/yaml\n\n[latest]: https://github.com/wodby/pecl-php-uploadprogress/releases/tag/latest\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwodby%2Fphp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwodby%2Fphp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwodby%2Fphp/lists"}