Easy-one-step install Redis 2.8 (latest) + PhpRedis in Ubuntu from source code
Dec 9, 2013, 9:57:17 PMRedis is a modern and very fast key-value storage. Someone calls it a "NoSQL" storage, someone - "just a memory cache". And all of them partly right - as Redis is a powerful tool, that could became very effective in different use cases.
Learn Redis
If you are not familiar with Redis at all. Start here - The Little Redis Book by Karl Seguin (Russian version)
Redis gets a lot of updates and new features, that's why in Linux repos you almost always see outdated versions. I recommend to install Redis and php_redis (PHP Redis driver extension) from source - it is very easy and fast.
I have prepared some bash script to do it in one step for Ubuntu.
Install latest Redis from source
Step-by-Step : Save it to .sh file and execute.
#!/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' ... '
# installing build essentials if it is missing
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
Add redis-server service
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
Add redis-server to autostart
update-rc.d redis-server defaults
Install PhpRedis from source
PhpRedis is a very fast, effective C extension for PHP that provides API for Redis server.
Save it to .sh file and execute. It will install all needed PHP dependencies, get latest php_redis, add extension config and relaunch Apache. If you use not Apache2 - then modify script a little to perform actions needed for your server.
#!/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
Straight and clear
I hope these scripts are quite easy to understand and modify as this is just a set of simple and common operations. But you do not need to repeat them each time you want to update Redis to latest version - just save these scripts and re-run.