Symfoware

Symfowareについての考察blog

FreeBSD 10.2でRedmine 3.1の環境構築(Nginx+Puma+PostgreSQL)

FreeBSD 10.2にRedmine 3.1.1が動く環境を構築した時のメモです。

OS:FreeBSD
Webサーバー:Nginx
アプリケーションサーバー:Puma
データベース:PostgreSQL

こちらの手順を参考にしました。
FreeBSD 10.0でRedmine 2.5の環境構築(Nginx+Unicorn+PostgreSQL)

Pumaに関しては、こちらを参考にしました。
Puma + nginxでRedmine 2.6を動かす




PostgreSQL 9.4



PostgreSQL 9.4.4をインストールし、接続ユーザーを作成。
「redmine」というデータベースの作成を行います。


PostgreSQL 9.4のインストール


# pkg install postgresql94-server




/etc/rc.confに「postgresql_enable="YES"」を追記し、起動を許可。


# vi /etc/rc.conf




編集後のファイルの抜粋です。


defaultrouter="192.168.1.1"
sshd_enable="YES"
postgresql_enable="YES"

# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"




initdbを実行してデータベースの初期化。その後、データベースを起動します。


# /usr/local/etc/rc.d/postgresql initdb
# service postgresql start




pgsqlユーザーになり、「redmine」という名前のデータベースを作成。


# su - pgsql
$ createdb -E UTF8 redmine




ついでに、接続用に「pgadmin」というユーザーを作成しました。


$ createuser --pwprompt --interactive pgadmin
Enter password for new role: [パスワードを入力]
Enter it again: [パスワードを再入力]
Shall the new role be a superuser? (y/n) y








RubyとRubyGemsのインストール



pkgコマンドで、ruby-gemsをインストールします。
この操作で、合わせてruby2.1.7がインストールされます。


# pkg install ruby21-gems
ruby21-gems




Rubyは2.1.7。gemは2.4.8がインストールされました。


# ruby -v
ruby 2.1.7p400 (2015-08-18 revision 51632) [amd64-freebsd10]

# gem -v
2.4.8







Redmine 3.1.1のインストール



必要なライブラリを事前にインストールします。

Redmineのダウンロード用にwget
後々必要となるImageMagic
Redmineのインストール用にbundler

上記3つをインストール。


# pkg install wget
# pkg install ImageMagick
# gem install bundler --no-rdoc --no-ri




Redmine本体のインストールを開始します。
こちらのURLで最新バージョンを確認。

http://www.redmine.org/projects/redmine/wiki/Download

ダウンロードして解凍します。


# cd /usr/src
# wget http://www.redmine.org/releases/redmine-3.1.1.tar.gz
# tar zxf redmine-3.1.1.tar.gz




/usr/local/www/redmineで公開することにしました。
解凍したフォルダを移動&カレントディレクトリも移動します。


# mkdir /usr/local/www
# mv /usr/src/redmine-3.1.1 /usr/local/www/redmine
# cd /usr/local/www/redmine/




config/database.ymlを新規作成。


# vi config/database.yml




記載する内容は以下のとおりです。


production:
    adapter: postgresql
    database: redmine
    host: localhost
    username: pgadmin
    password: "P@ssw0rd"
    encoding: utf8




最終的にはPumaで起動したいので、Gemfile.localを作成し「gem "puma"」と記載しておきます。


# vi Gemfile.local



ファイルの内容は以下の1行です。


gem "puma"




「bundle install」でRedmineに必要なパッケージをインストール。


# bundle install
users on this machine.
Fetching gem metadata from https://rubygems.org/.........
Fetching version metadata from https://rubygems.org/..
Resolving dependencies....
Installing rake 10.4.2
Installing i18n 0.7.0
(略)
Installing puma 2.14.0 with native extensions
(略)
Bundle complete! 29 Gemfile dependencies, 62 gems now installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.
Post-install message from rdoc:
Depending on your version of ruby, you may need to install ruby rdoc/ri data:

<= 1.8.6 : unsupported
= 1.8.7 : gem install rdoc-data; rdoc-data --install
= 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!




Gemfile.localに記載しておいたので、pumaがインストールされましたね。
続いて、Redmineの初期化とパイロットデータのロードを行います。


# rake generate_secret_token
# rake db:migrate RAILS_ENV=production
# rake redmine:load_default_data RAILS_ENV=production
Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB,
es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko,
lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr,
sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ja

====================================
Default configuration data loaded.




webrickでRedmineが起動するかチェック。


# ruby bin/rails server webrick -e production --bind=0.0.0.0



http://[サーバーIP]:3000/にアクセスして、こんな画面が表示されればOKです。

649_01.png


確認できたら、Ctrl + Cでサーバーを終了します。


余談として、以前と同じコマンドを実行したら、こんなエラーになりました。


# ruby script/rails server webrick -e production
script/rails no longer exists, please use bin/rails instead.



「script/rails」から「bin/rails」に変更されたようです。

また、「--bind=0.0.0.0」オプションをつけていないと、外部からアクセスできませんでした。
以前はOKだったと思うのですが。。。






Nginxのインストール



pkgコマンドでnginxをインストールしました。


# pkg install nginx




インストールされたバージョンは、1.8.0です。
/etc/rc.confに「nginx_enable="YES"」を追記して、起動を許可します。


# vi /etc/rc.conf




追記した箇所の抜粋です。


defaultrouter="192.168.1.1"
sshd_enable="YES"
postgresql_enable="YES"
nginx_enable="YES"

# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"




nginxを起動。


# service nginx start




ちゃんとインストールできたようです。

649_02.png





PumaでRedmine起動




config/puma.rbというファイルを作成し、設定を記載します。


# vi config/puma.rb




内容は以下のとおり。


application_path = '/usr/local/www/redmine'
directory application_path
environment 'production'
daemonize true
pidfile "#{application_path}/tmp/pids/puma.pid"
state_path "#{application_path}/tmp/pids/puma.state"
stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log"
bind 'tcp://0.0.0.0:3000'




作成したconfig/puma.rbを指定して、起動してみます。


# bundle exec puma -e production --config config/puma.rb
Puma starting in single mode...
* Version 2.14.0 (ruby 2.1.7-p400), codename: Fuchsia Friday
* Min threads: 0, max threads: 16
* Environment: production
* Daemonizing...




webrickの時と同様、http://[サーバーIP]:3000/にアクセスして、画面が表示されればOKです。

停止は「tmp/pids/puma.pid」にプロセスIDを出力しているので、これをkillします。


# kill `cat tmp/pids/puma.pid`







NginxとPumaの連携



Puma + nginxでRedmine 2.6を動かす

こちらと同様、Pumaをtcpではなくunixソケットに変更して連携してみようと思います。
puma.rbの一部を修正。


# vi config/puma.rb



変更箇所は赤字の部分です。


application_path = '/usr/local/www/redmine'
directory application_path
environment 'production'
daemonize true
pidfile "#{application_path}/tmp/pids/puma.pid"
state_path "#{application_path}/tmp/pids/puma.state"
stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/
log/puma.stderr.log"
#bind 'tcp://0.0.0.0:3000'
bind "unix://#{application_path}/tmp/sockets/redmine.sock"




続いて、nginx.confを編集します。


# vi /usr/local/etc/nginx/nginx.conf




こんな感じの指定になりました。


worker_processes 1;

events {
    worker_connections 1024;
}


http {
    include     mime.types;
    default_type application/octet-stream;

    sendfile        on;
    keepalive_timeout 65;

    # unixソケットを指定する。
    upstream redmine {
        server unix:/usr/local/www/redmine/tmp/sockets/redmine.sock;
    }

    server {
        listen     80;
        server_name localhost;

        location / {
            # 全てupstreamに転送
            proxy_read_timeout 300;
            proxy_connect_timeout 300;
            proxy_redirect     off;

            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host             $http_host;

            proxy_pass http://redmine;
        }
    }
}





Pumaを起動し、nginxを再起動。


# bundle exec puma -e production --config config/puma.rb
# service nginx restart




http://(サーバーIP)/にアクセスすると、Redmineの画面が表示されると思います。

ユーザーID:admin
パスワード:admin

でログインできると思います。

649_03.png
関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2015/10/17(土) 18:37:48|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Ubuntu 14.04にSteamをインストールし「Poly Bridge」の動作確認 | ホーム | PostgreSQL multicorn extensionのインストールと設定>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1804-fb0c8001
この記事にトラックバックする(FC2ブログユーザー)