Częstym problemem przy bardziej popularnych serwisach jest problem ze zbyt dużą liczbą zapytań. Powoduje to najczęściej błąd połączenia z bazą a w rezultacie na stronie pojawia się tylko błąd i zero treści. Jak to rozwiązać? Nie ma rozwiązania idealnego, w szczególności jeśli ma się tysiące podstron. Możemy jednak problem załagodzić stosując Cache.
Cache ma za zadanie zapisać strony na serwerze i bezpośrednio z nich korzystać. Dzięki temu omijamy generowanie strony w php od podstaw a w szczególności wykonywanie zapytań bazy danych. Nie musimy jednak się obawiać że strona nie będzie aktualna. W skrypcie określamy co jaki czas strona będzie aktualizowana.
Myślisz, że instalacja takiego skryptu jest trudna? Znalazłem skrypt którego instalacja zajmuje około 3 minut. Skrypt jest o tyle doby, iż aktualizuje strony jeśli zostanie wykonany jakiś formularz oraz prawidłowo działa jeśli się zalogujemy.
Przejdźmy jednak do instalacji. Najpierw załóżmy katalog "_cache" w folderze głównym. Nadajmy my prawa 777.
Teraz otwórz główny plik serwisu, standardowo index.php i na jego początku napisz:
KOD:
<?php
if($_SESSION['sesja']=='' && $_COOKIE['cookie']=='')
include("begin_caching.php");
a na końcu:
KOD:
if($_SESSION['sesja']=='' && $_COOKIE['cookie']=='')
include ("end_caching.php");
?>
Oczywiście jeśli korzystasz tylko z Cookie albo Sesji przy logowaniu, skasuj co nie potrzebne. Wpisz też odpowiednie nazwy. Teraz kod plików. Nie będę go jednak podawał, gdyż nie mam do tego za bardzo praw. Musicie sciągnąć go sobie ze strony:
hypercacher
Wybierzcie sobie paczkę która wam odpowiada, polecam "HyperCacher GZIP". ?ciągnijcie ją i otwórzcie plik "php_hypercacher_gzip_v1.033_DEV.php". Podzielony on został przez:
KOD:
KOD:
Teraz musicie już tylko dopowiednio napisać pliki. Wszystko co znajduje się pod HEADER START i nad FOOTER START zapisujecie jako "begin_caching.php" a wszystko pod FOOTER START jako "end_caching.php". Oba pliki zapisujemy w folderze głównym, tym samym co index.php i folder "_cache".
Na koniec kilka słów o konfiguracji. W "begin_caching.php" na samym początku możemy ustawić co jaki czas ma się odświeżać strona. Standardowo ustawiona jest na godzinę (3600 sekund), możemy jednak tę liczbę dowolnie zmieniać w zależności od potrzeb.
Stosując paczkę z GZIP nasze strony zajmują mniej miejsca, gdyż są specjalnie kompresowane. Kompresja plików wynosi od 60 do nawet 90%. Jeśli jednak nie chcemy kompresować plików, wystarczy zainstalować zwykłą paczkę.