Что такое APC?
APC – это система кэширования кодов PHP, которая позволяет ускорить сайт. PHP – это динамический серверный язык сценариев, который нужно анализировать, компилировать и запускать на сервере при каждом запросе страницы. Однако во многих случаях запросы повторяются, а потому облачному серверу приходится повторно обрабатывать каждый из них.
В этом случае на помощь приходит APC, или Alternative PHP Cache. Этот инструмент сохраняет код PHP в операционной памяти и при необходимости извлекает его. В сущности, он обходит обработку и компиляцию кода, что позволяет свести к минимуму нагрузку на сервер.
Данное руководство продемонстрирует установку и настройку APC.
Примечание: Для выполнения руководства нужен предварительно настроенный сервер Ubuntu 12.04 с привилегиями root, а также стек LAMP.
Установка APC
Прежде чем устанавливать кэшер APC, нужно установить некоторые его зависимости. Для этого используйте следующую команду:
sudo apt-get install php-pear php5-dev make libpcre3-dev
Затем можно установить APC при помощи команды pecl:
sudo pecl install apc
При этом появится ряд вопросов; рекомендуется просто нажать Enter, чтобы установить стандартные настройки.
В завершение установки нужно отредактировать файл php.ini:
sudo nano /etc/php5/apache2/php.ini
добавив в конец следующую строку:
extension = apc.so
Сохраните и закройте файл, а затем перезапустите Apache:
sudo service apache2 restart
Чтобы узнать, включён ли APC, откройте info-страницу PHP. Если таковой нет, создайте пустой php-файл в папке /var/www:
nano /var/www/info.php
И внесите в него такой код:
<?php
phpinfo();
?>
Сохраните и закройте файл, а затем откройте браузер. На экране появится вся информация о текущей установке PHP. Если APC включён, страница сообщит об этом. В целом, оставлять этот файл не рекомендуется, так как он может предоставить доступ к конфиденциальным данным посторонним пользователям. Удалите его после выполнения проверки.
Настройка APC
После установки кэшер APC запускается с настройками по умолчанию. В его конфигурациях есть две очень важные настройки. Итак, откройте файл php.ini:
sudo nano /etc/php5/apache2/php.ini
Под ранее добавленной строкой, которая включает APC, внесите следующую строку:
apc.shm_size = 64
Это выделит 64MB оперативной памяти для кэширования APC. В зависимости от требований или ограничений виртуального выделенного сервера это значение может изменяться.
Ниже нужно добавить ещё одну строку:
apc.stat = 0
Настройка apc.stat проверяет скрипт при каждом запросе, чтобы проверить его на изменения. Если он был изменён, она повторно скомпилирует его и кэширует новую версию. Это стандартное поведение APC. Значение 0 в этой строке скажет APC не проверять скрипт на наличие изменений. Это улучшает производительность, но есть и обратная сторона: если в скрипте PHP появились изменения, они не будут внесены до перезапуска облачного сервера. Поэтому устанавливать значение 0 рекомендуется только на сайтах, которые находятся на стадии производства.
Теперь, когда кэшер APC установлен и запущен, можно проверить его состояние и производительность. Найдите файл apc.php в папке /usr/share/php/ и переместите его в папку, доступную для браузера – к примеру, в www:
cp /usr/share/php/apc.php /var/www
Откройте этот файл в браузере:
http://<IP_Address>/apc.php
На экране появится статистика APC. Обратите внимание: APC располагает достаточным объёмом памяти для хранения своих данных.
Кроме того, хорошим показателем работы APC является то, что Hits rate значительно выше, чем Misses rate; в противном случае нужно выполнить дополнительную настройку кэшера.
Заключение
Акселератор APC очень прост в установке и использовании. Чтобы повысить производительность сайта, установите Memcache или Varnish.