DiaryTechnology

Redmine インストール 備忘録

Passenger + Apache + MySQL

Redmine の CentOS5.x へのインストール備忘録!どーも忘れやすいのでメモしておきます。

Baseしか入っていないCentOS環境下でRedmineをインストールするまでの記録です。

CentOSのrubygemsのバージョンが古くMySQLの.gemが入りません。

rubygemsを上げようと思うとrubyのバージョンが古い。

これでは使い物にならないのでrubyをアップグレードします。

が、rpmの管理を外れるのは痛すぎるのと、

イマイチいいリポジトリが見つからなかったのでもう自分でインストールしちゃいます。

おおまかな手順としては以下のようにインストールしました

  1. 必要なソフトウェアインストール
  2. checkinstallをmake;make install&上書きrpmインストール
  3. rubyをcheckinstallでrpm化&インストール
  4. rubygemsをcheckinstallでrpm化&インストール
  5. rails/passenger/mysqlをインストール
  6. MySQLを設定&起動
  7. Redmineをインストール&初期設定
  8. Apacheを設定&起動

まずはコンパイラや各種ライブラリをまとめてインストール

yum -y update
yum -y groupinstall "Development Tools" "Web Server"
yum -y install mysql-server httpd-devel mysql-devel openssl-devel zlib-devel

次にcheckinstall(make installをrpm化する)のダウンロードとインストール

wget http://www.asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz</a>
tar xzvf checkinstall-1.6.2.tar.gz
cd checkinstall-1.6.2
patch -p1 < ~/checkinstall-1.6.2.patch
cd checkinstall-1.6.2
make ;make install
checkinstall -R make install
rpm -ivh /usr/src/redhat/RPMS/x86_64/checkinstall-1.6.2-1.x86_64.rpm

パッチ内容

diff -ru orig/checkinstall-1.6.2/Makefile new/checkinstall-1.6.2/Makefile
--- orig/checkinstall-1.6.2/Makefile	2008-11-12 11:43:53.000000000 +0900
+++ new/checkinstall-1.6.2/Makefile	2010-08-03 15:45:52.000000000 +0900
@@ -1,7 +1,7 @@
 # $Id: Makefile,v 1.6.2.1 2008/11/09 07:48:18 izto Exp $

 # Where to install.
-PREFIX=/usr/local
+PREFIX=/usr
 BINDIR=$(PREFIX)/sbin
 LCDIR=$(PREFIX)/lib/checkinstall/locale
 CONFDIR=$(PREFIX)/lib/checkinstall
diff -ru orig/checkinstall-1.6.2/checkinstall new/checkinstall-1.6.2/checkinstall
--- orig/checkinstall-1.6.2/checkinstall	2009-12-27 04:17:24.000000000 +0900
+++ new/checkinstall-1.6.2/checkinstall	2010-08-03 15:45:52.000000000 +0900
@@ -492,7 +492,7 @@
 ckversion
 echo

-CHECKINSTALLRC=${CHECKINSTALLRC:-${INSTALLDIR}/checkinstallrc}
+CHECKINSTALLRC=${CHECKINSTALLRC:-${INSTALLDIR}/lib/checkinstall/checkinstallrc}
 if ! [ -f $CHECKINSTALLRC ]; then
    echog "The checkinstallrc file was not found at:\n$CHECKINSTALLRC"
    echo
@@ -1851,11 +1851,11 @@
  COMPRESS="gzip -9"
  COMPRESS_EXT=.gz

- for d in ./usr/local/man/man* ./usr/local/man/*/man* ./usr/local/info \
- 	./usr/local/share/man/man* ./usr/local/share/man/*/man* \
- 	./usr/local/share/info \
- 	./usr/local/kerberos/man \
- 	./usr/local/share/doc/*/man/man* ./usr/local/lib/*/man/man* \
+ for d in ./usr/man/man* ./usr/man/*/man* ./usr/info \
+ 	./usr/share/man/man* ./usr/share/man/*/man* \
+ 	./usr/share/info \
+ 	./usr/kerberos/man \
+ 	./usr/share/doc/*/man/man* ./usr/lib/*/man/man* \
  	././usr/man/man* ./usr/man/*/man* ./usr/info \
  	./usr/share/man/man* ./usr/share/man/*/man* ./usr/share/info \
  	./usr/kerberos/man ./usr/X11R6/man/man* ./usr/lib/perl5/man/man* \
diff -ru orig/checkinstall-1.6.2/checkinstallrc-dist new/checkinstall-1.6.2/checkinstallrc-dist
--- orig/checkinstall-1.6.2/checkinstallrc-dist	2008-11-12 04:10:34.000000000 +0900
+++ new/checkinstall-1.6.2/checkinstallrc-dist	2010-08-03 15:45:52.000000000 +0900
@@ -16,7 +16,7 @@
 DEBUG=0

 # Location of the "installwatch" program
-INSTALLWATCH_PREFIX="/usr/local"
+INSTALLWATCH_PREFIX="/usr"
 INSTALLWATCH=${INSTALLWATCH_PREFIX}/bin/installwatch

 # Location of the makepkg program. "makepak" is the default, and is
diff -ru orig/checkinstall-1.6.2/installwatch/Makefile new/checkinstall-1.6.2/installwatch/Makefile
--- orig/checkinstall-1.6.2/installwatch/Makefile	2008-11-17 01:20:53.000000000 +0900
+++ new/checkinstall-1.6.2/installwatch/Makefile	2010-08-03 15:46:09.000000000 +0900
@@ -4,7 +4,7 @@
 # Well, the only configurable part is the following variable.
 # Make sure the directory you specify exists.

-PREFIX=/usr/local
+PREFIX=/usr

 # End of configurable part

rubyのインストール。checkinstallでrpm化します。

wget http://core.ring.gr.jp/archives/lang/ruby/1.8/ruby-1.8.7.tar.gz
tar xzvf ruby-1.8.7.tar.gz
cd ruby-1.8.7
./configure --prefix=/usr; make
checkinstall -R --provides="ruby"
rpm -ivh /usr/src/redhat/RPMS/x86_64/ruby-1.8.7-1.x86_64.rpm

gemのインストール

wget http://rubyforge.org/frs/download.php/73882/rubygems-1.4.2.tgz
tar xzvf rubygems-1.4.2.tgz
cd rubygems-1.4.2
checkinstall -R --requires "ruby" ruby setup.rb

rails/passenger/mysqlのインストール

gem install rails -v=2.3.11 --no-ri --no-rdoc
gem install -v=0.4.2 i18n --no-ri --no-rdoc
gem install mysql --no-ri --no-rdoc
gem install passenger --no-ri --no-rdoc

passengerのbuild

passenger-install-apache2-module

MySQLの起動

chkconfig mysqld on
service mysqld start

DBの作成

mysql -e "create database redmine;"

ユーザーの作成/ソースの取得/初期設定

useradd redmine
chmod o+x ~redmine
su - redmine
svn co http://redmine.rubyforge.org/svn/trunk .
cd ~redmine/config
cp database.yml.example database.yml
cp email.yml.example email.yml
cd ..
rake config/initializers/session_store.rb
rake db:migrate RAILS_ENV="production"
rake redmine:load_default_data RAILS_ENV="production"

以下をhttpd.confの最後に追記

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.7
PassengerRuby /usr/bin/ruby
RailsPoolIdleTime 21600
Header always unset "X-Powered-By"
Header always unset "X-Powered-By"
Header always unset "X-Rack-Cache"
Header always unset "X-Content-Digest"
Header always unset "X-Runtime"

    DocumentRoot /home/redmine/public
    CustomLog logs/access_log combined
    ErrorLog logs/error_log

起動して完了です

chkconfig httpd on
service httpd start

追記:passengerのみ利用でPHPを使わない場合はApacheのMPMはeventを使ったほうがいいかもしれません

コメントを残す