--=REKLAMA=--

Jak przyspieszyć działanie z PHP5 i MySQL5

Z Joomla!WikiPL

Wersja Zwiastun (dyskusja | edycje) z dnia 09:44, 8 gru 2013

(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)

Jest to sprawozdanie, punkt po punkcie, jak dostosowywałem nasze strony Joomla! aby działały tak szybko jak to możliwe. Wszystkie strony były uruchomione na serwerze dedykowanym Rakcspace, z 1Gb RAM, 2Ghz dual core Athlon, na którym zainstalowano Apache 2.0.x (bieżąca rewizja), PHP 5.0.x (bieżąca rewizja) i MYSQL 5.0.18.

Wykaz zrobiono w zależności od rzeczywistego wzrostu szybkości, tzn. nie całkowitej szybkości dla całej strony, ale prędkości ładowania do momentu zanim strona jest gotowa do prezentacji zawartości, nawet jeżeli nie wszystkie jej możliwości zostały załadowane.

  1. PHP caching. Uruchomiłem eAccelerator, ale dzisiaj przełączyłem na APC i to skutkowało znacznym przyśpieszeniem systemu w porównaniu z PHP bez pamięci podręcznej. Joomla! jest dużym kompleksowym systemem, więc użycie prekompilowanego kodu jest dużą oszczędnością czasu. Używam 128Mb pamięci podręcznej (in-memory), której wystarczy z zapasem dla naszych potrzeb.
  2. MYSQL Query Caching. To różni się mocno w zależności jak dynamiczna jest nasza strona, i można utracić ten zysk przez użycie złych rozszerzeń ((any date/time based will need checking), ale jeśli są te same kolejki przy ładowaniu każdej strony, spadek czasu ładowania jest zauważalny.
  3. Optymalizacja grafiki szablonu - grafika szablonu rzeczywiście spowalnia ładowanie wstępne strony dla gości odwiedzających witrynę pierwszy raz, tak więc jej optymalizacja ma sens. Pamiętaj, że Twój szablon prawdopodobnie nie zmieni się tak szybko jak zmienia się treść, więc będzie Cię stać na spędzenie dłuższego czasu na optymalizacji grafiki. Polecam Irfanview, z dodatkiem pngout dobrym dla obrazków PNG, i dobrym także dla grafik JPG i GIF. Nie zapomnij podwyższyć poziomu kompresji dla PNG, i jeżeli możliwe zredukowania ich do indeksowych palet kolorów.
  4. Kompresja CSS. Łatwa sprawa - włącz mały skrypt kompresujący Twoje pliki CSS wskaż mu index.php. Przykład skryptu podaję poniżej, nie napisałem go ale jest krótki i działa.
             ob_start ("ob_gzhandler");
             header("Content-type: text/css");
             header("Cache-Control: must-revalidate");
             $offset = 60 * 60 ;
             $ExpStr = "Expires: " .
             gmdate("D, d M Y H:i:s",
             time() + $offset) . " GMT";
             header($ExpStr);
  1. Usuń z Joomla! niepotrzebne moduły, komponenty, mamboty. Jeżeli ich nie używałeś wpływ na czas ładowania strony jest minimalny, ale przy większej ilości aktywnych komponentów/modułów istnieje więcej potencjalnych punktów błędnego zadziałania, a błędy w Apache są wolne!
  2. Zbadaj dokładnie log błędów Apache. Zadziwiające, ile błędów może się pojawiać nawet przy minimalnej instalacji Joomla!, a one niekoniecznie dotyczą prezentacji strony. Sprawdź te logi, szczególnie jeżeli używasz komponentów/modułów napisanych przez osoby trzecie, lub masz niestandardową konfigurację. Kiedy zauważysz jakiś problem to czas poprawić kod go generujący. Po poprawce należy ostrożnie przetestować wprowadzone zmiany przed wysłaniem ich na czynną stronę.
  3. Zawsze sprawdzaj działanie witryny po dodaniu/usunięciu funkcjonalności, przeprojektowaniu lub zmianie opcji konfiguracji serwera. Nawet dodanie wirtualnego serwera w Apache może wpłynąć na szybkość serwera, gdy utracone ustawienia konfiguracji mogą spowodować generalne opóźnienia w działaniu Apache.

Dziękujemy za wkład

» Stefan Wajda [zwiastun],