Для начала соберем все необходимые ссылки
Собственно сам сервер Redis
PECL дистрибутив PhpRedis API
Расширение Cm_Cache_Backend_Redis для Magento
Делаем все из под root в ssh
# wget http://download.redis.io/releases/redis-2.8.9.tar.gzАктуальную ссылку на текущую версию дистрибутива берем сверху
# tar xzf redis-2.8.9.tar.gz # cd redis-2.8.9 # make
Примечание: данный мануал не будет работать на 32-х битных системах.
Затем переносим файлы сервера из папки src в папку /usr/local/bin/
# cd src # cp redis-server /usr/local/bin/ # cp redis-cli /usr/local/bin/
Теперь создадим папки для конфигов
# mkdir /etc/redis # mkdir /var/redis # mkdir /var/redis/6379Папку 6379 так назвали потому что сервер Redis использует порт 6379
Далее, копируем скрипты инициализации и конфига
# cp ../utils/redis_init_script /etc/init.d/redis_6379 # cp ../redis.conf /etc/redis/6379.conf
Правим файл конфига
# nano /etc/redis/6379.confНужно найти следующие настройки:
daemonize yes pidfile /var/run/redis_6379.pid logfile /var/log/redis_6379.log dir /var/redis/6379 maxmemory 128M maxmemory-policy volatile-lru
На этом с установкой и настройкой сервера Redis пока что закончили. Переходим к следующему этапу - установке и настройке phpRedis.
# cd ~ # pecl install redis
Намного проще, чем раньше, когда нужно было компилировать его из исходников :-)
В случае, если файл модуля не пропишется в конфигурационном файле php.ini, мы его ручками пропишем сами
# grep -q "redis.so" /usr/local/lib/php.ini || echo 'extension=redis.so' >> /usr/local/lib/php.ini
Проверка на всякий случай
# for i in `grep ^extension_dir /usr/local/lib/php.ini | awk {'print $3'} | cut -d\" -f2` ;do ls -lah $i/redis* ;done
Так как работаю я с серверами под управлением cPanel, то создам файлик скрипта, который будет добавлять дополнительно установленные модули в php.ini после перекомпиляции при помощи easyapache.
Если таких модулей несколько, то потом уже ручками буду в этот файлик добавлять нужные строки.
На деле же, сколько раз перекомпилировал apache+php, ни разу ничего не херилось. Но на всякий пожарный пускай будет.
# for i in `grep ^extension_dir /usr/local/lib/php.ini | awk {'print $3'} | cut -d\" -f2` ; do cp $i/redis.so /root ;done # for i in `grep ^extension_dir /usr/local/lib/php.ini | awk {'print $3'} | cut -d\" -f2` ; do echo -e '#!/bin/bash\ncp /root/redis.so' "$i\ngrep -q 'redis.so' /usr/local/lib/php.ini || echo 'extension=redis.so' >> /usr/local/lib/php.ini\n/etc/init.d/httpd restart" > /usr/local/cpanel/scripts/posteasyapache ;done # chmod +x /usr/local/cpanel/scripts/posteasyapache
Перезапускаем apache и снова небольшая проверка
# php -i | grep -i redis
Теперь едем дальше, устанавливаем модуль Cm_Cache_Backend_Redis
Модуль устанавливается непосредственно в систему Magento, поэтому ssh здесь уже не нужен, можно и через FTP все сделать.
Я скачал весь репо отсюда.
Из архива достаем папку Cm_Cache_Backend_Redis/Cm/Cache/Backend/ со всем ее содержимым и заливаем ее в app/code/community/
Должно получиться так:
/app/code/community/Cm/Cache/Backend/
Также, копируем папку /lib/Credis/ в соответствующую ей папку /lib в Magento
Теперь отдельно качаем файл Client.php
И закидываем его в эту папку
Должно получиться так
/lib/Credis/Client.php
Все готово, можно менять настройки кеширования в файле /app/etc/local.xml
Сразу же после
Добавляем
Cm_Cache_Backend_Redis 127.0.0.1 6379 0 0 1 10 0 1 1 20480 gzip
Наиболее актуальный конфиг можно всегда посмотреть здесь.
Не забыть очистить старые кеши и сессии в папках
/var/session
/var/cache
Перезапустить apache до кучи.
После этого можно запускать Redis
# /etc/init.d/redis_6379 start
Вот, собственно и все :-) Ну, на самом деле почти все. Потому что если уж быть маньяком кеша и скорости, то быть им до конца. А это значит, что нужно установить еще один модуль для кеширования самих сессий Magento внутри Redis.
Комментариев нет :
Отправить комментарий