fc2ブログ

t100のプログラミング脱出作戦

自分のプログラミング脳をプログラムにして、いつかプログラミングから脱出してやるぞっ!とか夢見ながら、日々プログラム作っていく 百野 貴博 の日記です!今は、屋号『百蔵。』として、Silverlight・WPFを追跡中です! (2007/09/30)
さくらインターネットに、RedMineをインストールする。
個人の開発管理の為に、週末にさくらインターネットにRedmineをインストールしてみました。
Linux初心者で、Rubyも初体験だったので、若干はまってしまいましたが、なんとか
トップページが出るところまでいきました。

インターネットに情報公開してくださっている先人の皆様ありがとう!

といわけで、既にあちこちに数多ある情報ではありますが
自分のためにも、この週末の作業をまとめてみたいと思います。

■目標

さくらインターネット(ライトプラン)に
最新のRedmineと、Mercurialを導入します。

ホームページとしても借りているので、/labs/redmine パスでアクセスするようにします。
また、DBはSQLiteを使います。(Wordpress等で、MySQLを使っているため)

■概要

・MercurialとRedmineをインストールすることになります。
・Redmineは、RubyOnRails で作られているので、そのための環境も構築します。
・Rubyはデフォルトで利用できますが、自前でセットアップします。
(デフォルトのRubyだとなぜか動かなかった為)
・Pythonはデフォルトのものを使用します。
・デフォルトのシェル環境はBashを使います。
■セットアップ手順

●Mercurialを入れる

1.ダウンロードして解凍

SSHで、さくらインターネットのサーバーにログインして、wget コマンドで最新版をゲットします。
最新版のURLは、http://www.selenic.com/mercurial/wiki/ で確認できます。

$ wget http://www.selenic.com/mercurial/release/mercurial-1.1.tar.gz[enter]
$ tar zxvf mercurial-1.1.tar.gz


2.インストール

$ cd mercurial-1.1
$ python setup.py install --home=$HOME/local


で、インストール
hg コマンドは、$HOME/local/hg 以下に

3.パスを通す。

hg コマンドが実行できるように、パスを通します。
パスは、次回ログイン以降も使えるように、.bashrc に記述します。

export PYTHONPATH=${HOME}/local/lib/python
PATH=$HOME/local/bin:$PATH


編集結果を以下のコマンドで適用します。

$ source ~/.bashrc


4.実行してみる

動作確認のために、適当なディレクトリを作成して、hg init を実行します。

$ mkdir hgtest
$ hg init hgtest


これで、hgtest の下に、.hg ディレクトリが出来ていれば成功です。

※こんなエラーが出るかも。
 hg コマンドを実行して、以下のようなエラーが出る場合
 PYTHONPATHの環境変数がうまく設定されていないかもしれないです。
 .bashrc を編集して、再ログインしてみると解決するかもしれません。

$ hg init
Traceback (most recent call last):
File "/home/t100/local/bin/hg", line 11, in ?
from mercurial import demandimport; demandimport.enable()
ImportError: No module named mercurial


●ここまでで参考にさせて頂いたサイト

さくらインターネットでmercurial

さくらインターネットでmercurialを使う



■Railsをインストールする

1.rubyをインストールする。

こちらのサイトによると(さくらのレンタルサーバに Redmine をインストール
自前インストールのRubyじゃないとエラーになるということなので入れてみます。
(自分でも、既存のRubyベースでやってみたのですが、同じくエラーを解決出来ませんでした、、、)

インストール手順は、こちらの記事を参照させて頂きました。
さくらサーバーでRuby on Railsをインストール

http://www.ruby-lang.org/ja/downloads/ から最新版を取得します。

$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p72.tar.gz
$ tar xzvf ruby-1.8.7-p72.tar.gz
$ cd ruby-1.8.7-p72
$ ./configure --prefix=$HOME/local
$ make
$ make install


これで、$HOME/local/bin 以下に、rubyがインストールされるので
.bashrc ファイルを編集して、自前で入れたrubyが使われるように設定します。

export PATH=$HOME/local/bin:$GEM_HOME/bin:$PATH


編集できたら、インストールしたRubyが使われていることを確認します。

$ source ~/.bashrc
$ which ruby
/home/t100/local/bin/ruby


2.rubygem をセットアップ

rubygemは、PHPのpear的なソフトウェアらしいです。(pearも詳しくないんですが、、、)
以下のサイトから、最新版を取得してインストールします。
http://rubyforge.org/frs/?group_id=126&release_id=27655

$ wget http://rubyforge.org/frs/download.php/17190/rubygems-1.3.1.tgz
$ tar zxvf rubygems-1.3.1.tgz
$ cd rubygems-1.3.1
$ ruby setup.rb


これで、gem コマンドが使えるようになります。

$ which gem
/home/t100/local/bin/gem

また、gemでセットアップしたソフトウェアが使えるように
PATHに、以下を加えておきます。
これも、.bashrc ファイルを編集します。

export GEM_HOME=${HOME}/local/lib/ruby/gems

PATH=$HOME/local/bin:$GEM_HOME/bin:$PATH


3.rails セットアップ

gem コマンドで、rails を実行するために必要なソフトウェアを
インターネット経由で取得します。

$ gem install rails
Successfully installed rake-0.8.3
Successfully installed activesupport-2.2.2
Successfully installed activerecord-2.2.2
Successfully installed actionpack-2.2.2
Successfully installed actionmailer-2.2.2
Successfully installed activeresource-2.2.2
Successfully installed rails-2.2.2
7 gems installed
Installing ri documentation for rake-0.8.3...
Installing ri documentation for activesupport-2.2.2...
Installing ri documentation for activerecord-2.2.2...
Installing ri documentation for actionpack-2.2.2...
Installing ri documentation for actionmailer-2.2.2...
Installing ri documentation for activeresource-2.2.2...
Installing RDoc documentation for rake-0.8.3...
Installing RDoc documentation for activesupport-2.2.2...
Installing RDoc documentation for activerecord-2.2.2...
Installing RDoc documentation for actionpack-2.2.2...
Installing RDoc documentation for actionmailer-2.2.2...
Installing RDoc documentation for activeresource-2.2.2...


これで、rails コマンドが使えるようになります。

$ which rails
/home/t100/local/lib/ruby/gems/bin/rails


以下で、バージョン情報を確認します。

$ rails -v
Rails 2.2.2


※こんなエラーが出るかも。
rails -v で、-bash: rails: command not found が出てしまった場合
パスがうまく設定できていない可能性があります。

2.のステップで設定した GEM_HOMEとPATHの設定が間違えていないか、また
パスが適用されているか確認します。



■Redmineをインストールする

1.SQLiteの設定を確認する

RedmineでSQLiteを使うため、動作確認します。
以下のコマンドでバージョン情報が参照できればオーケーです。

$ sqlite3 -version
3.3.17



2.redmine をダウンロードしてインストールする

ここでは、取得したredmineを、$HOME/rails/redmine のパスで使えるようにします。
最新版は、http://rubyforge.org/frs/?group_id=1850 から取得できます。
ここでは、0.7.3 を使います。

$ wget http://rubyforge.org/frs/download.php/39477/redmine-0.7.3.tar.gz
$ tar zxvf redmine-0.7.3.tar.gz
$ cd
$ mkdir rails
$ mv redmine-0.7.3 ./rails/redmine



3.パーミッションの設定

tmp、log フォルダーに書き込み権限を与えます。

$ cd rails/redmine
$ chmod o+w tmp log


4.データベース設定の編集

redmine の設定ファイルを変更して、SQLiteを使うように変更します。
設定ファイルは、redmine/config database.yml です。
最初から入っている database.yml.example をコピーして作成します。

$ cd config
$ cp database.yml.example database.yml
$ vi database.yml



database.yml の設定を全て、sqlite3 に変更。
変更箇所は以下

・mysql を sqlite3 に

変更前

production:
adapter: mysql
database: redmine
host: localhost
username: root
password:
encoding: utf8


変更後

production:
adapter: sqlite3
database: db/redmine.db
timeout: 5000


5.データベースの作成

redmine/config で、rake コマンドを実行してDBを作成して、初期データをセットアップします。
セットアップでは、日本語(ja)を選択します。

$ rake db:migrate RAILS_ENV=production
$ rake redmine:load_default_data RAILS_ENV=production
(in /home/t100/rails/redmine)
Select language: bg, cs, da, de, en, es, fi, fr, he, hu, it, ja, ko, lt, nl, no, pl, pt, pt-br, ro, ru, sr, sv, th, uk, zh, zh-tw [en] ja
====================================
Default configuration data loaded.



6.アプリケーションの実行環境設定

アプリケーションの実行環境の設定ファイルを変更します。
変更するのは、以下の3ファイルです。

redmine/config/environment.rb
redmine/public/.hthaccs
redmine/public/dispatch.cgi

●redmine/config/environment.rb

以下の5行を先頭に追加します。(t100のところは、各自のホームディレクトリです)
PYTHONPATHはmercurialとの連携に必要になります。

$LOAD_PATH.push("/home/t100/local/lib/ruby/site_ruby/1.8")
$LOAD_PATH.push("/home/t100/local/lib/ruby")

ENV['GEM_HOME'] ||= '/home/t100/local/lib/ruby/gems/1.8'
ENV['PATH']+=':/home/t100/local/bin'
ENV['PYTHONPATH'] ||= '/home/t100/local/lib/python'


●redmine/public/.hthaccs

以下の行をコメントアウト。
変更前

Options +FollowSymLinks +ExecCGI


変更後

#Options +FollowSymLinks +ExecCGI


●redmine/public/dispatch.cgi

rubyのパスを、インストールしたパスに変更

#!/home/t100/local/bin/ruby


以下の行を追加。(production の設定が使われるようにするっぽい)

ENV['RAILS_ENV']||='production'



7.シンボリックリンクを作成

Webサーバーからアクセス出来るように、シンボリックリンクを作成します。
redmine/public フォルダを、webからアクセス可能にします。

$ cd ~/www
$ mkdir labs
$ ln -s $HOME/rails/redmine/public $HOME/www/labs/redmine


8.アプリケーションの動作確認

これで、動くはずっ、、、
で、アクセスしてみたところ、、、

Application error ails application failed to start properly”

アプリケーションエラーが出ちゃう、、、??

こんな時には、コンソールから直接 dispatch.cgi を実行することで
エラー画面の結果を見ることが出来ます。
(もっと他に良い方法がありそうだけど、、、)

$ cd ~/rails/redmine/public
$ ruby dispatch.cgi


なんと、レスポンスのHTMLがコンソールに表示されます。

私の場合は、以下のエラーでした。

$ ruby dispatch.cgi
/home/t100/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- iconv (MissingSourceFile)


iconv ってなんじゃらほい、、、

9.iconv を導入する。

iconv というモジュールが不足しているようです。

こちらのサイトを参考にさせて頂いて、セットアップします。
グラフを描く (mingplot on FreeBSD)


iconv モジュールは、rubyに含まれていたようです。

$ cd ruby-1.8.7-p72/ext/iconv/


で、インストールします。

$ ruby extconf.rb --prefix=$HOME --with-iconv-dir=/usr/local
checking for iconv() in iconv.h... no
checking for iconv() in -liconv... yes
checking for const of iconv() 2nd argument... yes
creating Makefile
$ make
gcc -I. -I. -I/home/t100/local/lib/ruby/1.8/i386-freebsd6.1 -I. -DICONV_INPTR_CONST -I/usr/local/include -fPIC -g -O2 -c iconv.c
gcc -shared -o iconv.so iconv.o -L. -L/home/t100/local/lib -Wl,-R/home/t100/local/lib -L/usr/local/lib -Wl,-R/usr/local/lib -L. -rdynamic -Wl,-soname,iconv.so -liconv -lcrypt -lm -lc
$ make install
/usr/bin/install -c -m 0755 iconv.so /home/t100/local/lib/ruby/site_ruby/1.8/i386-freebsd6.1


出来た模様
(iconv.h 無いって言われてるような気もするけど・・・)


10.今度こそっ

再度アクセスしてみたところ、、、
うまくいきました!!
トップページ出たーー!!


入門Redmine Linux/Windows対応入門Redmine Linux/Windows対応
(2008/11)
前田 剛

商品詳細を見る


今回導入したRedmineを知るきっかけになった本です。
導入から、運用まで幅広く紹介しています。
データベースは、MySQL, SQLiteの両方を、
SCMはSubversionとMercurialの両方との連携が掲載されているので
幅広い利用環境に参考になるんじゃないでしょうか。
最近、Trac の本買ったばっかりだったのに・・・orz


■参考にさせて頂いたサイト

Ruby on rails と Rubygems

さくらのレンタルサーバーにRuby on Rails 2.0.2をインストールする方法

xrea上位サーバー coreserverにrails をインストール

さくらのレンタルサーバに Redmine をインストール
sqlite3-rubyをさくらインターネット共有サーバにインストールするには

さくらのレンタルサーバーにRuby on Railsをインストールする方法 その2




レンタルサーバー比較管理人@タカ
どうも、始めましてタカです。
記事読ませていただきました。

やはり、ワードプレスにはMySQLがいいんでしょうかね?
SQLiteでワードプレスを使う人はいないようですし、
というか使えないのかな?

MTは使えるんですけどね^^

またきますね。
2010/03/07(日) 14:52:07 | URL | [ 編集]
t100
タカさん、コメントありがとうございます。

すみません。返信が遅れてしまいました・・・。

SQLiteも簡単でいいですよね。
ちょっとやってみたこと無かったですが、機会があったら試してみたいところです。

2010/03/19(金) 02:07:36 | URL | [ 編集]
にく
wpとtable名違うから別にMySQLでも良いような気がします。
てゆうか、自由に変えられるし
2010/03/20(土) 15:26:10 | URL | [ 編集]












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


トラックバックURL:
やっっっっと動きました。 記念にまとめます。 以下のサイトを参考にしました。 さくらインターネットに、RedMineをインストールする。 (...
2009/01/24(土) 18:31:27 | 青い海プロジェクト
いつのまにか、横浜市立図書館返却日チェッカーが動作しなくなっていたので、調査。 SAKURAサーバーのOSがアップデートした際に$HOME/local/にインストールしたrubyが動作しなくなった模様。 スクリプトを動かしたら、こんなエラーが。 %ruby check_due_date.rb /usr/libexe
2009/03/26(木) 19:51:07 | なかむランチ