Habilita o Cache do Usuário APC somente em determinados sites (Apache)

1

Primeiro de tudo, não estamos interessados no cache de arquivos, por enquanto, é o cache do usuário que é importante.

Precisamos armazenar informações sobre estruturas de banco de dados e resultados de consulta em um cache para alguns aplicativos que estamos desenvolvendo.

Nosso servidor tem dezenas de sites, alguns dos quais são controlados por clientes com acesso ftp.

Estou preocupado com um host virtual (aquele em que não controlamos os arquivos php) que está parafusando com o cache de outro host virtual. Podemos codificar nossos aplicativos para que suas chaves de cache não colidam, mas não podemos garantir que um cliente não limpe ou modifique nossos valores em cache.

Temos o mod_php em um servidor CentOS 5.3 com plesk. Temos apc.cache_by_default=0 e apc.filters="-/.*" , já que isso parece ter quebrado muitos aplicativos de terceiros que instalamos.

Eu tentei php_admin_flag apc.enabled off e php_admin_value apc.enabled 0 no vhost, mas parece não ter efeito.

Existe alguma maneira de desativar completamente o APC apenas para alguns sites?

Como alternativa, existe alguma maneira de ter um cache de usuário separado por vhost? Ou uma solução de cache diferente? Estamos considerando o memcached, mas me preocupo que ele tenha problemas semelhantes.

Obrigado.

    
por DaedalusFall 01.11.2011 / 13:50

3 respostas

1

Esse tipo de uso pede memcache. Vá para o memcache, leia a documentação no link .

    
por 01.11.2011 / 15:13
1

O problema com APC e mod_php é que o mod_php está dentro do mesmo processo que o apache. Isso significa que você só tem uma configuração para o PHP para todos os seus vhosts.

Tente olhar para a interface FastCGI do PHP. Infelizmente eu não tenho muita experiência em configurar isso no apache (nós usamos o nginx), mas usamos isso para otimizar as configurações de sites diferentes em um servidor de hospedagem compartilhada. Configurações separadas significam separar tudo: você pode habilitar diferentes módulos PHP para diferentes sites, ter diferentes armazenamentos de sessão para diferentes sites, ter diferentes limites de upload para diferentes sites, etc, etc. Basicamente, tudo se resume a ter um servidor PHP-FCGI separado para (pelo menos) todo cliente. Cada servidor FCGI possui sua própria configuração; usamos /srv/$domain/fcgi/php.ini , mas o que funciona para você e para o Plesk.

CGI também pode funcionar; Eu não sou 100% sobre como a APC faz seu cache. Se estiver na memória, o CGI não ajudará, pois cria um novo processo para cada solicitação, o que significa que qualquer cache na memória será perdido em todas as solicitações. Para ser claro, isso não é recomendado, mesmo que funcione, mas é mais fácil de configurar para testes.

    
por 01.11.2011 / 14:03
1

Conforme mencionado neste Blog do Linux Sysadmin :

enable APC for the particular vhost config or using .htaccess using:

php_flag apc.cache_by_default On
    
por 06.06.2014 / 17:53