Default Green Orange
Gemini_13's Blog
Блокнот полезных вещей
Home
    • Карта сайта
    • Обо мне
RSS

Установка Redis + Redis PHP на Debian 6

Linux, Настройка сервера, Разное Add comments

Впринципе в инете достаточно много мануалов по установке Redis, но как-то у меня так случилось, что подходящего мануала не нашел и поэтому ставил по 3-4 мануалам. Вдаваться в подробности я не буду, поскольку только набираюсь ума и толково не обьясню что куда, да и не все нюансы сам понимаю.
Заметка снова в стиле «копи-паст» для быстрой установки Redis на сервер с OC Debian под рутом.


Установка и настройка Redis

Ставим пакеты, которые нам будут нужны в процессе сборки и тестирования:

apt-get install make gcc unzip php5-dev

Переходим на страничку для скачивания свежей версии Redis на официальном сайте или же просто ищем по поисковику:
http://redis.io/download
На время написания заметки актуальная стабильная версия 2.4.17. Копируем справа напротив версии ссылку на скачивания архива:
http://redis.googlecode.com/files/redis-2.4.17.tar.gz
И приступаем к установке:

# wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz
# tar xzf redis-2.4.17.tar.gz
# cd redis-2.4.17
# make && make test

Сборка будет пару минут, потому можно сходить покурить или взять чашечку кофе 🙂

Когда все удачно собралось, продолжаем установку:

# cp src/redis-server src/redis-cli /usr/bin
# mkdir /etc/redis
# cp redis.conf /etc/redis/
# groupadd redis
# useradd -l -g redis redis
# touch /var/log/redis.log
# chown redis:redis /var/log/redis.log

Приступим к настройке конфига redis-ки:

# nano /etc/redis/redis.conf

Тут нам нужно обратить внимание на несколько параметров:

# Пусть работает как демон
daemonize yes

# Прослушиваем только локальный интерфейс
bind 127.0.0.1

# Закрыть соединение после того, как клиент находится в режиме ожидания N секунд (0 для отключения)
timeout 30

# Включаем логирование
logfile /var/log/redis.log
syslog-enabled yes
syslog-ident redis

# Папка для базы редиски
dir /usr/var/redis/

Теперь нам нужен init-скрипт для управления демоном. Он уже есть, нужно в папке utils, но он поддерживает только start и stop. Можно использовать и его, но мне хотелось с возможностью перезагрузки одной командой. Такой скрипт нашелся тут. Его мы и будем использовать.

# nano /etc/init.d/redis

Заменям весь код на этот:

#! /bin/sh
### BEGIN INIT INFO
# Provides:		redis-server
# Required-Start:	$syslog
# Required-Stop:	$syslog
# Should-Start:		$local_fs
# Should-Stop:		$local_fs
# Default-Start:	2 3 4 5
# Default-Stop:		0 1 6
# Short-Description:	redis-server - Persistent key-value db
# Description:		redis-server - Persistent key-value db
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/redis-server
DAEMON_ARGS=/etc/redis/redis.conf
NAME=redis
DESC=redis-server
PIDFILE=/var/run/redis.pid

test -x $DAEMON || exit 0
test -x $DAEMONBOOTSTRAP || exit 0

set -e

case "$1" in
  start)
	echo -n "Starting $DESC: "
	touch $PIDFILE
	chown redis:redis $PIDFILE
	if start-stop-daemon --start --quiet --umask 007 --pidfile $PIDFILE --chuid redis:redis --exec $DAEMON -- $DAEMON_ARGS
	then
		echo "$NAME."
	else
		echo "failed"
	fi
	;;
  stop)
	echo -n "Stopping $DESC: "
	if start-stop-daemon --stop --retry 10 --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
	then
		echo "$NAME."
	else
		echo "failed"
	fi
	rm -f $PIDFILE
	;;

  restart|force-reload)
	${0} stop
	${0} start
	;;
  *)
	echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2
	exit 1
	;;
esac

exit 0

Выдадим права:

# chmod 755 /etc/init.d/redis

Проверим работу скрипта командами:

# service redis start
# service redis restart
# service redis stop

Когда сервер запущен проверяем как он работает:

# telnet localhost 6379

Если получили такой ответ, значит всё работает нормально:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
^CConnection closed by foreign host.

Теперь положим redis в автозагрузку:

# update-rc.d redis defaults

Компиляция модуля для PHP

Для работы скриптов php с redis-сервером нужен еще дополнительный модуль. Их существует несоколько и их все можно найти на том же официальном сайте на вкладке Clients. Честно скажу разницу в них не знаю, но для себя выбрал phpredis (звездочка подкупила :-D). Начем…
Возвращаемся обратно в папку рута и скачиваем файлы (актуальная версия сейчас 2.2.2):

# cd ~
# wget https://github.com/nicolasff/phpredis/zipball/master
# unzip master
# cd nicolasff-phpredis-3a3ee37

Беремся за компиляцию модуля:

# phpize

Получаем в ответ нечто такое, версии могут отличатся, но нужно запомнить свою.

Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626

Компилируем:

# ./configure CFLAGS="-O3"
# make clean all && make test

Если всё прошло успешно то в папке modules должен был появится модуль redis.so, который мы перекинем в папку к другим модулям php:

# cp modules/redis.so /usr/lib/php5/<folder>

— Ваша папка (версия), у меня 20090626

Теперь подключаем в php наш модуль. Для этого нам нужно создать файл redis.ini и вписать в него extension=redis.so:

# nano /etc/php5/apache2/conf.d/redis.ini

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

# service apache2 restart

Удаляем весь мусор:

# cd ..
# rm redis-2.4.17.tar.gz
# rm master
# rm -R redis-2.4.17
# rm -R nicolasff-phpredis-3a3ee37

Всё, Redis установлен и работает. 🙂


19 октября, 2012  
Tags: debian, php5, phpredis, redis, redis.so, редиска, установка

4 комментария to “Установка Redis + Redis PHP на Debian 6”

  1. Избавляемся от ошибок Redis | Gemini_13's Blog
    15 ноября, 2012 at 5:09 дп

    […] Логи великая штука и не зря советуют их просматривать. Вот по своей неопытности я засрал себе логи редиса аж на целых 2Гб за 3-4 недели. Что ж.. Нужно учится на ошибках. Как устанавливался Redis я описывал в заметке Установка Redis + Redis PHP на Debian 6. […]


  2. soldes doudoune moncler
    30 ноября, 2012 at 7:10 дп

    Good post, I always like them.


  3. Установка redis-server на Ubuntu server 12.04 LTS | FX-FILES
    2 февраля, 2013 at 2:18 пп

    […] Redis установлен и работает. Источники: http://g13.org.ua/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-redis-redis-php-%D0%BD%D0%B… http://habrahabr.ru/qa/28525/ http://habrahabr.ru/post/134974/ This entry was posted in web and […]


  4. Установка Redis в Debian Squeeze | xandroskin blog
    29 декабря, 2013 at 1:18 пп

    […] Установка Redis + Redis PHP на Debian 6 How To Install and Use Redis Запись опубликована 29.12.2013 автором xandros в рубрике IT, Linux с метками redis, redis-server, redis.cofnf, tcl8.5. […]


Leave a Reply

  • Рубрики

    • FreeBSD (20)
    • Linux (46)
    • MySQL (11)
    • Windows (14)
    • Железо (3)
    • Мои моды к TorrentPier II (16)
    • Настройка сервера (49)
    • Разное (33)
    • Скрипты (30)
  • Свежие записи

    • Поля форм на Yii2: textInput(), passwordInput() и hiddenInput()
    • Поля форм на Yii2: CheckboxList()
    • SpeedTest датацентров Digital Ocean
    • Патчим Gearman на Debian
    • nginx + Apache 2.4 и REMOTE_ADDR (решение проблемы)
    • Создание и подключение swap-файла в Debian
    • Запуск PhpStorm 9 x64 на Windows
    • Рекурсивная замена прав доступа для папок и файлов в Linux
    • VirtualBox 5 + phpVirtualBox на Debian 8.2 (jessie)
    • Обработка сессий PHP с помощью Redis + phpredis на Debian 7.8
  • Ссылки

    • My GitHub
  • Архивы

    • Июнь 2016 (2)
    • Март 2016 (2)
    • Январь 2016 (3)
    • Ноябрь 2015 (2)
    • Август 2015 (1)
    • Февраль 2015 (1)
    • Январь 2015 (7)
    • Октябрь 2014 (1)
    • Июнь 2014 (1)
    • Май 2014 (1)
    • Апрель 2014 (7)
    • Февраль 2014 (9)
    • Январь 2014 (5)
    • Декабрь 2013 (7)
    • Ноябрь 2013 (1)
    • Октябрь 2013 (3)
    • Август 2013 (4)
    • Июль 2013 (4)
    • Июнь 2013 (3)
    • Апрель 2013 (2)
    • Март 2013 (2)
    • Февраль 2013 (6)
    • Январь 2013 (2)
    • Декабрь 2012 (1)
    • Ноябрь 2012 (2)
    • Октябрь 2012 (7)
    • Сентябрь 2012 (22)
Все права защищены © 2012 Gemini_13's Blog
G13.org.ua