スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

Debian(jassie)サーバーにNginx+unicornでRedmine

諸事情でCentOSサーバーがDebianサーバーに生まれ変わりました。(6.6→7.0のupgradeに失敗してシステムふっ飛ばした上に6.6も7.0もインストールの途中でエラー吐いて止まるようになってしまったのでもういいやとDebianに変えた)

というわけで久々にDebianサーバーですが、いろいろとセットアップ中です。
/varと/homeは別パーティションで残してたので、まぁOS自体のセットアップができればいろんなデータは残ってるし。

というわけで本題。Redmineをrbenvで入れたruby+unicorn+Nginxで動かします。
Redmineはこれを機に3.1.1
ruby 2.2.3
Nginx 1.8.0
unicorn 4.9.0
MariaDB 10.0.20

1.rbenvでrubyインスコ
rbenvはリポジトリにあるので普通にapt-get。

$ sudo apt-get install rbenv


/homeに残ってた残骸除去。

$ sudo rm -rf ./rbenv/*


ruby-buildをgitで引っ張ってくる

$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build


必要に応じてパスとおす

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile


.bashrcに直接記述でも可。

# rbenv
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"


rbenvでインストールできるrubyのバージョン確認。して今回は2.2系で一番新しい2.2.3にしました。

$ rbenv install --list
$ rbenv install 2.2.3


ちょっとかかるのでお茶でも飲みながら待つ。

2.redmineの本体を引っ張ってきて設定
wgetでとってきます。gitで最新開発版でもいいけど、動かなかったときに切り分けがめんどいので正式版。

$ wget http://www.redmine.org/releases/redmine-3.1.1.tar.gz
–2015-10-21 17:50:31– http://www.redmine.org/releases/redmine-3.1.1.tar.gz
www.redmine.org (www.redmine.org) をDNSに問いあわせています… 46.4.36.71
www.redmine.org (www.redmine.org)|46.4.36.71|:80 に接続しています… 接続しました
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 2246322 (2.1M) [application/x-gzip]
`redmine-3.1.1.tar.gz’ に保存中

redmine-3.1.1.tar.gz 100%[=======================================

2015-10-21 17:50:35 (732 KB/s) - `redmine-3.1.1.tar.gz’ へ保存完了


解凍して/var/www/に配置。
$ tar xvfs redmine-3.1.1.tar.gz
$ sudo mv redmine-3.1.1 /var/www/redmine

3.データベースのインスコと設定云々
MySQLはもう古いので最近はやりのMariaDBでいきましょー。

$ sudo apt-get install mariadb-server-10.0
$ mysql -u uname -p
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 255
Server version: 10.0.20-MariaDB-0+deb8u1 (Debian)

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| baser |
| concrete57 |
| drupal |
| information_schema |
| mysql |
| performance_schema |
| redmine |
| sabakan |
| test |
| tminwp |
| wp |
| zabbix |
+--------------------+
16 rows in set (0.47 sec)


mariaDBなのにコマンドはなぜかMySQLです。show databasesしてみたらCentOS時代のデータベース全部残ってて読み込めたよやったね!!
新規でDB作る場合は
> create database redmine; とかしときましょう。
あとredmineのほうにデータベース接続情報が必要。

$ emacs /var/www/redmine/config/database.yml
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "xxxxxxx"
encoding: utf8

development:
adapter: mysql2
database: redmine_development
host: localhost
username: root
password: ""
encoding: utf8


productionのほうに使うDBとユーザー、パスワードとか書き込んで保存。

4.bundleで依存パッケージ入れる
ここからが本番だ!!
redmineの本体を置いたディレクトリに移動してrbenvは対象のバージョンセット。
bundler入れてbundle install で依存パッケージを入れる。たいてい途中でこけるので、こけたときはこけたパッケージに必要なパッケージ入れたりして何とかしてみます。

$ cd /var/www/redmine
$ rbenv local 2.2.3
$ ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
$ sudo apt-get install bundler
$ bundle install –without development test
Please configure your config/database.yml first
Fetching gem metadata from https://rubygems.org/………
Fetching version metadata from https://rubygems.org/..
Resolving dependencies…………………………………….
Installing rake 10.4.2
Installing i18n 0.6.11
Installing multi_json 1.11.2
(以下略)


うちの環境でこけたのは
json -v '1.8.3’`→ruby-dev が必要だった
mysql2 0.3.17→libmysqld-devが必要だった
RMagick 0.0.0→ImageMagickが必要だけど$ bundle install –without development test rmagick で回避可能

この辺が全部通ればとりあえずひと段落。

DBの更新

/var/www/redmine $ sudo bundle exec rake db:migrate RAILS_ENV=production


キャッシュとセッションファイルのクリア

/var/www/redmine $ sudo bundle exec rake tmp:cache:clear tmp:sessions:clear


session_store.rbの生成

/var/www/redmine $ sudo bundle exec rake generate_secret_token



5.unicorn入れて動かしてみる

$ gem install unicorn


で入るんだけど、redmineディレクトリにGemfile.localを作成してここに記述するのが行儀のよいやり方らしい。

$ sudo emacs Gemfile.local
gem 'unicorn'
$ bundle update


unicornが入ればおっけ。

$ sudo bundle exec unicorn_rails -l 8081 -E production
I, [2015-10-21T19:27:46.749247 #1856] INFO – : listening on addr=0.0.0.0:8081 fd=9
I, [2015-10-21T19:27:46.749518 #1856] INFO – : worker=0 spawning…
I, [2015-10-21T19:27:46.751283 #1856] INFO – : master process ready
I, [2015-10-21T19:27:46.752079 #1859] INFO – : worker=0 spawned pid=1859
I, [2015-10-21T19:27:46.752342 #1859] INFO – : Refreshing Gem list
sh: 1: svn: not found
I, [2015-10-21T19:27:50.175496 #1859] INFO – : worker=0 ready
^CI, [2015-10-21T19:29:46.825149 #1856] INFO – : reaped # worker=0
I, [2015-10-21T19:29:46.825523 #1856] INFO – : master complete


エラーが出なければオッケー。
この時点でhttp;//サーバーIP:8081 にアクセスするとredmineの画面に行けますね。起動していれば。
あ、後ろのポートは適当です。適当に使ってないポート指定してあげましょう。

7.Nginxのインストールとredmine用の設定とか
DebianのデフォのNginxって古いよねー、ということでリポジトリ追加しましょー。

$ sudo emacs /etc/apt/sources.list
deb http://nginx.org/packages/debian/ jessie nginx
deb-src http://nginx.org/packages/debian/ jessie nginx

$ sudo apt-get install nginx
$ sudo nginx -v
nginx version: nginx/1.8.0



起動。

$ sudo service nginx start



redmine用というかunicorn用の設定

先頭の

upstream unicorn {
server unix:/tmp/unicorn.redmine.sock fail_timeout=0;
}


あと/redmineに来た時にunicornで起動している:8081ポートにproxyかましてるだけですね。
設定したら再起動

$ sudo service nginx restart



ここでハマリポイント。
Redmineをルートディレクトリで動かすときはこれでよいのですが、サブディレクトリで動かすときにはちょっと設定が必要。
これが分かってなくて何度もNginxの設定を疑っていたのですが。

8.redmineをunicorn+Nginxでサブディレクトリで動かすときの設定
config.ruを書き換え

これ書き換え失敗するとunicornの起動ループに陥るようなので気を付けましょう。Ctrl+Cで止められるけれども。

あとサブディレクトリで動かすには--path /redmine のオプションが必要。

$ sudo bundle exec unicorn_rails -l 8081 -E production --path /redmine
I, [2015-10-28T03:45:14.663770 #19137] INFO -- : listening on addr=0.0.0.0:8081 fd=9
I, [2015-10-28T03:45:14.664028 #19137] INFO -- : worker=0 spawning...
I, [2015-10-28T03:45:14.665752 #19137] INFO -- : master process ready
I, [2015-10-28T03:45:14.666586 #19140] INFO -- : worker=0 spawned pid=19140
I, [2015-10-28T03:45:14.666881 #19140] INFO -- : Refreshing Gem list
I, [2015-10-28T03:45:18.475642 #19140] INFO -- : worker=0 ready



これに気付かずにはまってました。IP:ポートで接続できるんだけど、IP/redmineだと403とか404。
要は直接つなげばちゃんと動いてるんだけど、Nginxを間に挟むとダメだったってことなんですが、このオプションが足りないだけでした。

というわけでなんとかおうちサーバーのRedmineをunicornで動かしてNginxのproxy_passで、ってとこまでたどり着きました。
割とさらっと書いたけど計3日くらいはまってましたね。お疲れ。俺。

関連記事
さくらVPS(CentOS6.6)にRedmineを入れる記
さくらVPS(CentOS6.6)にGitlabをインストール
関連記事
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

コメントの投稿

管理者にだけ表示を許可する
ブログ内検索

カスタム検索

フリーエリア

クリックで救える命がある。

レンタルサーバー

さくらのマネージドサーバ
さくらインターネットのVPS
ConoHaのVPS
WebARENA VPSクラウド
99円レンタルサーバー
【CloudCore VPS】
GMOクラウドのレンタルサーバー
転送量無制限 ABLENET
@WAPPYレンタルサーバー
SPPDレンタルサーバー

カテゴリー+月別アーカイブ

 

アクセスカウンター

現在の閲覧者数:

プロフィール

Author:tmin
PCヲタ。ライト2ちゃんねら。
スロット好きのギャンブラー。(元
むしろ人生がギャンブルだが目下のところ負けっぱなし。
座右の銘は「結果オーライ」。故に基本適当。
トラブルもまた楽しみのひとつ

コメント、トラバ、相互リンク歓迎。お気軽にどうぞ。
当ブログについて
Twitterでこっちとあっちの更新情報流すことにしてみます。
http://twitter.com/t_min
Project Mikunchu♪Wikiできました。
Mikunchu200x40.png


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。