PHP APC Tutorial – cz.1: Instalacja na Windows (WAMP) oraz Linux – Czyli jak przyśpieszyć wgrywanie stron PHP

APC jest tzw. opcode cache, który może znacząco przyśpieszyć działanie aplikacji PHP, poprzez cache’owanie zarówno kodu PHP oraz zmiennych. Zastosowanie APC w aplikacjach PHP wydatnie wpływa na poprawę czasu odpowiedzi oraz zmniejszenie obciążenia serwera.

W poniższym artykule, postaram się zapoznać czytelnika z APC, przeprowadzić go przez proces instalacji i konfiguracji oraz pokazać na kilku przykładach jego działanie. Zapoznamy się również panelem administracyjnym APC, który pozwala na podgląd w czasie rzeczywistym statystyk wydajnościowych APC. Zobaczymy również sposób wykorzystania APC wraz z Zend Framework.

Wstęp

PHP jest językiem interpretowanym (w przeciwieństwie do np. C++, Java). Za każdym razem, kiedy klient żąda strony PHP, serwer odczytuje kod źródłowy danej strony, kompiluje ją do postaci bytecode i dopiero wykonuje. Ten standardowy scenariusz jest wywoływany przy każdym żądaniu.

Kiedy prowadzimy stronę WWW, która ma setki lub tysiące zapytań każdej minuty, może okazać się konieczna optymalizacja strony pod kątem maksymalnego możliwego przyśpieszenia pracy. I tu właśnie pojawia się na horyzoncie APC. APC określa się jako „darmowy i otwarty framework do cache’owania i optymalizacji kodu pośredniego PHP”. Innymi słowy, APC cache’uje skompilowany kod każdego skryptu PHP oraz używa ponownie przy kolejnych żądaniach. Redukuje to czas oraz obciążenie wymagane do obsłużenia żądania oraz prowadzi do poprawy wydajności.

Instalacja na systemie Linux

Instalację APC na systemie Linux opiszę na przykładzie mojej dystrybucji Fedora 15. Pierwsze co potrzebujemy to zainstalować kilka koniecznych do dalszych kroków elementów, które początkowo nie były zainstalowane w mojej dystrybucji. Pierwszy z tych elementów to zestaw kompilatorów GCC, a drugi to biblioteka do wyrażeń regularnych o nazwie PCRE. Aby zainstalować owe składniki wykonujemy na koncie root następujące polecenia.

yum install gcc
yum install pcre-devel

Tam gdzie zostaniemy poproszeni, potwierdzamy nasze zamiary poprzez klawisz y. Kolejny element, który potrzebujemy to PECL czyli rozszerzenie do PHP zarządzające dodatkami. Jest ono częścią składową PEAR, czyli dodatku do PHP zarządzającym klasami. Aby zainstalować obydwa, wykonujemy poniższe polecenie.

yum install php-pear

Potrzebujemy jeszcze aplikację, do kompilowania naszych dodatków pochodzących z PECLa o nazwie PHPIZE. Aby go zainstalować wykonujemy poniższe polecenie.

yum install php-devel

Teraz już jesteśmy gotowi do zainstalowania naszego APC za pomocą PECLa. Wykonujemy to poniższym poleceniem.

pecl install apc

Zostaniemy kilka razy poproszeni o udzielenie kilku odpowiedzi. Naciśniecie klawisza Enter spowoduje wybranie ustawień domyślnych. Jeżeli wszystko pójdzie dobrze, to musimy jeszcze tylko dopisać nasz dodatek do listu uruchomieniowej PHP. Przechodzimy do folderu

/etc/php.d

w którym trzymane są pliki konfiguracyjne dodatków oraz tworzymy w nim plik o nazwie

apc.ini

w którym wpisujemy tylko jedną linijkę o poniższej treści.

extension=apc.so

Teraz możemy przeładować nasz serwer Apache wywołując poniższą komendę.

service httpd restart

Instalacja na systemie Windows

Instalację na systemie Windows opiszę na przykładzie pakietu WAMP. Najpierw ściągamy skompilowaną wersję naszego rozszerzenia spod poniższego linku.

http://downloads.php.net/pierre/

Jest tam wiele wersji tego rozszerzenia oraz wiele rodzajów kompilacji. Niektóre działają, niektóre nie, więc należy popróbować. U mnie, dla przykładu, spośród dostępnych kompilacji najnowszej wersji zadziałała tylko jedna, poniższa.

http://downloads.php.net/pierre/php_apc-3.1.5-5.3-vc6-x86.zip

Gdy już ściągniemy archiwum z rozszerzeniem, wypakujemy z niego tylko jeden plik o nazwie php_apc.dll. Umieszczamy do w folderze z innymi rozszerzeniami. Dla WAMPa jest to odpowiednik poniższego folderu.

C:\wamp\bin\php\php5.3.5\ext

Następnie musimy uruchomić w PHP owe rozszerzenia. Robimy to poprzez umieszczenie wpisu

extension=php_apc.dll

w pliku php.ini. Można to jednak zrobić łatwiej, klikając lewym klawiszem myszki w ikonę WAMPa na zasobniku systemowym oraz wybierając PHP -> PHP extensions ->php_apc. Jeżeli sami umieściliśmy wpis w php.ini to musimy jeszcze zrestartować WAMPa opcją Restart All Services.

Jeżeli wszystko poszło dobrze

Jeżeli wszystko poszło dobrze, to po wywołaniu funkcji phpinfo() w skrypcie PHP, naszym oczom powinien ukazać się status rozszerzenia.

APC PHPINFO