さくらのレンタルサーバでredisを使う

さくらのレンタルサーバ(スタンダード)にredisをインストールする方法のメモ

Laravelのキューを使うついでに、せっかくなのでredisを使えるようにしてみる。 Laravelをさくらで使うあたりは以前の記事を参照

インストール

ソースを展開

SSHでログインして公式の手順通り以下の様にする

% wget http://download.redis.io/releases/redis-3.2.0.tar.gz
% tar xzf redis-3.2.0.tar.gz
% cd redis-3.2.0

最新版(Ver.3.2.4)では、権限絡みでmakeに失敗する為、少し古いバージョンを使っているのがポイント

インストール先の変更

src/Makefileを開く (redis-3.2.0直下にもMakefileがあるので間違わないこと)

PREFIX?=という行を以下の様に書き換えて保存する

PREFIX?=/home/アカウント名

make

% gmake
% gmake install

さくらのサーバはBSD系なのでgmakeを使ってインストールを実行。 これで、~/binredis関連がインストールされる

もし、~/binにパスが通っていなければ通しておくと便利

実行

一旦、SSHをログアウトしてログインしなおしてから

% nohup redis-server < /dev/null >& /dev/null &

として、redisサーバをバックグラウンド起動する

確認のため、

% redis-cli

として、

127.0.0.1:6379>

というようになればOK。失敗している時はnot connected>となる

この時に表示されているサーバのIPとポート番号を覚えておくこと

確認が終了すれば、exitで抜ける(shatdownにするとサーバまで止まるのでNG)

Laravelで使う

パッケージの準備

Laravelredisを使うにはpredis/predisが必要なので、Composerでインストールしておく

設定

config/database.phpの中のredisを設定する

'redis' => [

  'cluster' => false,

  'default' => [
    'host'     => '127.0.0.1',      // redis-cliで確認したIP
    'port'     => 6379,             // redis-cliで確認したポート
    'database' => 0,
  ],
],

なお.envを使う場合、databaseの部分はintval(env('REDIS_DATABASE', 0))というように明示的にintにしないとエラーになるので注意

以上で、Laravelからもredisが使える様になる

環境