2010-11-03 23 views
7

APC kullanmaya çalışıyordum ama beklediğim gibi çalışmıyor.PHP "apc_store" ve "apc_fetch" beklendiği gibi çalışmıyor

Dosya1:

$bar = 'BAR'; 
apc_store('foo', $bar, 3600); 
var_dump(apc_fetch('foo'));   // It works here. Displays BAR 

file2: Ben saniye içinde file2 çalıştırdığınızda

var_dump(apc_fetch('foo')); 

, bunun yerine önbellekte saklanan verilerdir 'BAR' arasında false döndürür.

+0

Hiç bu işe yaramadı, ancak yine de [apc.localcache] (http://www.php.net/manual/en/apc.configuration.php#ini.apc.localcache) false olarak ayarlandığında hala oluyor ? – Wrikken

+0

Bir web sayfasından mı yoksa komut satırından mı test yapıyorsunuz? –

+3

Hangi SAPI kullanıyorsunuz? Mod_php ile Apache? SUEXEC (CGI'nin etrafındaki sarıcıdan başka bir şey değil)? FastCGI? CGI? Tahminimce birden fazla PHP işleminiz var, yani bellek alanını paylaşmıyorlar ... – ircmaxell

cevap

0

Bu (http://svn.php.net/viewvc/pecl/apc/trunk/apc.php?view=markup) sunucunun korumalı bir alanına kurun, açıklamalarda açıklandığı şekilde ayarlayın ve APC önbellek sorunları hakkında bir bilgi sorununu gidermeli ... veya bir şey hakkında daha iyi bir fikir vermeniz gerekir. İstenildiği gibi çalışmıyor.

4

İyi çalışıyor :) - komut satırından yürütülen her php komut dosyasının kendi önbelleğini kullandığını hatırladığınız sürece, script1 ile script1 tarafından kaydedilen verilere erişemezsiniz. (komut dosyası bittiğinde temizlendiğinde betik 1'in daha sonraki bir satırına erişemezsiniz)

Bu önbellekler, büyük olasılıkla kullanmak istediğiniz önbellekten ayrıdır ve bu, çalıştırılan php komut dosyalarının önbelleğidir. web sunucunuz üzerinden.

Yani beklendiği gibi çalışacağız sonra örneğin http://localhost/file1.php için http://localhost/file2.php

erişebilmesi için webroot kaydedilen yukarıda bu testleri varsa. Bu, web sunucusunun APC önbelleğini komut satırından temizleyemediğiniz anlamına da gelir. Önbellek (kullanıcı önbellek veya opcode önbellek) temizleme kodu web sunucunuzdan yürütülmelidir. Kabuktan bir wget veya php cli'den file_get_contents() olsun - bu sizin zevkinize ve koşullarınıza bağlıdır.

İlgili konular