Уже много мы говорили о возможности настроить APC в Drupal 7 в качестве кэширующего бэкенда и поэтому сегодня будет статья, посвященная как раз этой теме. И рассмотрим мы следующие вопросы:
- Каким образом устанавливать APC на сервер под Debian;
- Основные настройки APC;
- Настройка APC в Drupal 7 кэширующим бэкендом;
- Просмотр статистики 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-скриптов. Такой вариант обеспечивает хорошую производительность и остаётся готовым к масштабированию в будущем.
Добавить комментарий