Jak korzystać z memcache w Joomla? Jestem początkującym w tej dziedzinie, więc proszę opisać swoją odpowiedź.Jak korzystać z memcached z Joomla
Odpowiedz
Musisz zainstalować memcached na swoim serwerze i prawdopodobnie będziesz potrzebować uprawnień roota do tego. Możesz dostać memcached z http://www.danga.com/memcached/. Wymaga libevent, który można pobrać tutaj: http://www.monkey.org/~provos/libevent/
Wreszcie, musisz uzyskać rozszerzenie PHP PECL dla memcache. Aby to zainstalować, trzeba udać się do serwera, na którym zainstalowany jest PHP i uruchomić polecenie:
pecl install memcache
Ponownie, najprawdopodobniej potrzebują dostępu do serwera głównego, aby to zrobić. Po zainstalowaniu libevent, memcached i rozszerzeń PECL przejdź do Global Configuration w Joomla i wybierz Memory Cache
jako Cache Handler w ustawieniach Cache. Po zapisaniu konfiguracji globalnej, otwórz ją ponownie i więcej danych wejściowych powinno pojawić się pod wejściem do procedury obsługi pamięci podręcznej. Ustaw serwer pamięci Chache na localhost
i port na 11211
. Powinno to być zgodne z parametrami używanymi do uruchamiania memcached
z wiersza poleceń.
EDYCJA: Możesz także użyć XCache nie tylko do przechowywania danych w sposób podobny do Memcache, ale także do buforowania kodu operacyjnego wygenerowanego przez PHP. W ten sposób zamiast odczytywać kod PHP z dysku i analizować go za każdym razem, będzie przechowywać kod w pamięci dla następnego żądania.
Należy wybrać opcję XCache
jako moduł obsługi pamięci podręcznej w konfiguracji globalnej. Przeczytaj to informacje na temat instalowania XCache: http://xcache.lighttpd.net/wiki/InstallFromSource
Awesome Thanks a ton jlleblanc – webkul
Aby Joomla użyć memcache do buforowania sesji trzeba ręcznie edytować configuration.php i zmienić linię:
public $session_handler = 'database';
do tego:
public $session_handler = 'memcache';
A to, czego brakuje wszędzie, trzeba dodać nowe memcache_settings opcji:
public $memcache_settings = 'a:3:{s:10:"persistent";s:1:"0";s:11:"compression";s:1:"0";s:7:"servers";a:1:{i:0;a:2:{s:4:"host";s:9:"127.0.0.1";s:4:"port";s:5:"11211";}}}';
To jest serializowana tablica multy-dimentian. Używam tego kodu do generowania powyższy ciąg:
$a = array(
"persistent" => "0",
"compression" => "0",
"servers" => array(
"0" => array(
"host" => "127.0.0.1", "port" => "11211")
)
);
echo(serialize($a));
Jeśli nie dodać opcję memcache_settings sesje nigdy nie będzie działać z memcache.
ten sposób może również zaoferować jakąś pomoc dla Joomla 2.5, gdyż wskazuje na ekranie Joomla Admin użyć memcache http://www.siteground.com/tutorials/supercacher/joomla_memcached.htm
Te ustawienia w configuration.php
pracy dla memcached
w Joomla 3.3+
public $cache_handler = 'memcached';
public $memcached_server_host = '127.0.0.1';
public $memcached_server_port = '11211';
public $memcached_persist = '1';
public $memcached_compress = '1';
public $cachetime = '15';
public $session_handler = 'memcached';
public $session_memcached_server_host = '127.0.0.1';
public $session_memcached_server_port = '11211';
Aby zainstalować memcached
na systemie Debian:
apt-get install memcached php5-memcached
(można również użyć memcache
w miejscu każdego występowania memcached
w powyższych public
zmiennych & zainstalować starszą php5-memcache
rozszerzenia)
Aktualizacja do php5.5
da ci wbudowany Zend Opcode Cache - to może być używane z APCu (APCu jest Alternative PHP Cache z Opcode Cache usunięte) - do podręcznej przestrzeni użytkownika lokalnie, jeśli nie potrzebujemy cache dystrybuowane pamięci (memcached
)
dla pojedynczego VPS APCu ma niższe zużycie pamięci & jest bardziej odpowiedni bufor (zwłaszcza z php5.5
) & można ustawić w configuration.php
z:
public $cache_handler = 'apc';
public $session_handler = 'apc';
Te ustawienia dla memcached działają na Joomla 3.7 – David
lepiej nie używać APC dla pamięci podręcznej zaplecza. Może to spowodować dużą fragmentację. Widziałem tylko, że pogarsza to wydajność Joomla.
Czy * potrzebujesz * memcached? – ceejayoz
Witryny IMHo, które korzystają z memcached, powinny z tego powodu trzymać się z dala od Joomla lub dowolnego zapakowanego systemu CMS. Powodem byłaby implementacja memcached - musiałbyś zmienić kod źródłowy php (być może czasami drastycznie). Joomla (lub dowolny inny system CMS) został zaprojektowany dla osób, które wolą zaprojektować szablon zamiast zmieniać kodu źródłowego. Ponadto - naprawdę nie powinieneś zmieniać podstawowego php Joomla, ponieważ będzie to raczej hack i będziesz mieć problemy z aktualizacją w przyszłości, co sprawi, że twoja strona BARDZO łatwa do zhackowania. Używaj memchached tylko, jeśli masz klaster. – Stann
Rdzeń @Andre Joomla posiada warstwę pamięci podręcznej, która implementuje między innymi pamięci podręczne memcached, XCache i płaskie pliki. Joomla Framework ma klasę buforowania, do której wysyłana jest para klucz-wartość, a następnie obsługuje buforowanie w zależności od tego, który sterownik został wybrany w konfiguracji. Nie ma absolutnie żadnej potrzeby hackowania Joomli, aby dodać memcached; jest już wbudowany. – jlleblanc