Objavljeno 6. februara 2008. u PHP (Ažurirano 5. novembra 2008)
APC je Alternativni PHP Keš, koji je besplatni, otvoreni i robustni okvir za keširanje i optimizaciju PHP srednjeg koda. Ovo znači da APC čita Vaše PHP fajlove, raščlanjuje ih na mnogo efikacnije binarne formate, a potom ih kešira u memoriju tako da svaki zahtev za Vašim fajlovima i PHP bazom fajlova može biti uveden iz raščlanjenog keša. Ovo će generalno voditi povećanju brzine kada koristite PHP sajt, naročito onaj sa mnogo fajlova u bazi. Ovaj tekst Vam daje uvid u to kako da instalirate APC za PHP u Linux-u. Ja sam koristio Linux-ovu distribuciju CentOS 5, ali bi ovaj postupak trebao da bude sličan za većinu distrova.
Pre svega, potrebno je da preuzmete APC kod iz PHP PECL baze. Dakle, pomerite direktorijum u nešto kao /tmp a onda preuzmite najnoviju verziju:
$ wget http://pecl.php.net/get/APC
Ovo će uvek preuzeti najnoviju verziju, a u mom slučaju, kada sam ga instalirao preuzeo sam APC-3.0.16.tgz kao:
--22:58:41-- http://pecl.php.net/get/APC
Resolving pecl.php.net... 216.92.131.66
Connecting to pecl.php.net|216.92.131.66|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 114298 (112K) [application/octet-stream]
Saving to: `APC-3.0.16.tgz'
100%[=====================>] 114,298 97.1K/s in 1.1s
22:58:43 (97.1 KB/s) - `APC-3.0.16.tgz' saved [114298/114298]
Potom je potrebno da otpakujete fajlove:
$ tar -zxf APC-3.0.16.tgz
i prebacite ih u APC direktorijum:
Sledeći korak je da pokrenete “phpize” komandu. Za ovo je potrebno da ste instalirali PHP development package. Na CentOS ovo je php-devel (instalirano pomoću pokretanja “yum install php-devel”) i trebalo bi da ima slično ime na drugim Linux-ovim distrovima.
$ phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20050922
Zend Extension Api No: 220051025
Potom konfigurišite APC tako što će te mu “reći” gde se php-config nalazi. Ako ne znate gde se nalazi, probajte ovo:
a što će vratiti nešto kao što je:
php-config: /usr/bin/php-config /usr/share/man/man1/php-config.1.gz
a potom pokrenite komandu za konfiguraciju:
./configure --enable-apc --enable-apc-mmap --with-apxs --with-php-config=/usr/bin/php-config
Ovo će se nastaviti dalje i konfigurisaće stvari što će izgledati nekako ovako:
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
...
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
configure: creating ./config.status
config.status: creating config.h
Sada kada je konfiguracija završena, sve je pitanje pokretanja; napravite:
$ make
...
Libraries have been installed in:
/tmp/APC-3.0.16/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).
i onda instalirajte:
$ make install
Installing shared extensions: /usr/lib64/php/modules/
i restartujte Apache web server:
/etc/init.d/httpd restart
APC keš će sad biti osposobljen. Možete potvrditi ovo tako što ćete kreirati skriptu koja pokreće phpinfo() komandu i traži APC sekciju. Podrazumeva se da će ona biti uključena dodavanjem “extension=apc.so" reda Vašem /etc/php.ini fajlu, ali možete je dodatno podesiti. INSTALL fajl sugeriše ovo (Ja sam stavio početne vrednosti na kraj svakog reda što je u suštini ono što je već podešeno ako niste ništa podešavali u php.ini fajlu):
I to je sve. Takođe postoji i skripta za praćenje koja je dostupna, tako da možete da vidite šta je bilo keširano i koliko je memorije za to korišćeno. Možete čitati o ovome u mom
"Displaying PHP APC Cache Information" tekstu.
Ažurirano 5. novembra 2008: Upravo sam ovo instalirao na drugom serveru i nisam imao nikakvih problema pri instalaciji ali extension=apc.so red nije dodat /etc/php.ini fajlu automatski. Dakle, ako Vam se čini da neće da radi, proverite php.ini da biste se uverili da je red tamo i da ga dodate ukoliko nije.