Инсталирайте APC за PHP на Linux
Публикувано в PHP – Последна актуализация на 05 ноември, 2008
APC е алтернативната PHP кеш, която е безплатна, отворена и здрава рамка за кеширане и оптимизиране на PHP междинен код. Това означава, че APC чете вашите PHP файлове, ги анализира в по-ефективен двоичен формат и след това ги съхранява в паметта, така че всяка заявка за вашите PHP файлове и PHP библиотечни файлове може да бъде подадена от анализирания кеш. Това обикновено води до увеличаване на скоростта при показване на сайт в PHP, особено в много файлове с библиотеки. Тази публикация разглежда как да инсталирате APC за PHP на Linux. Линукс дистрибуцията, която използвах, беше CentOS 5, но би трябвало да е сравнително подобна за повечето дистрибуции.
Изтегляне на APC от PHP PECL
На първо място трябва да изтеглите APC кода от PHP PECL библиотеката. Така че променете директорията някъде като / tmp и след това да получите най-новата версия като така:
$ wget http://pecl.php.net/get/APC
Това винаги ще получи най-новата версия, а в моя случай, когато инсталирах току-що изтегления APC-3.0.16.tgz харесвам така:
–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]
Така че тогава трябва да извлечете файловете:
$ tar -zxf APC-3.0.16.tgz
и променете в директорията APC:
$ cd APC-3.0.16
Инсталирайте APC
Следващата стъпка е да изпълните командата “phpize”. Това изисква да имате инсталиран PHP пакет за разработка. На CentOS това е php-devel (инсталирано чрез стартиране на “yum install php-devel”) и трябва да има подобно име на други дистрибуции на Linux.
$ phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20050922
Zend Extension Api No: 220051025
След това конфигурирате APC, като го казвате къде е изпълним файл php-config. Ако не знаете къде е това, направете следното:
$ whereis php-config
който ще върне нещо като:
php-config: /usr/bin/php-config /usr/share/man/man1/php-config.1.gz
и след това изпълнете командата configure като:
./configure –enable-apc –enable-apc-mmap –with-apxs –with-php-config=/usr/bin/php-config
Това ще продължи и ще направим някои конфигуриращи неща, които ще изглеждат така:
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
Сега, когато се извърши конфигурирането, това е просто въпрос на текуща марка:
$ 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).
и след това направете инсталиране:
$ make install
Installing shared extensions: /usr/lib64/php/modules/
и рестартиране на уеб сървъра на Apache:
/etc/init.d/httpd restart
Сега кеша APC ще бъде активиран. Можете да потвърдите това, като създадете скрипт, който извиква командата phpinfo () и търсите раздела APC. Той щеше да е включен по подразбиране, като добави ред “extension = apc.so” към файла /etc/php.ini, но може да искате да добавите още настройки, за да го конфигурирате повече. Файлът INSTALL предлага това (настроих стойностите по подразбиране в края на всеки ред, ако не зададете нищо във файла php.ini):
apc.enabled=1 # default = 1
apc.shm_segments=1 # default = 1
apc.shm_size=128 # default = 30
apc.ttl=7200 # default = 0
apc.user_ttl=7200 # default = 0
apc.num_files_hint=1024 # default = 1000
apc.mmap_file_mask=/tmp/apc.XXXXXX # default = no value
apc.enable_cli=1 # default = 0
това е всичко за него. Има и скрипт за наблюдение, за да можете да видите какво се кешира и колко памет се използва и др. Можете да прочетете за това в моята “Показване на PHP APC Cache Information” пост.
Актуализиране на 5 ноември 2008 г.: Току-що инсталирах това на друг сървър и нямах проблеми при инсталирането му, но той не добави автоматично разширението = apc.so към файла /etc/php.ini. Така че, ако не изглежда да работи, проверете php.ini, за да сте сигурни, че линията е там и го добавете, ако не.