PHP 8.4.2 Released!

Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração do OPcache
Nome Padrão Modificável Registro de Alterações
opcache.enable 1 INI_ALL  
opcache.enable_cli 0 INI_SYSTEM Entre PHP 7.1.2 e 7.1.6 inclusive, o padrão era 1
opcache.memory_consumption 128 INI_SYSTEM  
opcache.interned_strings_buffer 8 INI_SYSTEM  
opcache.max_accelerated_files 10000 INI_SYSTEM  
opcache.max_wasted_percentage 5 INI_SYSTEM  
opcache.use_cwd 1 INI_SYSTEM  
opcache.validate_timestamps 1 INI_ALL  
opcache.revalidate_freq 2 INI_ALL  
opcache.revalidate_path 0 INI_ALL  
opcache.save_comments 1 INI_SYSTEM  
opcache.fast_shutdown 0 INI_SYSTEM Removido no PHP 7.2.0
opcache.enable_file_override 0 INI_SYSTEM  
opcache.optimization_level 0x7FFEBFFF INI_SYSTEM Alterado de 0x7FFFBFFF no PHP 7.3.0
opcache.inherited_hack 1 INI_SYSTEM Removido no PHP 7.3.0
opcache.dups_fix 0 INI_ALL  
opcache.blacklist_filename "" INI_SYSTEM  
opcache.max_file_size 0 INI_SYSTEM  
opcache.consistency_checks 0 INI_ALL Desativado a partir do 8.1.18 e 8.2.5. Removido a partir do PHP 8.3.0
opcache.force_restart_timeout 180 INI_SYSTEM  
opcache.error_log "" INI_SYSTEM  
opcache.log_verbosity_level 1 INI_SYSTEM  
opcache.record_warnings 0 INI_SYSTEM Disponível a partir do PHP 8.0.0
opcache.preferred_memory_model "" INI_SYSTEM  
opcache.protect_memory 0 INI_SYSTEM  
opcache.mmap_base null INI_SYSTEM  
opcache.restrict_api "" INI_SYSTEM  
opcache.file_update_protection 2 INI_ALL  
opcache.huge_code_pages 0 INI_SYSTEM  
opcache.lockfile_path "/tmp" INI_SYSTEM  
opcache.opt_debug_level 0 INI_SYSTEM Disponível a partir do PHP 7.1.0
opcache.file_cache null INI_SYSTEM  
opcache.file_cache_only 0 INI_SYSTEM  
opcache.file_cache_consistency_checks 1 INI_SYSTEM  
opcache.file_cache_fallback 1 INI_SYSTEM Somente Windows.
opcache.validate_permission 0 INI_SYSTEM Disponível a partir do PHP 7.0.14
opcache.validate_root 0 INI_SYSTEM Disponível a partir do PHP 7.0.14
opcache.preload "" INI_SYSTEM Disponível a partir do PHP 7.4.0
opcache.preload_user "" INI_SYSTEM Disponível a partir do PHP 7.4.0
opcache.cache_id "" INI_SYSTEM Somente Windows. Disponível a partir do PHP 7.4.0
opcache.jit "tracing" INI_ALL Disponível a partir do PHP 8.0.0
opcache.jit_buffer_size 0 INI_SYSTEM Disponível a partir do PHP 8.0.0
opcache.jit_debug 0 INI_ALL Disponível a partir do PHP 8.0.0
opcache.jit_bisect_limit 0 INI_ALL Disponível a partir do PHP 8.0.0
opcache.jit_prof_threshold 0.005 INI_ALL Disponível a partir do PHP 8.0.0
opcache.jit_max_root_traces 1024 INI_SYSTEM Disponível a partir do PHP 8.0.0
opcache.jit_max_side_traces 128 INI_SYSTEM Disponível a partir do PHP 8.0.0
opcache.jit_max_exit_counters 8192 INI_SYSTEM Disponível a partir do PHP 8.0.0
opcache.jit_hot_loop 64 INI_SYSTEM Disponível a partir do PHP 8.0.0
opcache.jit_hot_func 127 INI_SYSTEM Disponível a partir do PHP 8.0.0
opcache.jit_hot_return 8 INI_SYSTEM Disponível a partir do PHP 8.0.0
opcache.jit_hot_side_exit 8 INI_SYSTEM Disponível a partir do PHP 8.0.0
opcache.jit_blacklist_root_trace 16 INI_ALL Disponível a partir do PHP 8.0.0
opcache.jit_blacklist_side_trace 8 INI_ALL Disponível a partir do PHP 8.0.0
opcache.jit_max_loop_unrolls 8 INI_ALL Disponível a partir do PHP 8.0.0
opcache.jit_max_recursive_calls 2 INI_ALL Disponível a partir do PHP 8.0.0
opcache.jit_max_recursive_returns 2 INI_ALL Disponível a partir do PHP 8.0.0
opcache.jit_max_polymorphic_calls 2 INI_ALL Disponível a partir do PHP 8.0.0
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

opcache.enable bool

Habilita o cache opcode. Quando desabilitado, o código não é otimizado ou armazenado em cache. A configuração opcache.enable não pode ser habilitada em tempo de execução através de ini_set(), ela só pode ser desabilitada. Tentar ativá-lo em um script gerará um aviso.

opcache.enable_cli bool

Ativa o cache opcode para a versão CLI do PHP.

opcache.memory_consumption int

O tamanho do armazenamento de memória compartilhada usado pelo OPcache, em megabytes. O valor mínimo permitido é "8", que é aplicado se um valor menor for definido.

opcache.interned_strings_buffer int

A quantidade de memória usada para armazenar strings internas, em megabytes. O valor máximo é de 32767 em arquiteturas de 64 bits., e 4095 nas de 32 bits.

Nota: Antes do PHP 8.4.0, o valor máximo era de 4095 megabytes para todas as arquiteturas.

opcache.max_accelerated_files int

O número máximo de chaves (e, portanto, scripts) na tabela de hash do OPcache. O valor real usado será o primeiro número no conjunto de números primos { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 } que é maior ou igual ao valor configurado. O valor mínimo é 200. O valor máximo é 1.000.000. Valores fora desta faixa são fixados na faixa permitida.

opcache.max_wasted_percentage int

A porcentagem máxima de memória desperdiçada que é permitida antes de uma reinicialização ser planejada, se houver memória livre insuficiente. O valor máximo permitido é "50", que é aplicado se um valor maior for definido.

opcache.use_cwd bool

Se ativado, o OPcache anexa o diretório de trabalho atual à chave de script, eliminando assim possíveis colisões entre arquivos com o mesmo nome de base. Desativar esta diretiva melhora o desempenho, mas pode interromper os aplicativos existentes.

opcache.validate_timestamps bool

Se ativado, o OPcache verificará os scripts atualizados a cada opcache.revalidate_freq segundos. Quando esta diretiva é desativada, você deve redefinir o OPcache manualmente via opcache_reset(), opcache_invalidate() ou reiniciando o servidor Web para que as alterações no sistema de arquivos entrem em vigor.

Nota: O OPcache ainda pode validar o carimbo de data e hora de um arquivo durante o tempo de compilação se as opções opcache.file_update_protection ou opcache.max_file_size estiverem definidas com valores diferentes de zero.

opcache.revalidate_freq int

Com que frequência verificar carimbos de data/hora do script para atualizações, em segundos. 0 resultará na verificação de atualizações do OPcache em cada solicitação.

Esta diretiva de configuração será ignorada se opcache.validate_timestamps estiver desativado.

opcache.revalidate_path bool

Se desativado, os arquivos em cache existentes usando o mesmo include_path serão reutilizados. Assim, se um arquivo com o mesmo nome estiver em outro lugar no include_path, ele não será encontrado.

opcache.save_comments bool

Se desativado, todos os comentários da documentação serão descartados do cache do opcode para reduzir o tamanho do código otimizado. Desativar esta diretiva de configuração pode interromper aplicativos e frameworks que dependem da análise de comentários para anotações, incluindo Doctrine, Zend Framework 2 e PHPUnit.

opcache.fast_shutdown bool

Se ativado, uma sequência de desligamento rápido é usada que não libera cada bloco alocado, mas depende do gerenciador de memória do Zend Engine para desalocar todo o conjunto de variáveis de solicitação em massa.

Esta diretiva foi removida no PHP 7.2.0. Uma variante da sequência de desligamento rápido foi integrada ao PHP e será usada automaticamente, se possível.

opcache.enable_file_override bool

Quando ativado, o cache opcode será verificado para saber se um arquivo já foi armazenado em cache quando file_exists(), is_file() e is_readable() são chamados. Isso pode aumentar o desempenho em aplicativos que verificam a existência e legibilidade de scripts PHP, mas corre o risco de retornar dados desatualizados se opcache.validate_timestamps estiver desabilitado.

opcache.optimization_level int

Uma máscara de bits que controla quais passos de otimização são executados. O padrão é aplicar todas as otimizações seguras. Alterar o padrão é mais útil para depurar/desenvolver o otimizador (consulte também opcache.opt_debug_level).

opcache.inherited_hack bool

Esta diretiva de configuração é ignorada.

opcache.dups_fix bool

Este hack só deve ser ativado para contornar os erros "Cannot redeclare class".

opcache.blacklist_filename string

A localização do arquivo de blacklist do OPcache. Um arquivo de blacklist é um arquivo de texto contendo os nomes dos arquivos que não devem ser acelerados, um por linha. Curingas(*) são permitidos e prefixos também podem ser fornecidos. As linhas iniciadas com ponto e vírgula são ignoradas como comentários.

Um arquivo de blacklist simples pode ter a seguinte aparência:

; Corresponde a um arquivo específico.
/var/www/broken.php
; Um prefixo que corresponde a todos os arquivos que começam com x.
/var/www/x
; Uma correspondência curinga.
/var/www/*-broken.php
opcache.max_file_size int

O tamanho máximo do arquivo que será armazenado em cache, em bytes. Se for 0, todos os arquivos serão armazenados em cache.

opcache.consistency_checks int

Se diferente de zero, o OPcache verificará a soma de verificação do cache a cada N solicitações, onde N é o valor desta diretiva de configuração. Isso só deve ser ativado durante a depuração, pois prejudicará o desempenho.

Nota:

Desativado a partir do 8.1.18 e 8.2.5. Removido a partir do PHP 8.3.0.

opcache.force_restart_timeout int

O tempo de espera para iniciar uma reinicialização agendada se o cache não estiver ativo, em segundos. Se o tempo limite for atingido, o OPcache assumirá que algo está errado e eliminará os processos que mantêm bloqueios no cache para permitir uma reinicialização.

Se opcache.log_verbosity_level for definido como 2 ou superior, um aviso será registrado no log de erros quando isso ocorrer.

Esta diretiva não é suportada no Windows.

opcache.error_log string

O log de erros para erros do OPcache. Uma string vazia é tratada da mesma forma que stderr e resultará no envio de logs para erro padrão (que será o log de erro do servidor Web na maioria dos casos).

opcache.log_verbosity_level int

O nível de verbosidade do log. Por padrão, apenas erros fatais (nível 0) e erros (nível 1) são registrados. Outros níveis disponíveis são avisos (nível 2), mensagens informativas (nível 3) e mensagens de depuração (nível 4).

opcache.record_warnings bool

Se ativado, o OPcache registrará avisos em tempo de compilação e os reproduzirá na próxima inclusão, mesmo que seja servido do cache.

opcache.preferred_memory_model string

O modelo de memória preferencial para uso do OPcache. Se deixado em branco, o OPcache escolherá o modelo mais adequado, que é o comportamento correto em praticamente todos os casos.

Os valores possíveis incluem mmap, shm, posix and win32.

opcache.protect_memory bool

Protege a memória compartilhada contra gravações inesperadas durante a execução de scripts. Isso é útil apenas para depuração interna.

opcache.mmap_base string

A base usada para segmentos de memória compartilhada no Windows. Todos os processos PHP precisam mapear a memória compartilhada no mesmo espaço de endereço. O uso desta diretiva permite que os erros "Unable to reattach to base address" sejam corrigidos.

opcache.restrict_api string

Permite chamar funções da API do OPcache apenas de scripts PHP cujo caminho é iniciado a partir da string especificada. O padrão "" significa nenhuma restrição.

opcache.file_update_protection string

Impede o armazenamento em cache de arquivos que tenham menos de um determinado número de segundos desde a última modificação. Isso protege contra o armazenamento em cache de arquivos que tenham sido atualizados de forma incompleta. Caso todas as atualizações forem atômicas, o desempenho pode ser aumentado definindo isso como 0. Isso permitirá que os arquivos sejam armazenados em cache imediatamente.

opcache.huge_code_pages bool

Ativa ou desativa a cópia do código PHP (segmento de texto) em PÁGINAS ENORMES. Isso deve melhorar o desempenho, mas requer configuração de sistema operacional apropriada. Disponível no Linux a partir do PHP 7.0.0 e no FreeBSD a partir do PHP 7.4.0.

opcache.lockfile_path string

Caminho absoluto usado para armazenar arquivos de bloqueio compartilhados (somente para * nix)

opcache.opt_debug_level string

Produz opcode dumps para depurar diferentes estágios de otimizações. 0x10000 produzirá opcodes conforme o compilador os produziu antes que qualquer otimização ocorra, enquanto 0x20000 produzirá códigos otimizados.

opcache.file_cache string

Ativa e define o diretório de cache de segundo nível. Ele deve melhorar o desempenho quando a memória SHM estiver cheia, na reinicialização do servidor ou na reinicialização do SHM. O padrão "" desativa o cache baseado em arquivo.

opcache.file_cache_only bool

Ativa ou desativa o armazenamento em cache opcode na memória compartilhada.

Nota:

Antes do PHP 8.1.0, desabilitar esta diretiva com um cache de arquivo já preenchido era necessário para limpar manualmente o cache de arquivo.

opcache.file_cache_consistency_checks bool

Ativa ou desativa a validação da soma de verificação quando o script é carregado do cache do arquivo.

opcache.file_cache_fallback bool

Implica em opcache.file_cache_only=1 para um determinado processo que falhou ao se reconectar à memória compartilhada (somente para Windows). É necessário habilitar explicitamente o cache de arquivos.

Cuidado

Desativar esta opção de configuração pode impedir que os processos sejam iniciados e, portanto, é desencorajado.

opcache.validate_permission bool

Valida as permissões do arquivo em cache no usuário atual.

opcache.validate_root bool

Evita colisões de nomes em ambientes chroot'ed. Isso deve ser ativado em todos os ambientes chroot'ed para impedir o acesso a arquivos fora do chroot.

opcache.preload string

Especifica um script PHP que será compilado e executado na inicialização do servidor e que pode pré-carregar outros arquivos, seja por includeing ou usando a função opcache_compile_file(). Todas as entidades (por exemplo, funções e classes) definidas nesses arquivos estarão disponíveis para solicitações prontas para uso, até que o servidor seja desligado.

Nota:

O pré-carregamento não é suportado no Windows.

opcache.preload_user string

Permite que o pré-carregamento seja executado como o usuário do sistema especificado. Isso é útil para servidores que inicializam como root antes de alternar para um usuário de sistema sem privilégios. O pré-carregamento como root não é permitido por padrão por motivos de segurança, a menos que esta diretiva seja explicitamente definida como root. A partir do PHP 8.3.0, esta diretiva não precisa ser definida para permitir pré-carregamento quando executado como root ao usar o CLI SAPI ou o SAPI phpdbg.

opcache.cache_id string

No Windows, todos os processos executando o mesmo PHP SAPI na mesma conta de usuário com o mesmo ID de cache compartilham uma única instância do OPcache. O valor do cache ID pode ser escolhido livremente.

Dica

Para IIS, diferentes pools de aplicativos podem ter sua própria instância OPcache usando a variável de ambiente APP_POOL_ID como opcache.cache_id.

opcache.jit string|int

Para uso típico, esta opção aceita um dos quatro valores de string:

  • disable: Completamente desativado, não pode ser ativado em tempo de execução.
  • off: Desativado, mas pode ser ativado em tempo de execução.
  • tracing/on:Use rastreamento JIT. Ativado por padrão e recomendado para a maioria dos usuários.
  • function: Use function JIT.

Para uso avançado, esta opção aceita um CRTO inteiro de 4 dígitos, onde os dígitos significam:

C (CPU-sinalizadores de otimização específicos)
  • 0: Desative a otimização específica da CPU.
  • 1: Habilite o uso do AVX, se a CPU for compatível.
R (alocação de registro)
  • 0: Não execute alocação de registro.
  • 1: Execute a alocação de registrador local de bloco.
  • 2: Execute a alocação global de registradores.
T (gatilho(trigger))
  • 0: Compile todas as funções no carregamento do script.
  • 1: Compile funções na primeira execução.
  • 2: Funções de perfil no primeiro pedido e compilação das funções mais quentes depois.
  • 3: Crie perfis em tempo real e compile funções importantes.
  • 4: Atualmente sem uso.
  • 5: Use tracing JIT. Crie perfis em tempo real e compile rastreamentos para segmentos de código dinâmico.
O (nível de otimização)
  • 0: Sem JIT.
  • 1: JIT mínimo (chamada de manipuladores de VM padrão).
  • 2: Manipuladores de VM embutidos.
  • 3: Use inferência de tipo.
  • 4: Usar gráfico de chamada.
  • 5: Otimize todo o script.
O modo "tracing" corresponde a CRTO = 1254, o modo "function" corresponde a CRTO = 1205.

opcache.jit_buffer_size int

A quantidade de memória compartilhada a ser reservada para o código JIT compilado. Um valor zero desativa o JIT.

Quando um int é usado, o valor é medido em bytes. A notação abreviada, como descrita nesta FAQ, também pode ser usada.
opcache.jit_debug int

Uma máscara de bits especificando qual saída de depuração JIT habilitar. Para possíveis valores, consulte » zend_jit.h (procure por definições de macro começando com ZEND_JIT_DEBUG).

opcache.jit_bisect_limit int

Opção de depuração que desativa a compilação JIT após a compilação de um determinado número de funções. Isso pode ser útil para dividir a origem de um erro de compilação JIT. Observação: esta opção só funciona quando o gatilho JIT é definido como 0 (compilar no carregamento do script) ou 1 (compilar na primeira execução), por exemplo, opcache.jit=1215. Veja mais na opção opcache.jit.

opcache.jit_prof_threshold float

Ao usar o modo de trigger "profile on first request", esse limite determina se uma função é considerada ativa. O número de chamadas para a função dividido pelo número de chamadas para todas as funções deve estar acima do limite. Por exemplo, um limite de 0,005 significa que as funções que representam mais de 0,5% de todas as chamadas serão compiladas por JIT.

opcache.jit_max_root_traces int

Número máximo de root traces. O root trace é um fluxo de execução que percorre primeiro um caminho através do código, que é uma unidade de compilação JIT. O JIT não compilará o novo código se atingir esse limite.

opcache.jit_max_side_traces int

Número máximo de side traces que um root trace pode ter. O side trace é outro fluxo de execução que não segue o caminho do root trace compilado. Os sides traces pertencentes ao mesmo root trace não serão compilados se atingirem esse limite.

opcache.jit_max_exit_counters int

Número máximo de contadores de saída de side trace. Isso limita o número total de side traces que podem existir, em todos os root traces.

opcache.jit_hot_loop int

Depois de quantas iterações um laço é considerado ativo. O intervalo de valores válidos é [0,255]; para qualquer configuração fora desse intervalo, por exemplo, -1 ou 256, o valor padrão será usado. O valor 0 desabilitará o JIT para rastrear ou compilar quaisquer laços.

opcache.jit_hot_func int

Depois de quantas chamadas uma função é considerada ativa. O intervalo de valores válidos é [0,255]; para qualquer configuração fora desse intervalo, por exemplo, -1 ou 256, o valor padrão será usado. O valor 0 desabilitará o JIT para rastrear e compilar quaisquer funções.

opcache.jit_hot_return int

Depois de quantos retornos, um retorno é considerado ativo. O intervalo de valores válidos é [0,255]; para qualquer configuração fora desse intervalo, por exemplo, -1 ou 256, o valor padrão será usado. O valor 0 desabilitará o JIT para rastrear e compilar quaisquer retornos.

opcache.jit_hot_side_exit int

Depois de quantas saídas uma saída secundária é considerada ativa. O intervalo de valores válidos é [0,255]; para qualquer configuração fora desse intervalo, por exemplo, -1 ou 256, o valor padrão será usado. O valor zero 0 desabilitará o JIT para rastrear e compilar quaisquer saídas secundárias.

opcache.jit_blacklist_root_trace int

Número máximo de vezes que a compilação de um root trace é tentada antes de ser incluída na blacklist.

opcache.jit_blacklist_side_trace int

Número máximo de vezes que a compilação de um side trace é tentada antes de ser incluída na blacklist.

opcache.jit_max_loop_unrolls int

Número máximo de tentativas de resolver um loop em um traço lateral, tentando alcançar o root trace e fechar o loop externo.

opcache.jit_max_recursive_calls int

Número máximo de loops de chamada recursiva.

opcache.jit_max_recursive_returns int

Número máximo de loops de retorno recursivos.

opcache.jit_max_polymorphic_calls int

Número máximo de tentativas de chamadas polimórficas (dinâmicas ou de método) embutidas. As chamadas acima desse limite são tratadas como megamórficas e não são embutidas.

adicione uma nota

Notas Enviadas por Usuários (em inglês) 7 notes

up
20
damien at overeem dot org
7 years ago
When using PHP on a windows platform and enabling opcache, you might run into occasional 500 errors. These will appear to show up entirely random.

When this happens, your windows Event log (Windows Logs/Application) will show (probably multiple) entries from Zend OPcache with Event ID 487. Further information will state the following error message: "Base address marks unusable memory region".

This issue can be resolved by adding the following to your php.ini:

opcache.mmap_base = 0x20000000

Unfortunately I do not know the significance of the value "0x20000000". I can only tell you that this value works to solve the problem (Tried and tested)
up
8
carneiro at isharelife dot com dot br
4 years ago
If you try to allocate more memory that is available using opcache.memory_consumption PHP stops working without any logs to help on debugging. This issue took me 4 hours to solve when creating a staging server with same configrations and less memory that was available on production server.
up
9
wessos at example dot org
6 years ago
The optimization levels as of php 7.3 are the following:

#define ZEND_OPTIMIZER_PASS_1 (1<<0) /* CSE, STRING construction */
#define ZEND_OPTIMIZER_PASS_2 (1<<1) /* Constant conversion and jumps */
#define ZEND_OPTIMIZER_PASS_3 (1<<2) /* ++, +=, series of jumps */
#define ZEND_OPTIMIZER_PASS_4 (1<<3) /* INIT_FCALL_BY_NAME -> DO_FCALL */
#define ZEND_OPTIMIZER_PASS_5 (1<<4) /* CFG based optimization */
#define ZEND_OPTIMIZER_PASS_6 (1<<5) /* DFA based optimization */
#define ZEND_OPTIMIZER_PASS_7 (1<<6) /* CALL GRAPH optimization */
#define ZEND_OPTIMIZER_PASS_8 (1<<7) /* SCCP (constant propagation) */
#define ZEND_OPTIMIZER_PASS_9 (1<<8) /* TMP VAR usage */
#define ZEND_OPTIMIZER_PASS_10 (1<<9) /* NOP removal */
#define ZEND_OPTIMIZER_PASS_11 (1<<10) /* Merge equal constants */
#define ZEND_OPTIMIZER_PASS_12 (1<<11) /* Adjust used stack */
#define ZEND_OPTIMIZER_PASS_13 (1<<12) /* Remove unused variables */
#define ZEND_OPTIMIZER_PASS_14 (1<<13) /* DCE (dead code elimination) */
#define ZEND_OPTIMIZER_PASS_15 (1<<14) /* (unsafe) Collect constants */
#define ZEND_OPTIMIZER_PASS_16 (1<<15) /* Inline functions */

Source: https://lxr.room11.org/xref/php-src%40master/ext/opcache/Optimizer/zend_optimizer.h
up
6
tizian dot schmidlin at gmail dot com
5 years ago
It should be noted that according to the original RFC (https://wiki.php.net/rfc/preload) `opcache.preload` caches preloaded files *forever* for all instances of the underlying PHP process.

That means, that hosting multiple websites on the same server might result in some unexpected behaviour.

Concrete example:
- you have a Symfony 3.2 App (which might be an endpoint of some type) and a Symfony 3.4 App (which might be your main application)
- both apps have a main Class called App that is in the same namespace (as it is usual, since the class name is unique to each project)
- depending on which app is loaded first, one or the other will work, since `opcache.preload` has no file based distinction of what class is used where and simply provides them to the user space

This is avoidable by simply not preloading user space classes or, if you work with FPM, by defining a pool for each app.

In order to optimize memory consumption, you might also use a common FPM Pool for all Symfony 3.4 Apps and preload the entire framework in there and simply not preload user space classes (which might be cached by opcache anyway but is slower, since it will be checked if the file has changed on every request).
up
4
bdurand at ensemblegroup dot net
7 years ago
It would appear as though the [opcache.enable] setting is indeed NOT PHP_INI_ALL.
For changing it within user.ini yields no effect when disabled at global level. user.ini is ignored for that setting.
up
1
JReezy
7 months ago
Despite the set of values for opcache.max_accelerated_files including the value 1048793, the maximum as stated is 1000000. If you select a number above 1000000 the value is set its default which is 10000.
up
0
daniel at elementor dot com
6 months ago
When opcache.use_cwd=0 include/require of relative paths from different directories will both resolve to the same (first) file.

Example dir structure:
app1
index.php
lib.php
app2
index.php
lib.php

both index.php(s):
include "lib.php";

app1/lib.php:
echo "app1";

app2/lib.php:
echo "app2";

both will echo "app1".
To Top