apc apenas trabalhando para apc.php

1

Estou executando o PHP 5.3.4, o Apache 2.0.63 e o APC 3.1.7 no meu VPS com o CentOS 5.

Quando eu abro apc.php e vou para a aba de entradas de cache do sistema, está me dizendo que o único arquivo no cache é o apc.php. Eu acessei vários outros arquivos no mesmo diretório e ainda assim parece que eles não estão sendo armazenados em cache.

Eu joguei com apc_store e apc_fetch . Eu posso armazenar e buscar variáveis da mesma solicitação, mas não entre várias solicitações.

Eu pesquisei em toda a web e não encontrei nada que me ajudasse. Eu pensei que tinha descoberto uma vez quando alguém alegou que um, mas na APC 3.1.6 estava causando o problema. Eu baixei 3.1.7 e construí-lo a partir da fonte ... sem melhora. Eu ainda tive o mesmo problema. Eu reiniciei o serviço httpd várias vezes sem sucesso.

Alguma sugestão do que tentar e o que pode estar errado?

    
por Icode4food 08.02.2011 / 19:45

1 resposta

1

Você está usando o mod_fcgid? Se assim for, não faça. O mod_fcgid não suporta o recurso de geração de filhos do PHP, então ele gerará um novo PHP se houver vários pedidos, e cada PHP gerado pelo mod_fcgid terá seu próprio cache de opcode (junto com um monte de filhos inúteis se você os habilitar no PHP script wrapper).

Se você estiver usando mod_fastcgi, então você precisará verificar se o mod_fastcgi está apenas iniciando um processo PHP, e que um processo PHP está iniciando um número suficiente de filhos para lidar com sua carga. Esta postagem no blog é um bom resumo de tudo, embora seja especificamente para usar o suexec e obter separar processos fastcgi para cada usuário, você precisará ajustá-lo para obter um processo fastcgi para o servidor inteiro, se é isso que você quer.

Se você estiver usando o mod_php5, deve Just Work, já que o cache APC é criado pelo apache.

Se você estiver usando o CGI sem o mod_fastcgi / fcgid, o seu executável do PHP sairá após cada solicitação, levando o seu cache opcode com ele.

    
por 08.02.2011 / 20:51