joruriGWをubuntu+ruby2.0+nginx+unicornで動かす
Ruby on Rails上で動くOSSのグループウェア,joruriGwをubuntu上で動かす手順を説明します。当然のことですが,joruriGwは,ubuntu上でも動きます。
joruriGwについては,公式ページ(http://joruri.org/)を参照してください。
このポストは,joruriGwに付属してたCentOS用のinstallマニュアルをubuntu用に書き換えたものです。
環境
OS:ubuntu 12.04.03 LTS
webサーバ:nginx
ruby:ruby 2.0.0p247
アプリサーバ:unicorn
DB:mysql
jorurigwのパス:home/joruri/jorurigw
ライブラリのインストール
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate libxslt1.1 libxslt1-dev libxml2-dev libyaml-dev libjpeg-dev libpng12-dev librsvg2-dev libgs-dev imagemagick libmagick++-dev libcurl4-openssl-dev nkf libldap2-dev libsasl2-dev shared-mime-info libevent libevent-dev
rubyのinstall
mkdir /tmp/ruby && cd /tmp/ruby curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz | tar xz cd ruby-2.0.0-p247
./configure
make
sudo make install
bundlerのインストール
sudo gem install bundler --no-ri --no-rdoc
RubyGemsを更新
sudo gem update –system
joruri実行ユーザをOSに作成
joruriユーザではログインできないようにする。操作は,sudo -u joruri -H で行う。(gitlabのインストールマニュアルのマネ)
sudo adduser --disabled-login --gecos 'Joruri' joruri
cd /home/joruri
memcachedのinstall
sudo apt-get install memcached
mysqlサーバのインストールとユーザの作成
sudo apt-get install mysql-server
インストール中にrootのパスワードを設定する。
ついでに,rubyのライブラリmysql2 (0.3.11) のインストールに必要なパッケージもインストールしておく。
sudo apt-get install libmysqlclient-dev
続いて,joruriGwが使うmysqlのユーザを作成する。とりあえずここでは,ユーザ:joruri password:passwordとする(←ちゃんと変えてください。)
mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO joruri@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> exit
nginxのインストール
sudo apt-get install nginx
nginxの設定
新しく書くのはめんどいし,ミスりがちなので,gitlabのnginx用の設定ファイルを修正して使う。
sudo nano /etc/nginx/sites-available/jorurigw
jorurigwに,gitlabのnginx用の設定ファイル(lib/support/nginx/gitlab)をコピーして修正して保存。
sites-available/に作った設定ファイルのリンクを,sites-enable/に貼る。
sudo ln /etc/nginx/sites-available/jorurigw /etc/nginx/sites-enable/jorurigw
joruriGWのダウンロードと展開
cd /home/joruri
sudo -u joruri -H wget http://joruri.org/download/jorurigw/jorurigw-2.1.1.tar.gz
sudo -u joruri -H tar xvzf jorurigw-2.1.1.tar.gz
joruriGwのコードは,/home/joruri/jorurigwに展開。
joruriGWの設定
ユーザjoruriが,jorurigwの下のlog/とtmp/にアクセスできるようにパーミッションを修正。
cd /home/joruri/jorurigw
sudo -u joruri -H mkdir tmp
sudo chown -R joruri log/
sudo chown -R joruri tmp/
sudo chmod -R u+rwX log/
sudo chmod -R u+rwX tmp/
tmp/socketsとtmp//pidsにjoruriユーザがアクセス出来るようにパーミッションを設定
cd /home/joruri/jorurigw
sudo -u joruri -H mkdir tmp/pids/
sudo -u joruri -H mkdir tmp/sockets/
sudo chmod -R u+rwX tmp/pids/
sudo chmod -R u+rwX tmp/sockets/
gemファイルの設定
bundlerがunicornをインストールするように,gemファイルを修正する。
本来は,Gemfile.localを作成して,そこに書き込む方が良いのだが,joruriGwが配布するgemfileがgemfile.localを読み込む設定になっていないので,Gemfileに直接書き込む。
sudo -u joruri -H nano Gemfile
コメントアウトされている,gem 'unicorn'を有効にする。joruriGwの開発側は,unicorn上での動作も想定に入れているのかしら…
gemのインストール
joruriGwの動作に必要なrubyのライブラリをインストールします。
cd /home/joruri/jorurigw
bundle install
データベースの設定
注意点は,config/databases.ymlに,production以外にも,dev_jgw_gwとgwsubの設定も必要なこと。どうしてこうなっているのかはなぞ。
config/database.ymlの設定
production:
adapter: mysql2
encoding: utf8
reconnect: false
database: production_jgw_core
pool: 5
username: joruri #←mysqlに設定したユーザ名に合わせる。
password: "password" #mysqlに設定したパスワードに合わせる。
host: localhost
========(中略)=============
dev_jgw_gw:
adapter: mysql2
encoding: utf8
reconnect: false
database: <%= env_prefix %>_jgw_gw
pool: 5
username: joruri #productionと同様に
password: "password" #productionと同様に
host: localhost
socket: /var/lib/mysql/mysql.sock
gwsub:
adapter: mysql2
encoding: utf8
reconnect: false
database: <%= env_prefix %>_jgw_gw_pref
pool: 5
username: joruri #productionと同様に
password: "joruri" #productionと同様に
host: localhost
socket: /var/lib/mysql/mysql.sock
セキュリティのために,database.ymlをjoruriユーザ以外が読めないようにする。
sudo -u joruri -H chmod o-rwx config/database.yml
データベースに初期データを作成する
joruriGwのインストールマニュアルは,development環境での設定方法を書いてあるので,気をつけてください。通常のrailsのアプリケーションと違って,rakeでDBの設定が出来ないので,sql文を手打ちします。
最初にデータベースを作成します。
mysql -u root -p -e "create database production_jgw_core"
mysql -u root -p -e "create database production_jgw_gw"
mysql -u root -p -e "create database production_jgw_gw_pref"
mysql -u root -p -e "create database production_jgw_bbs_000001"
続いて,テーブルを作成します。
mysql -u root -p production_jgw_core < ./db/development_jgw_core_schema.sql
mysql -u root -p production_jgw_gw < ./db/development_jgw_gw_schema.sql
mysql -u root -p production_jgw_gw_pref < ./db/development_jgw_gw_pref_schema.sql
mysql -u root -p production_jgw_bbs_000001 < ./db/development_jgw_bbs_000001_schema.sql
初期データを登録します。
mysql -u root -p production_jgw_core < ./db/development_jgw_core_init.sql
mysql -u root -p production_jgw_gw < ./db/development_jgw_gw_init.sql
mysql -u root -p production_jgw_gw_pref < ./db/development_jgw_gw_pref_init.sql
mysql -u root -p production_jgw_bbs_000001 < ./db/development_jgw_bbs_000001_init.sql
さらに環境設定のために次のSQL文を実行してください。
mysql -u root -p -e "UPDATE production_jgw_gw.gwbbs_controls SET dbname = 'production_jgw_bbs_000001' WHERE gwbbs_controls.id =1;"
joruri GWの起動
cd /home/joruri/jorurigw
bundle exec unicorn_rails -c config/unicorn.rb -E production -D
ブラウザでアクセスしてログイン画面が表示されればjoruriGwのインストールは成功です。初期設定では,admin/adminで管理者権限でログインできます。unicornを自動起動する方法は,http://mudanakaigi.blogspot.com/2013/10/unicorn_15.htmlを御覧ください。
httpsで動かす方法などは,気が向いたら別途書くかもです。今は,艦これのイベントで忙しいので,後回しにします。
0 件のコメント:
コメントを投稿