Как установить Redis 2.8 (новейший) + PhpRedis на Ubuntu из исходных кодов > stdout.in Ievgen Kuzminov IT blog

Как установить Redis 2.8 (новейший) + PhpRedis на Ubuntu из исходных кодов

25 сент. 2014 г., 18:55:35

redis

Redis это современное и очень быстрое хранилище данных "ключ-значение". Кто-то причисляет его к "NoSQL" хранилищам, кто-то просто считает, что это "кэш в оперативной памяти". И каждый по своему прав - в любом случае Redis это мощный инструмент, который может быть очень эффективен во многих случаях.

Изучаем Redis

Если вы тесно не знакомы с Redis. Начните с Маленькой книге о Redis от Карла Сегуина. Книга даёт базовое понимание и вдохновляет к использованию. После неё вы уже легко разберётесь в какую сторону "копать" дальше в изучении Redis (материалов и документации в Интернете великое множество).

Redis активно разрабатывают и часто обновляют новым функционалом, и потому многие менеджеры пакетов для Linux содержат устаревшие версии. Я рекомендую устанавливать Redis и php_redis (PHP расширание для связи с Redis) из свежайших исходных кодов - это легко и просто.

Я приготовил bash для инсталляции Redis в Ubuntu "одним махом".

Устанавливаем последний Redis из исходных кодов

Исходный скрипт в Gist

Пошагово : Сохраняем в .sh файл и запусткаем.

#!/bin/bash

if [ "$(whoami)" != "root" ]; then
 echo "ERROR : Run script as Root (sudo !!) please"
 exit 1
fi

read -e -p "Redis version to be installed (change if needed) : " -i "2.8.8" VERSION
echo 'Installing redis v.'$VERSION' ... '

# Устанавливаем build essentials, если необходимо
apt-get install build-essential

wget http://download.redis.io/releases/redis-$VERSION.tar.gz
tar xzf redis-$VERSION.tar.gz
cd redis-$VERSION
make
make install prefix=/usr/local/bin/
cp redis.conf /etc/redis.conf
cd ..
rm redis-$VERSION -R
rm redis-$VERSION.tar.gz

Добавляем сервис redis-server

useradd -r -s /bin/false redis
wget -O /etc/init.d/redis-server https://gist.github.com/iJackUA/5336459/raw/4d7e4adfc08899dc7b6fd5d718f885e3863e6652/redis-server-for-init.d-startup
touch /var/run/redis.pid
chown redis:redis /var/run/redis.pid
chmod 755 /etc/init.d/redis-server

Добавляем сервис redis-server в автозапуск

update-rc.d redis-server defaults

Устанавливаем PhpRedis из исходных кодов

PhpRedis это эффективное расширение PHP, написанное на языке C, предоставляющее API для работы с Redis.

Исходный скрипт в Gist

Сохраняем в .sh файл и запускаем. Это установит необъодимые PHP зависимости, последний php_redis, добавит настройки расширения и перезапустит сервер Apache. Если вы не используете Apache2, то подправьте скрипт с необходимыми вам шагами.

#!/bin/bash

if [ "$(whoami)" != "root" ]; then
 echo "ERROR : Run script as Root (sudo !!) please"
 exit 1
fi

read -e -p "php_redis version to be installed (change if needed) : " -i "2.2.5" VERSION
echo 'Installing php_redis v.'$VERSION' ... '

# installing build essentials if it is missing
apt-get install php5-dev php-pear

wget https://github.com/nicolasff/phpredis/archive/$VERSION.tar.gz
tar xzf $VERSION.tar.gz
cd phpredis-$VERSION
phpize
./configure
make
make install
cd ..
rm phpredis-$VERSION -R
rm $VERSION.tar.gz

mv /etc/php5/mods-available/redis.ini /etc/php5/mods-available/redis.bkp
touch /etc/php5/mods-available/redis.ini
echo "extension=redis.so" > /etc/php5/mods-available/redis.ini
ln -s /etc/php5/mods-available/redis.ini /etc/php5/apache2/conf.d/redis.ini
ln -s /etc/php5/mods-available/redis.ini /etc/php5/cli/conf.d/redis.ini

service apache2 restart

Для обновления - запустить ещё раз

Скрипты весьма понятны и линейны, т.к. используют только базовые операции, которые легко адаптировать под свою среду и сервер. И при необходимости обновить Redis - их можно просто перезапустить, указав новую версию.

comments powered by Disqus
Евгений
Кузьминов "iJackUA"
Web Team Lead
в MobiDev (Харьков, Украина)
Code in Ruby and Elixir, but still love PHP. Explore ES6 and Vue.js. Explore databases, use Ubuntu and MacOS, think about IT people and management

Заметки


SuperHeroJS - great collection of articles on all aspects of JavaScript. Starting from very basics up to questions of advanced usage, code organisation, testing, tools and performance