APC как кэширующий бэкенд для Drupal 7

Уже много мы говорили о возможности настроить APC в Drupal 7 в качестве кэширующего бэкенда и поэтому сегодня будет статья, посвященная как раз этой теме. И рассмотрим мы следующие вопросы:

  1. Каким образом устанавливать APC на сервер под Debian;
  2. Основные настройки APC;
  3. Настройка APC в Drupal 7 кэширующим бэкендом;
  4. Просмотр статистики APC.

Установка APC на сервере Debian

Установка apc достаточно проста. Выполняем команду

apt-get install php-apc

Перезапускаем apache

/etc/init.d/apache2 restart

Основные настройки APC

Конфигурация apc находится в файле /etc/php5/conf.d/apc.ini. Вносим изменения в конфигурационный файл:

extension=apc.so
; Включаем кэширование APC
apc.enabled = 1
; Количество сегментов разделяемой памяти, которое APC может использовать для кэширования
apc.shm_segments = 1
; Размер каждого сегмента разделяемой памяти
apc.shm_size = 64
; Кэшировать по умолчанию все файлы
apc.cache_by_default = On
; Не кэшируем файл статистики apc.php
apc.filters = "-/home/webmaster/drupal-admin.ru/html/apc\.php$"
apc.rfc1867 = On
apc.mmap_file_mask = /tmp/apc.XXXXXX

Более подробно о параметрах настройки APC можно почитать на официальном сайте.

Настройка APC в Drupal 7 кэширующим бэкендом

Скачиваем и устанавливаем последнюю версию Drupal модуля APC, например с помощью drush

drush dl apc

В файле settings.php установки Drupal прописываем следующие строки для установки APC кэширующим бэкендом

$conf['cache_backends'] = array('sites/all/modules/apc/drupal_apc_cache.inc');
$conf['cache_default_class'] = 'DrupalAPCCache';

Просмотр статистики APC

Для просмотра статистики использования APC необходимо выложить файл apc.php, поставляемого вместа с APC, например в корень сайта. Для этого разархивируем файл /usr/share/doc/php-apc/apc.php.gz

gunzip /usr/share/doc/php-apc/apc.php.gz

Копируем файл apc.php в каталог любого доступного сайта, например в /home/webmaster/domains/drupal-admin.ru/html

cp apc.php /home/webmaster/domains/drupal-admin.ru/html

Перезапускаем apache

sudo /etc/init.d/apache2 restart

Для просмотра статистики необходимо перейти по ссылке http://ваш сайт/apc.php.

Модуль APC в Drupal не является обязательным к включению через drush en apc, так как он может использоваться исключительно на уровне PHP-ускорителя без активации Drupal-модуля. При этом при интеграции Drupal 7 с APC возможны ошибки при запуске стандартных тестов, что также стоит учитывать при настройке окружения.

В профессиональных материалах часто упоминается совместное использование APC и Memcached. Это связано с тем, что APC способен хранить кэши Drupal в оперативной памяти и теоретически может заменить Memcached, особенно в случае односерверной конфигурации. В таких сценариях использование только APC может дать хороший результат по производительности.

Однако у APC есть существенное ограничение — он не масштабируется. При переходе на несколько серверов использовать его для общего кэша данных невозможно. В этом контексте Memcached выглядит более надёжным и универсальным решением, так как позволяет выносить кэш за пределы одного сервера и использовать его в распределённой архитектуре.

Таким образом, наиболее сбалансированным подходом считается совместное использование обоих инструментов: Memcached отвечает за кэширование таблиц и данных Drupal, а APC — за кэширование PHP-скриптов. Такой вариант обеспечивает хорошую производительность и остаётся готовым к масштабированию в будущем.

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

Filtered HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <pre> <br> <h1> <h2 id> <h3 id>
  • Строки и абзацы переносятся автоматически.
  • Web page addresses and email addresses turn into links automatically.