Alternative PHP Cache (APC) é um cache de código otimizado gratuito e público para PHP. Ele é usado para fornecer uma estrutura gratuita, aberta e robusta para armazenar em cache e otimizar código intermediário PHP.
O site oficial da APC é http://pecl.php.net/package/apc .
O
endereço de download do módulo de expansão no Windows é http://www.sitebuddy.com/php/accelerators/apc_windows_binaries_builds.
requer o diretório c:tmp e o diretório deve ser gravável pelo processo do servidor web.
1. Instale
como extensão PHP
2. Configure
a opção de otimizaçãobooleana
apc.optimization
apc.enabledAPC pode ser alterada no script
Explicação detalhada das opções de configuração do PHP.ini
[APC]
Cache PHP alternativo é usado para armazenar em cache e otimizar o PHP intermediário. code
apc.cache_by_default = On
;SYS
Se deve ativar o buffer para todos os arquivos por padrão.
; Se definido como Off e usado com a diretiva apc.filters começando com um sinal de mais, os arquivos só serão armazenados em cache se corresponderem a um filtro.
apc.enable_cli = Off
;SYS
; Se deseja ativar a função APC para a versão CLI, ative este comando apenas para fins de teste e depuração.
apc.enabled = On
; Se o APC for compilado estaticamente no PHP e você quiser desativá-lo, esta é a única maneira.
apc.file_update_protection = 2
;SYS
; Ao modificar arquivos em um servidor em execução, você deve executar operações atômicas.
; Ou seja, primeiro grave em um arquivo temporário e depois renomeie (mv) o arquivo com o nome final.
; Editores de texto e programas como cp e tar não funcionam dessa maneira, resultando na possibilidade de armazenar arquivos incompletos em buffer.
; O valor padrão 2 significa que ao acessar um arquivo, se o tempo de modificação for inferior a 2 segundos do tempo de acesso, nenhum buffer será executado.
; O visitante azarado pode obter conteúdo corrompido, mas o efeito negativo não é amplificado pelo cache.
; Se você puder garantir que todas as operações de atualização sejam atômicas, poderá desativar esse recurso com 0.
; Se o seu sistema for atualizado lentamente devido a operações pesadas de E/S, talvez seja necessário aumentar esse valor.
apc.filters =
;SYS
; Uma lista separada por vírgulas de expressões regulares estendidas POSIX.
; Se o nome do arquivo de origem corresponder a algum dos padrões, o arquivo não será armazenado em cache.
; Observe que o nome do arquivo usado para corresponder é o nome do arquivo passado para incluir/exigir, não o caminho absoluto.
; Se o primeiro caractere da expressão regular for "+", significa que qualquer arquivo que corresponda à expressão será armazenado em cache.
Se o primeiro caractere for "-", nenhuma correspondência será armazenada em cache. "-" é o valor padrão e pode ser omitido.
apc.ttl = 0
;SYS
; O número de segundos que uma entrada de cache pode permanecer no buffer. 0 significa que nunca expira. O valor recomendado é 7200~36000.
; Definir como 0 significa que o buffer pode ficar cheio de entradas de cache antigas, impedindo que novas entradas sejam armazenadas em cache.
apc.user_ttl = 0
;SYS
; Semelhante a apc.ttl, mas para cada usuário, o valor recomendado é 7200~36000.
; Definir como 0 significa que o buffer pode ficar cheio de entradas de cache antigas, impedindo que novas entradas sejam armazenadas em cache.
apc.gc_ttl = 3600
;SYS
; O número de segundos que uma entrada de cache pode existir na tabela de coleta de lixo.
; Este valor fornece uma medida de segurança para que mesmo se um processo do servidor falhar durante a execução de um arquivo de origem em cache,
e o arquivo de origem tiver sido modificado, a memória alocada para a versão antiga não será recuperada até que esse valor TTL seja alcançado.
; Defina como zero para desativar esse recurso.
apc.include_once_override = Off
;SYS
; Por favor, mantenha-o desligado, caso contrário, poderá causar resultados inesperados.
apc.max_file_size = 1M
;SYS
Desativa o armazenamento em cache de arquivos maiores que esse tamanho.
apc.mmap_file_mask =
; SYS
; Se o suporte MMAP foi compilado para APC usando --enable-mmap (habilitado por padrão),
; o valor aqui é a máscara de arquivo no estilo mktemp passada para o módulo mmap (o valor recomendado é "/tmp). /apc.XXXXXX").
; Esta máscara é usada para determinar se a área mapeada de memória deve ser apoiada por arquivo ou por memória compartilhada.
; Para mapeamento direto de memória com suporte de arquivo, defina-o como "/tmp/apc.XXXXXX" (exatamente 6 X).
; Para usar shm_open/mmap no estilo POSIX, ele precisa ser definido como "/apc.shm.XXXXXX".
; Você também pode definir como "/dev/zero" para usar a interface "/dev/zero" do kernel para memória mapeada anonimamente.
; A não definição desta diretiva força o uso de mapeamento anônimo.
apc.num_files_hint = 1000
; SYS
; O número aproximado de diferentes arquivos de origem que podem ser incluídos ou solicitados no servidor Web (o valor recomendado é 1024~4096).
; Se não tiver certeza, defina como 0; Esta configuração é usada principalmente para sites com milhares de arquivos de origem.
apc.optimization = 0
; Nível de otimização (o valor recomendado é 0).
; Um valor inteiro positivo habilita o otimizador, com valores mais altos usando otimizações mais agressivas.
; Valores mais altos podem ter melhorias de velocidade muito limitadas, mas atualmente são experimentais.
apc.report_autofilter = Off
;SYS
Se deseja registrar todos os scripts que não são armazenados automaticamente em cache devido a motivos de ligação antecipada/tardia.
apc.shm_segments = 1
;SYS
; O número de blocos de memória compartilhada alocados para o buffer do compilador (o valor recomendado é 1).
; Se a APC ficar sem memória compartilhada e a diretiva apc.shm_size tiver sido definida para o máximo permitido pelo sistema,
você pode tentar aumentar esse valor.
apc.shm_size = 30
; SYS
; O tamanho de cada bloco de memória compartilhada (em MB, o valor recomendado é 128~256).
; Alguns sistemas (incluindo a maioria das variantes do BSD) possuem um tamanho de bloco de memória compartilhada padrão muito pequeno.
apc.slam_defense = 0
;SYS (É contra o uso desta instrução, é recomendado usar a instrução apc.write_lock)
; Em um servidor muito ocupado, seja iniciando um serviço ou modificando um arquivo,
pode ser causado por; vários processos tentando armazenar em cache um arquivo ao mesmo tempo Causa uma condição de corrida.
; Esta diretiva é usada para definir a porcentagem na qual o processo pula a etapa de armazenamento em cache ao processar arquivos não armazenados em cache.
; Por exemplo, defini-lo como 75 significa que há 75% de probabilidade de não armazenar em cache quando um arquivo não armazenado em cache é encontrado, reduzindo assim a chance de colisão.
; Incentivado a ser definido como 0 para desativar esse recurso.
apc.stat = On
;SYS
; Se deseja ativar a verificação de atualização de script.
; Tenha muito cuidado ao alterar o valor desta diretiva.
; O valor padrão On indica que a APC verifica se o script foi atualizado sempre que for solicitado
; se for atualizado, ele recompila e armazena em cache automaticamente o conteúdo compilado. No entanto, fazer isso tem um impacto negativo no desempenho.
; Se definido como Off, nenhuma verificação será realizada, melhorando bastante o desempenho.
; Mas para que o conteúdo atualizado tenha efeito, você deve reiniciar o servidor web.
; Esta diretiva também é válida para arquivos include/require. Mas deve-se observar que
; se você usar um caminho relativo, a APC deverá verificar para localizar o arquivo sempre que incluir/exigir.
; Usar caminhos absolutos pode ignorar a verificação, portanto, recomendamos usar caminhos absolutos para operações de inclusão/exigência.
apc.user_entries_hint = 100
;SYS
; Semelhante à diretiva num_files_hint, mas para cada usuário diferente.
; Se você não tiver certeza, defina como 0.
apc.write_lock = On
;SYS
; Se deseja ativar o bloqueio de gravação.
; Em um servidor muito ocupado, seja iniciando um serviço ou modificando um arquivo,
uma condição de corrida pode resultar de vários processos tentando armazenar um arquivo em cache ao mesmo tempo.
; Habilite esta diretiva para evitar condições de corrida.
apc.rfc1867 = Off
;SYS
; Após ativar esta diretiva, para cada arquivo carregado que contém o campo APC_UPLOAD_PROGRESS logo antes do campo do arquivo,
a APC criará automaticamente uma entrada de cache do usuário para upload_ (ou seja, o valor do campo APC_UPLOAD_PROGRESS).
3. Função
apc_cache_info - Recupera informações armazenadas em cache (e metadados) do armazenamento de dados da APC
apc_clear_cache - Limpa o cache APC
apc_define_constants - Define um conjunto de constantes para recuperação posterior e definição em massa
apc_delete – Remove uma variável armazenada do cache
apc_fetch – Busca uma variável armazenada no cache
apc_load_constants – Carrega um conjunto de constantes do cache
apc_sma_info - Recupera informações de alocação de memória compartilhada da APC
apc_store - Armazenar em cache uma variável no armazenamento de dados
O uso do apc é relativamente simples, com apenas algumas funções, listadas abaixo.
apc_cache_info() retorna informações de cache.
apc_clear_cache() limpa o conteúdo do cache apc.
Por padrão (sem parâmetros), apenas o cache do sistema é limpo. Para limpar o cache do usuário, use o parâmetro 'user'.
apc_define_constants (chave de string, constantes de array [, bool case_sensitive]) Adicione constantes de array ao cache como constantes.
apc_load_constants (chave de string).
Remova o cache constante.
apc_store (chave de string, var misto [, int ttl]).
Salve os dados no cache.
apc_fetch(chave de string).
Obtenha o conteúdo do cache apc_delete (chave de string) salvo por apc_store
.
Exclua o conteúdo salvo por apc_store.
Gerenciamento de Apc:
Vá para pecl.php.net para baixar o pacote de código-fonte do apc e lá está apc.php, copie-o para um local onde seu servidor web possa acessá-lo e navegue para acessá-lo.
As funções da interface de gerenciamento são:
1. Atualizar dados
2. Visualizar estatísticas do host
3. Entradas de cache do sistema
4. Entradas de cache do usuário
5. Verificação de versão