Pages

October 05, 2011

redmineをnginxで扱う

教授から成果を見える形で出せと言われたのでとりあえず備忘録。。

Redmineの設定とか
sudo apt-get install ruby ruby1.8-dev rubygems sendmail imagemagick libmagick9-dev
sudo gem update --system 1.6.2
sudo gem install sqlite3-ruby 
sudo gem install -v=2.3.11 rails
sudo gem install -v=0.4.2 i18n
sudo gem install rake
sudo mkdir -p /var/www/redmine_test
cd /var/www/redmine_test
sudo git clone git://github.com/edavis10/redmine.git
cd redmine

sudo vim config/database.yml
production:
   adapter: sqlite3
   database: db/redmine.db
   timeout: 5000

sudo rake generate_session_store
sudo rake db:migrate RAILS_ENV="production"
sudo rake redmine:load_default_data RAILS_ENV=production
>ja

メールの設定がいまいちわからない。
使わないしテキトーでいいよね。
sudo vim config/email.yml
delivery_method: :async_smtp
   smtp_settings:
   address: localhost
   port: 25
   domain: host.example.jp

sudo ruby script/server webrick -e production
http://serverip:3000にアクセスして動くかチェック
Ctrl-Cで中断

redmineをnginxで動かすときのもろもろ
sudo gem install passenger
sudo gem install rmagick

sudo passenger-install-nginx-module
自ビルドnginxだったので、そのときのソースとcofigureオプションで通す形に。

passenger-config --root
/usr/lib/ruby/gems/1.8/gems/passenger-3.0.9
which ruby
/usr/bin/ruby
上記2つのコマンドの値を覚えておく

cd /opt/nginx/conf
sudo vim nginx.conf
とかそのへんで
http {
...
passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-3.0.9;
passenger_ruby /usr/bin/ruby;
passenger_max_pool_size 8;
passenger_max_instances_per_app 1;
passenger_pool_idle_time 3600;
...
}

server {
listen 80;
client_max_body_size 250M;
server_name redmine.example.com;
root /var/www/redmine_test/public;
passenger_enabled on;
rails_env production;
}
を適宜追加

nginx -t -c "nginx.confのpath"
でエラーでないなら
nginx -s reload
でおk

あとは
/var/www/redmine_test
以下のアクセス権等の調整でいいかな?
多分だけどnginxのworkerと同じ権限を与えてやればいいと思う
上のとおりだと多分権限の関係でうまく動かなくなると思うのでそのへんはよろしく

参考:
http://redmine.jp/tech_note/install/
http://www.redmine.org/issues/8325
http://doruby.kbmj.com/8y/20100628/Redmine_nginx_Passenger_
http://redmine.jp/tech_note/apache-passenger/

mongodbの認証について


mongodbで認証
configに
auth=true
とかく
bind_ip=0.0.0.0
を指定するとそこからのみ接続を受け付ける。
次にデータベースへ接続する
mongo --shell
use admin
db.addUser('username','passwd')
で管理者を追加
使用しているデータベースにユーザを追加する場合は
db.auth('username','passwd')
で管理者権限でログイン後
db.addUser('username2','passwd2')
で追加可能
{"$err" : "unauthorized db:admin lock type:-1 client:127.0.0.1",
"code" : 10057}
上記のようなエラーは管理者権限を持っていないとなるので注意

詳しい設定方法は
File Based Configuration