eRIZ's weblog

PHP, webdesign, Linux, Windows i inne, bo nie samym chlebem człowiek żyje

Cache danych – czym, jak, gdzie i kiedy – cz. I: teoria

PHP (zresztą nie tylko ten język) jako server-side do nauczenia trudny nie jest. Po jakim czasie seito twierdzi, że potrafi pisać całkiem niezłe skrypty, CMS, czy aplikacje. Ale nawet i wielu sensei często miewa problemy, gdy chodzi o mocno obciążone serwisy, w których stopniowo zaczynają pojawiać się wąskie gardła – strony wczytują się coraz wolniej, aż do momentu, gdy baza danych odmawia posłuszeństwa z powodu przeciążenia.

Na domiar złego, użytkownicy odświeżają wielokrotnie te same strony – albo z powodu wielu prób otwarcia, albo w celu aktualizacji często zmieniających się treści. I tak mamy pewien procent żądań, które tylko niepotrzebnie obciążają serwer, nieraz będące błędnym kołem – skrypt oczekuje na połączenie z bazą, a zniecierpliwiony gość albo opuści stronę, albo będzie wciskał CTRL+R do oporu…

Owszem, można postawić farmę serwerów z load-balancingiem/proxy-cache, ale nieraz jest to strzelaniem do muchy z armaty, poza tym – w przypadku mniejszych serwisów jest to poza ich zasięgiem finansowym. Jednak są sposoby… ;]

więcej

mod_rewrite – (pozornie) beznadziejne problemy, które można rozwiązać

mod_rewrite, rewriting, przyjazne URL-e/adresy, maskowanie, przepisywanie, nazw jest sporo. Zresztą, najpopularniejsza pochodzi od swojego protoplasty – czyli mod_rewrite powstałego pod skrzydłami Apache’a jako moduł. Teraz właściwie standard, jeśli chodzi o nowoczesne strony www – nie tylko ze względu na wygląd, ale i (jak ptaszki ćwierkają, choć jest to wątpliwe wobec oficjalnych źródeł) SEO.

Jak zwał, tak zwał, adres http://example.org/kawalek/adresu wygląda dużo estetyczniej i jest łatwiejszy do zapamiętania niż potworki typu http://example.org/?kawalek=adresu&i=jeszcze&inny=fin

Niby nie jest to takie skomplikowane, ale niektóre sytuacje wydają się nie do rozwiązania.

Uwaga, notka tasiemcowata, więc jest spis treści. Polecam się również uzbroić w odpowiednią ilość czasu. ;]

więcej

Bot do powiadomień w EKG2

W trakcie rozważań z ^kwiateuszem nad jakimiś usprawnieniami dla Forum PHP.pl (IPBoard) przyszedł mi do głowy pomysł, który zauważyłem kiedyś na Polskim Forum Jabbera. Stworzono do niego mod, który umożliwia powiadamianie użytkowników o nowych postach właśnie przez Jabbera.

Pisałem już o module powiadomień opartym o klasę Jabbera dla PHP, ale co w sytuacji, gdy serwer jest bardziej obciążony? Dla małych forów wcześniej omówione rozwiązanie – jak znalazł. Natomiast w przypadku większych aplikacji będzie stanowiło pewien problem – od wydajności po gubienie powiadomień, czy inne nieprzewidziane sytuacje.

Dlatego wykorzystamy w tym celu popularnego klienta IM pod shella, mianowicie ekg2. Umożliwi on również skorzystanie z powiadomień do innych sieci, m.in. Gadu-gadu, czy Tlen.

więcej

Apache 2.2 pod Windows z SSL

Wcześniej pisałem o instalowaniu Apache. Ok, (chyba) działa, ale nie ma opcji zestawiania połączeń poprzez SSL. Dzisiaj zajmiemy się instalacją wersji obsługującej połączenia szyfrowane.

Tak naprawdę, cała czynność nie jest szczególnie trudniejsza od tej, do której zalinkowałem. Jeśli wszystko ruszyło z kopyta w wersji bez SSL, można powiedzieć, że instalacja wersji obsługującej szyfrowanie okaże się banalna. ;)

więcej

Chcielibyście taki hosting?

Zupełnie przypadkiem wchodzę sobie na stronę mojego ISP-a, bo chciałem zerknąć do dokumentacji. Co ukazuje się moim oczom?

SISCO IT GROUP albo pozwala sobie na nieetyczne formy pozycjonowania, albo ma takich beznadziejnych administratorów, którzy nie potrafią utrzymać systemów klasy enterprise. Nie nagłośniłbym tak tej sprawy, gdyby nie to, iż firma podpada mi już kolejny raz.

Zresztą, popatrzcie sami:

więcej

ejabberd we FreeBSD

Ongiś pisałem o instalacji ejabberd na Ubuntu. Teraz przyszła pora na parę słów nt. sadzania pod FreeBSD.

więcej

Alternatywa dla Apache’a – Cherokee

Nie, nie będę pisał o hrabstwach, ani o plemieniu Indian (chociaż Apache – Cherokee nawet etymologicznie są ze sobą powiązane ;)).

Mowa będzie o alternatywnym dla Apache’a demonie http – Cherokee Web Server. A trafiłem nań zupełnie przez przypadek…

Co ciekawe, też sprawnie chodzi na „biednych” maszynach (póki co, trzyma się :)).

więcej

Instalacja Ubuntu na RAID-1

Swego czasu stawiałem serwerek na nawet niezłym sprzęcie, o którym do tej pory tylko czytałem. Ujrzałem wreszcie na własne oczy legendarną już magistralę SCSI w wersji Ultra320. Dla niewtajemniczonych, teoretyczny transfer sięga 320MB (tak, MegaBajtów) na sekundę.

Cóż, instalacja Ubuntu Server przebiegła w sposób praktycznie identyczny jak na „konwencjonalnych” kompach. Tylko było założenie, aby na serwerku dyski były spięte w RAID-1 (mirroring).

Pech chciał, że zaufałem w pełni BIOS-owi kontrolera SCSI, w którym skonfigurowałem macierz. Ale zapomniałem, że współczesne systemy olewają sobie ustawienia BIOS-u i zgodnie z realiami epoki sprawdzają wszystko samodzielnie przez HAL…

więcej

phpMyAdmin – przenoszenie bazy i polskie znaki

Dosyć często spotykanym problemem jest złe wyświetlanie polskich „krzaczków” po przeniesieniu bazy na inny serwer. W rzeczywistości, nie jest to żaden błąd oprogramowania, tylko niewłaściwie dobranych ustawień.

Zacznijmy od tego, w jakich formatach mogą byc zapisywane polskie znaki – są to ISO 8859-2 i coraz popularniejszy UTF-8.

phpMyAdmin udostępnia dosyć wygodne opcje służące do importu/eksportu danych do/z bazy. Jednak dosyć często zdarza się sytuacja, że ciężko jest przenieść bazę zachowując jednocześnie nie naruszone diakrytyki. Owszem, można jeszcze zamienić na encję, ale problem należy rozwiązać, a nie obejść.

Korzystając ze świeżych doświadczeń, opiszę krok po kroku, w jaki sposób przenieść zawartość bazy i zachować diakrytyki.

więcej

Jabber we własnej domenie – uruchamiamy serwer

Jakoś uczepiłem się ostatnio Jabbera i JID stał się chyba dla mnie najważniejszym identyfikatorem. Z tego powodu, iż bardzo chciałem go mieć we własnej domenie, spróbowałem wcześniej z Google Apps, ale do pełnej funkcjonalności mu czegoś brakuje. Nie pamiętam, co konkretnie było, ale chyba coś z autoryzacją.

Więc, zabieramy się do roboty.

więcej

Szufladka