Оптимизируемся. Часть 2, PHP OpCode cache

Аватар пользователя emzi emzi 2 июля 2007 в 23:44

Существует несколько библиотек для кэширования микрокода PHP (op-code caches), наиболее популярные - это eAccelerator и APC. Не смотря на то, что у людей тестирование показывает некоторое преимущество eAccelerator, мне приятнее работать с APC, в основном по причине того, что нет необходимости ставить внешние пакеты, не входящие в список поставки (я использую Debian). Установка APC в Debian Sarge - сущее мучение. К счатью, с выходом новой версии Debain - Etch, работа значительно упростилась.

Итак, несложная последовательность действий: подразумевается, что libapache-mod-php4 (или php5) уже поставлен, так же, как и сам Апач, и PHP. Ещё понадобятся php4-dev (или php5-dev, если у вас PHP5) и apache-dev. Устанавливаем их как обычно, apt-get install php4-dev и apt-get install apache-dev После этого в командной строке пишем pecl install apc и ждём окончания компиляции. Если что-то пошло не так, значит не установлены какие-то дистрибутивы. Может не хватать пакетов gcc, g++ или make. Итак, по окончании компиляции, если всё прошло успешно, файлик с названем apc.so будет помещен в каталог с расширениями (extensions) PHP. Однако какой-то причине установщик кладет файл не в тот подкаталог, в котором его потом ищет PHP. Поэтому мне приходишлось переписывать apc.so из /usr/lib/php4/20020429/ в /usr/lib/php4/20050606+lfs/ (версия APC 3.0.14) Закончив с компиляцией и установкой, переходим к настройке. начинаем с того, что в php.ini прописываем строчки extension=apc.so и apc.enabled=1 После этого перегружаем апач и наслаждаемся увеличением производительности (у меня примерно в 3-5 раз по коду). Можно в новомодном стиле создать файл /etc/php4/apache/conf.d/apc.ini и писать все настройки туда. Здесь находится список переменных APC с описаниями.

А вот  что написано в моем apc.ini:

extension=apc.so
  apc.enabled=1
  apc.shm_segments=4
  apc.shm_size=128
  apc.ttl=7200
  apc.user_ttl=7200
  apc.num_files_hint=1024
  apc.mmap_file_mask=/tmp/apc.XXXXXX
  apc.enable_cli=1
  apc.stat=1
 

не могу назвать это идеальным конфигом, но на моих рабочих сайтах оно живет нормально.

Комментарии

Аватар пользователя Atl Atl 10 ноября 2015 в 11:46

А под Windows (на Denwer) как АРС поставить?
Библиотеку apc.so "с собаками" не найти!
Вот у меня стоит eAccelerator, бьется (см.ниже):

Аватар пользователя orangeudav orangeudav 23 ноября 2009 в 13:15

Atl wrote:
А под Windows (на Denwer) как АРС поставить?
Библиотеку apc.so "с собаками" не найти!
Вот у меня стоит eAccelerator, бьется (см.ниже):

http://downloads.php.net/pierre/ => php_apc-3.0.19-5.2-Win32-VC6-x86.zip

смысл ставить все же есть, даже при разработке. на жирных движках время отклика сервера становится гораздо более комфортным.

Аватар пользователя marazmus marazmus 5 августа 2009 в 19:36

APC, EAccelerator и прочие кеширующие программы - это решения для production-хостинга, то есть для рабочих хостинг-серверов на *nix. Зачем пытаться ставить APC на связку Windows+Denwer - не пойму никак. Это не имеет смысла. Вообще никакого. Все равно, что пытаться поставить реактивный двигатель на хрущевскую пятиэтажку. Вроде и прилепить можно, и место есть, только люди смотрят и думают - "Что это они там делают?"

Если уж не терпится проверить APC в деле, есть целых три бесплатных решения по виртуализации - VMWare Server, MS Virtual PC и Sun VirtualBox (последний удобнее всех, все три бесплатны). Ставим виртуальную машину, в ней ставим тот же Debian, и крутим там все, что можно - получив практически полный аналог виртуального хостинга.