Существует несколько библиотек для кэширования микрокода 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:
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
не могу назвать это идеальным конфигом, но на моих рабочих сайтах оно живет нормально.
Комментарии
Спасибо!
Инструкция: установка php акселератора APC на хостинге nic.ru
http://forum.typo3.biz/showthread.php?t=5808
А под Windows (на Denwer) как АРС поставить?
Библиотеку apc.so "с собаками" не найти!
Вот у меня стоит eAccelerator, бьется (см.ниже):
http://downloads.php.net/pierre/ => php_apc-3.0.19-5.2-Win32-VC6-x86.zip
смысл ставить все же есть, даже при разработке. на жирных движках время отклика сервера становится гораздо более комфортным.
APC, EAccelerator и прочие кеширующие программы - это решения для production-хостинга, то есть для рабочих хостинг-серверов на *nix. Зачем пытаться ставить APC на связку Windows+Denwer - не пойму никак. Это не имеет смысла. Вообще никакого. Все равно, что пытаться поставить реактивный двигатель на хрущевскую пятиэтажку. Вроде и прилепить можно, и место есть, только люди смотрят и думают - "Что это они там делают?"
Если уж не терпится проверить APC в деле, есть целых три бесплатных решения по виртуализации - VMWare Server, MS Virtual PC и Sun VirtualBox (последний удобнее всех, все три бесплатны). Ставим виртуальную машину, в ней ставим тот же Debian, и крутим там все, что можно - получив практически полный аналог виртуального хостинга.