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

Опубликовано admin - ср, 06/06/2012 - 19:42

Уже много мы говорили о возможности настроить 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.

Ошибки при запуске стандартных тестов Drupal 7 (при интеграции Drupal'a с APC по вашей инструкции)

Обратил внимание, что Вы (и на других сайтах другие спецы) часто упоминаете в своих статьях APC и Memcache, как работающие вместе. Хотя, APC тоже может хранить таблицы с кэшами друпала в памяти, и от Memcache можно отказаться. Если ли в этом смысл или лучше использовать всё-таки вместе два этих инструмента и почему?

Можно использовать и только APC (для одного сервера скорее всего быстрее должно быть), но тут вопрос в том, что APC не масштабируется, то есть на 2 сервера разнести не получится. Да и вообще, на мой взгляд, решение с memcached более надежно.

Да-да, точно, если идёт вопрос масштабирования, то однозначно вместе использовать.

То есть, Вы в принципе даже за то, что пусть в любой случае Memcached занимается кэшем таблиц друпала в память, а APC - php-скриптами?

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

Filtered HTML

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