Redmine を lighttpd + fcgi で動かす
Redmine(タスク管理ツール)をlighttpdで動かす。
ほんとはapache2.2を入れようと思ってたけど、サーバから新品だし
fcgiが入れやすいlighttpdにした。
システム構成
ソースをダウンロードをするところは基本/usr/local/src配下
Rubyのインストール
Rubyをインストールする。今回はソースからインスト。
- ソースをダウンロード
$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p72.tar.gz
- 展開後、3点セット
$ tar zxvf ruby-1.8.7-p72.tar.gz $ cd ruby-1.8.7 $ ./configure $ make $ sudo make install
- インストできたか確認
$ ruby -v ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-linux]
RubyGemsのインストール
RubyGemsはRubyのパッケージシステム。
- ソースのダウンロード
$ wget http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz
- 展開、インストール
$ tar zxvf rubygems-1.2.0.tgz $ cd rubygems-1.2.0 $ sudo ruby setup.rb
- インストできたか確認
$ gem -v 1.2.0
Ruby on Railsのインストール
↑でいれたgemを利用してインストール
- インストール
# gem install rails
- インストできたか確認
$ rails -v Rails 2.1.1
MySQLのインストール/設定
Redmineのコンフィグみると、mysqlの他、postgresやsqliteも対応してるみたい。
mysqlはめんどくさいのでパッケージでいれる。
- インストール
$ sudo yum install mysql.i386 mysql-server.i386 mysql-devel.i386
簡単すぎる…
- 起動
$ sudo /etc/init.d/mysqld start
- rootのパスワードをかえる
$ sudo mysqladmin -u root password hogehoge
- Redmine用のDBをつくる。
$ mysql -u root -p mysql> create database redmine default character set utf8; Query OK, 1 row affected (0.03 sec) mysql> grant all privileges on redmine.* to redmineuser@localhost; Query OK, 0 rows affected (0.04 sec) mysql> set password for redmineuser@localhost=password('hoge'); Query OK, 0 rows affected (0.03 sec)
Redmineのインストール/設定
まぁインストールするディレクトリはどこでもいいんだけど
今回は/usr/local/rails配下とした。
- ダウンロード
$ cd /usr/local/rails $ svn checkout http://redmine.rubyforge.org/svn/trunk/ Redmine
- 設定ファイル変更
$ cd config $ mv database.yml.example database.yml $ vi database.yml
変更箇所は以下
production: adapter: mysql database: redmine host: localhost username: redmineuser password: hoge encoding: utf8 socket: /var/lib/mysql/mysql.sock
socket: 〜の設定とか地味に大切
- Redmineで使用するDBテーブルを作成する。
$ pwd /usr/local/rails/Redmine $ rake db:migrate RAILS_ENV="production"
ここでrailsのバージョンは2.1.0じゃないとだめって怒られた…
$ sudo gem install -v=2.1.0 rails $ rake db:migrate RAILS_ENV="production" $ rake redmine:load_default_data RAILS_ENV="production" Select language: bg, cs, de, en, es, fr, he, it, ja, ko, nl, pl, pt, pt-br, ro, ru, sr, sv, zh, zh-tw [en] ja ~~~~ ==================================== Loading default configuration data for language: ja [ja]を選択する
- WEBrickで動作テスト
$ ruby script/server -e production -p 80
ブラウザでみてみる。
lighttpdとfcgi
やっとか…これが書きたかっただけなのに…
fcgiのインストール
- ダウンロードする
$ wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz
- 展開後、3点セット
$ tar zxvf fcgi-2.4.0.tar.gz $ cd fcgi-2.4.0 $ ./configure $ make $ sudo make install
RubyのFastCGIライブラリインストール
- インスト
$ sudo gem install fcgi
これは簡単だな
lighttpdのインストール
- ダウンロード
$ wget http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz
- 展開後、3点セット
$ tar zxvf lighttpd-1.4.19.tar.gz $ cd lighttpd-1.4.19 $ ./configure --prefix=/usr/local/lighttpd $ make $ sudo make install
configureのオプションに--prefix=/usr/local/lighttpd
lighttpdの設定
あと少し!
- lighttpdのユーザ/グループを追加
$ sudo /usr/sbin/groupadd -g 8080 lighttpd $ sudo /usr/sbin/useradd -u 8080 -g lighttpd
あれ…ユーザ名がlighttpdっておかしいのかな…まぁいいか
- confの設定
$ cd /usr/local/lighttpd $ sudo mkdir conf $ cp /usr/local/src/lighttpd-1.4.19/doc/lighttpd.conf ./conf/ $ vi ./conf/lighttpd.conf
diffは以下
*** 12,27 **** ! # "mod_rewrite", ! # "mod_redirect", ! # "mod_alias", ! # "mod_fastcgi", --- 12,27 ---- ! "mod_rewrite", ! "mod_redirect", ! "mod_alias", ! "mod_fastcgi", *************** *** 37,43 **** ! server.document-root = "/srv/www/htdocs/" --- 37,45 ---- ! server.document-root = "/usr/local/rails/Redmine/public/" *************** *** 138,144 **** ! #server.port = 81 --- 140,146 ---- ! server.port = 80 *************** *** 146,151 **** --- 148,154 ---- + server.error-handler-404 = "/dispatch.fcgi" *************** *** 188,196 **** ! #server.groupname = "wwwrun" --- 191,200 ---- ! server.username = "lighttpd" ! server.groupname = "lighttpd" *************** *** 324,326 **** --- 328,344 ---- + + ## fastcgi module -shiba + + fastcgi.server = ( + ".fcgi" => ( + "localhost" => ( + "socket" => "/usr/local/rails/Redmine/tmp/sockets/fcgi.socket", + "bin-path" => "/usr/local/bin/ruby /usr/local/rails/Redmine/public /dispatch.fcgi", + "bin-environment" => ("RAILS_ENV"=>"production"), + ) + ) + )
- railsのオーナー調整
めんどくさい
$ cd /usr/local/rails $ sudo chown -R lighttpd Redmine
起動してみる
#/usr/local/lighttpd/sbin/lighttpd -f /usr/local/lighttpd/conf/lighttpd.conf