nextstage/php

By nextstage

Updated about 2 months ago

Imagens PHP, PHP-FPM e PHP-FPM-APACHE

Image
Languages & frameworks
API management
Web servers
0

50K+

nextstage/php repository overview

Versões Suportadas

  • PHP 7.4+

Variáveis de Ambiente Disponíveis

Configurações Gerais
AUTORUN_ENABLED=true                        # Habilita automações (Laravel/NSUtil)
AUTORUN_LARAVEL_MIGRATION=false             # Executa migrations do Laravel automaticamente
AUTORUN_LARAVEL_REFRESH_CACHE=false         # Limpa e recria cache do Laravel
AUTORUN_LARAVEL_STORAGE_LINK=false          # Cria link simbólico do storage do Laravel
AUTORUN_NSUTIL_CLEAR_CACHE=false            # Limpa cache do NSUtil
AUTORUN_NSUTIL_MIGRATION=false              # Executa migrations do NSUtil
DEBIAN_FRONTEND=noninteractive              # Configuração do ambiente Debian
DOCKER_MAINTENER=seu_email                  # Email do mantenedor da imagem
DOCKER_PASS=sua_senha                       # Senha do Docker Hub
DOCKER_USER=seu_usuario                     # Usuário do Docker Hub
EXTRA_OPEN_BASEDIR=/tmp                     # Diretórios adicionais permitidos pelo PHP
LANG=en_US.UTF-8                            # Configuração de idioma
LANGUAGE=en_US:en                           # Configuração de idioma
LC_ALL=en_US.UTF-8                          # Configuração de idioma
PUID=9999                                   # ID do usuário do container
PGID=9999                                   # ID do grupo do container
S6_BEHAVIOUR_IF_STAGE2_FAILS=2              # Comportamento do S6 em caso de falha (0=continua, 1=reinicia, 2=para)
S6_LOGGING=0                                # Controle de logs do S6 (0=mostra todos, 1=oculta)
WEBUSER_HOME=/var/www/html                  # Diretório home do usuário web
Configurações do Apache (fpm-apache)

Para otimizar o FPM e apache, use https://fpm-optimizer.nextstage.com.br

APACHE_DOCUMENT_ROOT=/var/www/html/api/      # Diretório raiz do Apache
APACHE_HTTP_PROTOCOLS="h2 h2c http/1.1"      # Protocolos HTTP suportados
APACHE_MAX_CONNECTIONS_PER_CHILD=0           # Máximo de conexões por processo filho
APACHE_MAX_REQUEST_WORKERS=50                # Máximo de workers simultâneos
APACHE_MAX_SPARE_THREADS=25                  # Máximo de threads em espera
APACHE_MIN_SPARE_THREADS=5                   # Mínimo de threads em espera
APACHE_RUN_GROUP=webgroup                    # Grupo do Apache
APACHE_RUN_USER=webuser                      # Usuário do Apache
APACHE_SERVER_ADMIN=webmaster@localhost      # Email do administrador
APACHE_SERVER_LIMIT=16                       # Limite de servidores
APACHE_SERVER_NAME=localhost                 # Nome do servidor
APACHE_START_SERVERS=2                       # Número inicial de servidores
APACHE_THREAD_LIMIT=32                       # Limite de threads
APACHE_THREADS_PER_CHILD=25                  # Threads por processo filho
Configurações do PHP-FPM
PHP_DATE_TIMEZONE=UTC                        # Timezone do PHP
PHP_DISPLAY_ERRORS=Off                       # Exibe erros PHP
PHP_ERROR_REPORTING="E_ALL & ~E_NOTICE & ~E_STRICT"  # Nível de reporte de erros
PHP_MAX_EXECUTION_TIME=30                    # Tempo máximo de execução em segundos
PHP_MEMORY_LIMIT=256M                        # Limite de memória do PHP
PHP_PM_CONTROL=dynamic                       # Modo de controle do PM (static/dynamic/ondemand)
PHP_PM_MAX_CHILDREN=86                       # Máximo de processos filhos
PHP_PM_MAX_SPARE_SERVERS=4                   # Máximo de servidores em espera
PHP_PM_MIN_SPARE_SERVERS=2                   # Mínimo de servidores em espera
PHP_PM_START_SERVERS=4                       # Número inicial de servidores
PHP_POOL_NAME=www                            # Nome do pool PHP-FPM
PHP_POST_MAX_SIZE=20M                        # Tamanho máximo de POST
PHP_UPLOAD_MAX_FILE_SIZE=20M                 # Tamanho máximo de upload
Configurações do OPcache
OPCACHE_ENABLE=1                             # Habilita OPcache
OPCACHE_ENABLE_CLI=1                         # Habilita OPcache para CLI
OPCACHE_FAST_SHUTDOWN=1                      # Desligamento rápido do OPcache
OPCACHE_INTERNED_STRINGS_BUFFER=8            # Buffer de strings internas
OPCACHE_MAX_ACCELERATED_FILES=4000           # Máximo de arquivos acelerados
OPCACHE_MEMORY_CONSUMPTION=128               # Consumo de memória do OPcache
OPCACHE_REVALIDATE_FREQ=600                  # Frequência de revalidação
Configurações do Xdebug (cli-dev)
XDEBUG_CLIENT_HOST=host.docker.internal      # Host do cliente Xdebug (IDE)
XDEBUG_CLIENT_PORT=9003                      # Porta do cliente Xdebug (IDE)
XDEBUG_DISCOVER_CLIENT_HOST=1                # Descoberta automática do host (0=desativado, 1=ativado)
XDEBUG_MODE=debug                            # Modo do Xdebug (debug,develop,coverage,profile,trace)
XDEBUG_OUTPUT_DIR=/var/log/xdebug            # Diretório de saída do Xdebug (logs e traces)
XDEBUG_START_WITH_REQUEST=yes                # Inicia com requisição (yes=inicia, no=aguarda trigger XDEBUG_TRIGGER)
Configurações do Redis embarcado

Cada imagem contem em si um servico de Redis sendo executado. A porta local pode ser exposta. O local padrao de persistencia eh /var/lib/redis/data. Mapeie um volume caso queira persistencia.

REDIS_PORT=6379                              # Porta do Redis
REDIS_MAXMEM=256mb                           # Memória máxima do Redis
REDIS_PASSWORD=""                            # Senha do Redis (recomendado para produção)
REDIS_PERSIST=true                           # Define a persistência do Redis. Se true, os dados serão salvos em disco

Observações Importantes

  1. Imagens Específicas: Algumas variáveis são específicas para determinadas imagens:

    • Xdebug: apenas para cli-dev
    • Apache: apenas para fpm-apache
    • FPM: apenas para fpm e fpm-apache
  2. Sobrescrita de Valores: Os valores padrão podem ser sobrescritos no momento da execução do container usando:

    docker run -e VARIAVEL=valor ...
    
  3. Variáveis Interdependentes: Algumas variáveis são interdependentes e devem ser configuradas em conjunto:

    • PHP-FPM: PHP_PM_CONTROL afeta o comportamento de outras variáveis PM
    • Apache: APACHE_THREAD_LIMIT deve ser maior que APACHE_THREADS_PER_CHILD
  4. Segurança: Configurações de segurança são aplicadas automaticamente:

    • open_basedir é configurado para limitar acesso a diretórios
    • session.cookie_secure é habilitado por padrão
    • Logs são redirecionados para stdout/stderr
  5. Performance: As configurações padrão são otimizadas para produção:

    • OPcache está habilitado e configurado para performance
    • PHP-FPM usa modo dynamic para melhor gerenciamento de recursos
    • Apache usa mpm_event para melhor performance
Docker compose exemplo:
services:
  app:
    container_name: php_app
    hostname: your-hostname-to-container
    restart: always
    image: nextstage/php:${PHP_VERSION}-fpm-apache
    ports:
      - 80:80
    volumes:
      - .:/var/www/html
      - ../persist/redis-data:/var/lib/redis/data
    env_file:
      - ./.env
    extra_hosts:
      - "host.docker.internal:host-gateway"

Tag summary

Content type

Image

Digest

sha256:228525045

Size

471.7 MB

Last updated

about 2 months ago

docker pull nextstage/php:8.5-fpm-apache-dev-trixie