Este plugin gera arquivos html estáticos do seu blog dinâmico do WordPress. Depois que um arquivo html é gerado, o seu servidor servirá esse arquivo em vez de processar os scripts PHP do WordPress, que são comparativamente mais pesados e mais custosos.

Os arquivos estáticos em HTML serão exibidos para a grande maioria dos seus usuários:

  • Usuários que não estão conectados.
  • Usuários que não deixaram um comentário no seu blog.
  • Ou usuários que não visualizaram um post protegido por senha.

99% de seus visitantes receberão arquivos html estáticos. Um arquivo em cache pode ser servido milhares de vezes. Outros visitantes receberão arquivos em cache personalizados, adaptados à sua visita. Se estiverem conectados ou tiverem deixado comentários, esses detalhes serão exibidos e armazenados em cache para eles.

O plugin serve arquivos em cache de 3 maneiras (classificadas por velocidade):

  1. Avançado. O método mais rápido é usar o Apache mod_rewrite (ou qualquer outro módulo semelhante suportado pelo servidor web) para servir arquivos html estáticos “supercached”. Isso ignora completamente o PHP e é extremamente rápido. Se o seu servidor for atingido por um dilúvio de tráfego, é mais provável que ele atenda, pois as solicitações são “mais leves”. Isso requer o módulo mod_rewrite do Apache (que provavelmente está instalado se você tiver links permanentes personalizados) e uma modificação do seu arquivo .htaccess que é arriscado e pode derrubar o seu site se modificado incorretamente.
  2. Simples. Arquivos estáticos do supercache podem ser servidos pelo PHP e esta é a maneira recomendada de usar o plugin. O plugin servirá um arquivo em supercache se existir e é quase tão rápido quanto o método mod_rewrite. É mais fácil de configurar, pois o arquivo .htaccess não precisa ser alterado. Você ainda precisa de um link permanente personalizado. Você pode manter partes dinâmicas da sua página neste modo de cache.
  3. Cache pelo WP-Cache. Usado principalmente para armazenar em cache páginas de usuários conhecidos, URLs com parâmetros e feeds. Usuários conhecidos são usuários logados, visitantes que deixam comentários ou aqueles que devem receber dados personalizados por usuário. É o método de cache mais flexível e um pouco mais lento. Ele também armazenará em cache as visitas de usuários desconhecidos se o supercache estiver desativado. Você também pode ter partes dinâmicas em sua página neste modo. Esse modo está sempre ativado, mas você pode desativar o cache de usuários conhecidos, URLs com parâmetros ou feeds separadamente. Defina a constante “DISABLE_SUPERCACHE” como 1 no seu wp-config.php se você quiser usar apenas o cache do WP-Cache.

Se você não está confortável com a edição de arquivos PHP, use o modo simples. É fácil de configurar e muito rápido.

Configurações recomendadas

  1. Cache simples.
  2. Compactar páginas.
  3. Não fazer cache de páginas para usuários conhecidos.
  4. Reconstrução de cache.
  5. Suporte a CDN.
  6. Verificações extras na página inicial.

Coleta de lixo é o ato de limpar arquivos de cache que estão desatualizados e obsoletos. Não há valor correto para o tempo de expiração, mas um bom ponto de partida é de 1800 segundos.

Considere a exclusão do conteúdo da caixa de texto “Agentes de usuário rejeitados” e permita que os mecanismos de pesquisa armazenem arquivos em cache para você.

Pré-carregue o máximo de posts possível e ative o “Modo de pré-carregamento”. A coleta de lixo de arquivos antigos em cache será desativada. Se você não se importa com a atualizações frequentes de widgets da barra lateral, defina o intervalo de pré-carregamento para 2880 minutos (2 dias), assim todos os seus posts não são recarregadas com muita frequência. Quando o pré-carregamento ocorre, os arquivos de cache do post que está sendo atualizado são excluídos e depois regenerados. Depois, é realizada uma coleta de lixo com o objetivo de limpar os arquivos obsoletos ainda em cache.
Mesmo com o modo de pré-carregamento ativado, os arquivos em cache ainda serão excluídos quando posts forem modificados ou forem feitos comentários.

Desenvolvimento

Documentação

If you need more information than the following, you can have a look at the wiki or the Developer documentation.

Pré-carregamento

Você pode gerar arquivos em cache para os posts, categorias e tags do seu site através de pré-carregamento. O pré-carregamento visitará cada página do seu site, gerando uma página em cache à medida que avança, como qualquer outro visitante do site. Devido à natureza sequencial dessa função, pode levar algum tempo para pré-carregar um site completo, se houver muitos posts.
Para tornar o pré-carregamento mais eficaz, pode ser útil desativar a coleta de lixo para que os arquivos de cache mais antigos não sejam excluídos. Isso é feito ativando o “Modo de pré-carregamento” nas configurações. No entanto, esteja ciente de que as páginas ficarão eventualmente desatualizadas, mas que as atualizações enviando comentários ou editando posts limparão partes do cache.

Coleta de lixo

Com o passar do tempo, seu diretório de cache é preenchido, o que ocupa espaço no seu servidor. Se o espaço for limitado ou cobrado por capacidade ou se você se preocupar de que as páginas em cache do seu site fiquem obsoletas, a coleta de lixo deverá ser realizada. A coleta de lixo ocorre regularmente e exclui arquivos antigos no diretório de cache. Na página de configurações avançadas, você pode especificar:
1. Tempo limite do cache. Por quanto tempo os arquivos de cache são considerados atualizados. Após esse período, eles ficam obsoletos e podem ser excluídos.
2. Agendador. Configure com que frequência a coleta de lixo deve ser feita.
3. E-mails de notificação. Você pode ser informado sobre o andamento do trabalho de coleta de lixo.
Não há configurações certas ou erradas para a coleta de lixo. Depende do seu próprio site.
Se o seu site receber atualizações ou comentários regulares, defina o tempo limite para 1800 segundos e o temporizador para 600 segundos.
Se o seu site é principalmente estático, você pode desativar a coleta de lixo digitando 0 como tempo limite ou usar um valor de tempo limite muito grande.

O diretório de cache, geralmente wp-content/cache/, é apenas para arquivos temporários. Nunca coloque arquivos importantes ou links simbólicos pra arquivos ou diretórios importantes nesse diretório. Eles serão excluídos se o plugin tiver acesso de gravação a eles.

CDN

Uma rede de entrega de conteúdo (CDN) é geralmente uma rede de computadores localizados em todo o mundo que servirá o conteúdo do seu site mais rapidamente usando servidores próximos a você. Arquivos estáticos, como imagens, arquivos JavaScript e CSS, podem ser veiculados por essas redes para acelerar a velocidade de carregamento do site. Você também pode criar uma “CDN mais simples” usando um subdomínio do seu domínio para servir também arquivos estáticos.

OSSDL CDN off-linker foi integrado ao WP Super Cache para fornecer suporte básico à CDN. Ele funciona reescrevendo os URLs dos arquivos (exceto arquivos .php) em wp-content e wp-includes no servidor, para que eles apontem para um nome de host diferente. Muitos CDNs suportam origin pull. Isso significa que a CDN baixará automaticamente o arquivo do seu servidor quando for solicitado pela primeira vez e continuará a servi-lo por um período configurável antes de baixá-lo novamente do seu servidor.

Configure isso na aba “CDN” da página de configurações do plugin. Essa é uma técnica avançada e requer um entendimento básico de como seu servidor web ou CDNs funcionam. Certifique-se de limpar o cache de arquivos depois de configurar o CDN.

API REST

Agora, existem endpoints da API REST para acessar as configurações deste plugin. Para fazer uso, você precisará ser autenticado como um usuário administrador com permissão para visualizar a página de configurações. Isso ainda não foi documentado, mas você pode encontrar todo o código que lida com isso no diretório “rest”.

Cache personalizado

Agora é possível conectar-se ao processo de armazenamento em cache usando a função add_cacheaction().

Três ganchos estão disponíveis:

  1. ‘wp_cache_get_cookies_values’ – modifica a chave usada pelo WP Cache.
  2. ‘add_cacheaction’ – é executado na fase2. Permite que um plugin adicione ganchos do WordPress.
  3. ‘cache_admin_page’ – é executado na página de administrador. Use-o para modificar essa página, talvez adicionando novas opções de configuração.

Também existe um filtro comum do WordPress. Use o filtro “do_createsupercache”
para personalizar as verificações feitas antes do armazenamento em cache. O filtro aceita um parâmetro.
A saída da função wp_cache_get_cookies_values() do WP-Cache.

WP Super Cache has its own plugin system, loaded before most of WordPress. Add your own plugin either by putting it in the wp-content/plugins/wp-super-cache-plugins directory, or by calling wpsc_add_plugin( $name ) with the full path to the plugin.

The cookies used to identify “known users” can be modified with wpsc_add_cookie( $name ) and wpsc_delete_cookie( $name ). See plugins/searchengine.php as an example.

Resolução de problemas

Se as coisas não funcionam quando você instalou o plugin, aqui estão algumas coisas para verificar:

  1. O wp-content é gravável pelo servidor web?
  2. Existe um wp-content/wp-cache-config.php? Caso contrário, copie o arquivo wp-super-cache/wp-cache-config-sample.php para wp-content/wp-cache-config.php e verificar se WPCACHEHOME aponta pro lugar certo.
  3. Existe um wp-content/advanced-cache.php? Caso contrário, você deve copiar wp-super-cache/advanced-cache.php para wp-content/. Você deve editar o arquivo e alterar o caminho para que ele aponte para a pasta wp-super-cache.
  4. Se as páginas não estiverem em cache, remova wp-content/advanced-cache.php e recrie-o, seguindo os conselhos acima.
  5. Certifique-se de que a seguinte linha existe em seu arquivo wp-config.php e que ela está ACIMA da linha “require_once(ABSPATH.’wp-settings.php’);”:

    define( 'WP_CACHE', true );
    
  6. Tente a página Configurações->WP Super Cache novamente e ative o cache.
  7. Olhe em wp-content/cache/supercache/. Existem diretórios e arquivos lá?
  8. Algo em seu error_log do php?
  9. Se o seu navegador continuar pedindo que você salve o arquivo após a instalação do super cache, desative a compactação do Super Cache. Vá para a página Configurações->WP Super Cache e desative-a lá.
  10. Erros de bloqueio de arquivo como “falha ao adquirir a chave 0x152b: permissão negada em …” ou “Página não armazenada em cache pelo WP Super Cache. Não foi possível obter o bloqueio mutex”. são um sinal de que talvez você precise usar o bloqueio de arquivos. Edite wp-content/wp-cache-config.php e remova o comentário de “$use_flock = true” ou defina $sem_id com um valor diferente. Como último recurso, você também pode desativar o bloqueio de arquivos na tela administrativa.
  11. Se estiver usando bloqueio grosseiro de arquivos, certifique-se de que o arquivo cache/wp_cache_mutex.lock seja gravável pelo servidor web.
  12. A pasta de cache não pode ser colocada em um compartilhamento NFS, Samba ou NAS. Tem que estar em um disco local. O bloqueio e a exclusão de arquivos expirados não funcionarão corretamente, a menos que a pasta de cache esteja na máquina local.
  13. Garbage collection of old cache files won’t work if WordPress can’t find wp-cron.php. Check your access_logs for wp-cron.php entries and that your hostname resolves to the external IP address other servers on the network/Internet use.
  14. Se páginas antigas estiverem sendo servidas a seus visitantes por meio do supercache, você poderá estar perdendo os módulos do Apache (ou seus equivalentes, se você não usar o Apache). São necessários 3 módulos: mod_mime, mod_headers e mod_expires. Os dois últimos são especialmente importantes para garantir que os navegadores carreguem novas versões das páginas existentes no seu site.
  15. A mensagem de erro “WP Super Cache está instalado, mas está quebrado. O caminho para wp-cache-phase1.php em wp-content/advanced-cache.php deve ser corrigido!” aparece no final de cada página. Abra o arquivo wp-content/advanced-cache.php no seu editor favorito. O caminho para wp-cache-phase1.php está correto? Este arquivo normalmente estará em wp-content/plugins/wp-super-cache/. Se não estiver correto, o mecanismo de armazenamento em cache não será carregado.
  16. O armazenamento em cache não funciona. A impressão de horário no meu blog continua mudando quando eu recarrego. Verifique se o caminho nas regras .htaccess corresponde ao local do diretório supercache. Pode ser necessário codificá-lo. Tente desativar o modo supercache.
  17. Se os arquivos do supercache forem gerados, mas não servidos, verifique as permissões em todas as suas pastas wp-content/cache/supercache (e em cada uma das pastas cache, supercache e wp-content) e wp-content/cache/.htaccess. Se o seu PHP for executado como um usuário diferente do Apache e as permissões forem estritas, o Apache poderá não conseguir ler os arquivos de cache gerados pelo PHP. Para corrigir, você deve adicionar a seguinte linha ao seu wp-config.php (adicione-a acima da definição WP_CACHE.) Em seguida, limpe seu cache.

    umask( 0022 );
    
  18. Caso veja lixo no navegador após ativar a compactação no plugin, talvez a compactação já esteja ativada no seu servidor web. No Apache, você deve desativar o mod_deflate ou, no PHP, a compactação zlib pode estar ativada. Você pode desativar isso de três maneiras. Se você tiver acesso root, edite seu php.ini e localize a configuração zlib.output_compression e verifique se está “Off” ou adicione esta linha ao seu .htaccess:

    php_flag zlib.output_compression off
    

    Se isso não funcionar, adicione esta linha ao seu arquivo wp-config.php:

    ini_set('zlib.output_compression', 0);
    
  19. Após a desinstalação, seus links permanentes podem quebrar se você remover as regras mod_rewrite do WordPress também. Regenere essas regras, visitando a página Configurações->Link permanente e salvando esse formulário novamente.
  20. Se o seu blog se recusar a carregar, verifique se o seu wp-config.php está correto. Será que não está faltando uma tag de abertura ou fechamento do PHP?
  21. Sua página inicial está ok, mas as postagens e páginas retornam 404? Acesse Configurações->links permanentes e clique em “Salvar” depois de selecionar uma estrutura de link permanente personalizada. Pode ser necessário atualizar manualmente o arquivo .htaccess.
  22. Se determinados caracteres não aparecerem corretamente no seu site, seu servidor pode não estar configurado corretamente. Você precisa informar aos visitantes qual conjunto de caracteres é usado. Acesse Configurações->Leitura e copie o valor de ‘Codificação para páginas e feeds’. Edite o arquivo .htaccess com todas as suas regras de reescrita do Supercache e WordPress e adicione isso na parte superior, substituindo CHARSET pelo valor copiado. (por exemplo, ‘UTF-8’)

    AddDefaultCharset CHARSET
    
  23. A mensagem de erro “WP Super Cache está instalado, mas está quebrado. A constante WPCACHEHOME deve ser definida no arquivo wp-config.php e apontar para o diretório do plugin WP Super Cache.” aparece no final de cada página. Você pode excluir o wp-content/advanced-cache.php e recarregar a página de configurações do plugin ou editar o wp-config.php, procurar WPCACHEHOME e garantir que ela aponte para a pasta wp-super-cache. Normalmente, será wp-content/plugins/wp-super-cache/ mas provavelmente você precisará do caminho completo para esse arquivo (por isso é mais fácil deixar a página de configurações corrigi-lo). Se não estiver correto, o mecanismo de armazenamento em cache não será carregado.
  24. Se o seu servidor estiver com problemas devido ao número de semáforos usados pelo plugin, é porque seus usuários estão usando o bloqueio de arquivos, o que não é recomendado (mas é necessário para poucos usuários). Você pode desativar globalmente o bloqueio de arquivo definindo a constante WPSC_DISABLE_LOCKING ou definindo a constante WPSC_REMOVE_SEMAPHORE para que a função sem_remove() seja chamada após cada página ser armazenada em cache, mas isso parece causar problemas para outros processos que solicitam o mesmo semáforo. Melhor desativá-lo.
  25. Defina a variável $htaccess_path em wp-config.php ou wp-cache-config.php como o caminho do seu .htaccess global caso o plugin esteja procurando esse arquivo no diretório errado. Isso pode acontecer se você tiver o WordPress instalado de alguma maneira incomum.