Установка Alternative PHP Cache (APC) на сервер Ubuntu 12.04

Published by Leave your thoughts

Что такое 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.

Tags: , , , ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>