Apache2 e Lighttpd na mesma máquina: como compartilhar o APC php?

2

Eu tenho uma máquina Debian onde eu uso tanto o apache2 (com mod_proxy) quanto o Lighttpd (para um serviço de polling longo e conteúdo estático).

Tanto o apache quanto o lighttpd executam o php5 com o APC.

O Lighttp usa o FastCGI para o php5.

Agora, o ambiente funciona bem, mas o cache do APC é separado, existe uma maneira de dizer ao lighttpd e ao apache para usar o mesmo cache do APC?

Exemplo do que eu quero obter:

//example.com, served by apache2:
<?php
apc_add('foo', 'bar');
echo apc_fetch('foo');
//output: bar
?>

//polling.example.com, served by lighttpd:
<?php
echo apc_fetch('foo');
//output desired: bar
//actual output: nothing!
?>

p.s: Eu acho que isso pertence a falha do servidor, se não, eu vou postar no Stackoverflow.

EDITAR : Depois de ler a resposta de Dan e pesquisar também em stackoverflow , é claro que no momento em que o cache APC NÃO PODE SER COMPARTILHADO, quando alguém precisa desse ponto, outro sistema de cache deve ser escolhido (como memcache, que é mais lento que o APC

Sinta-se à vontade para fechar esta pergunta se for considerada uma duplicata SO.

    
por Strae 27.11.2009 / 12:31

2 respostas

1

Eu não sei se o cache APC pode ser compartilhado entre várias instâncias PHP (FastCGI), mas talvez memcached ou um programa semelhante poderia resolva seu problema. Você teria que mudar seus scripts PHP, no entanto.

    
por 27.11.2009 / 13:00
1

Com base nas informações deste ticket de solicitação de recurso PECL pendente para a APC, sobre o compartilhamento de cache dados e bloqueios entre vários processos FCGI no mesmo ambiente httpd, eu diria que também não é possível fazer entre vários ambientes httpd.

Editar para adicionar:

Você ainda receberia algum benefício do uso do APC. Os resultados iniciais depois que os daemons foram criados podem não ser grandes, mas, com o tempo, o cache de cada processo será propagado e reutilizado. O memcache e o APC executam funções semelhantes, de modo que "armazenam informações", mas suas finalidades reais são bem diferentes. memcache é um cache de valor-chave para dados e APC é um cache opcode para código.

    
por 27.11.2009 / 12:45