Passenger + Apache + MySQL
Redmine の CentOS5.x へのインストール備忘録!どーも忘れやすいのでメモしておきます。
Baseしか入っていないCentOS環境下でRedmineをインストールするまでの記録です。
CentOSのrubygemsのバージョンが古くMySQLの.gemが入りません。
rubygemsを上げようと思うとrubyのバージョンが古い。
これでは使い物にならないのでrubyをアップグレードします。
が、rpmの管理を外れるのは痛すぎるのと、
イマイチいいリポジトリが見つからなかったのでもう自分でインストールしちゃいます。
おおまかな手順としては以下のようにインストールしました
- 必要なソフトウェアインストール
- checkinstallをmake;make install&上書きrpmインストール
- rubyをcheckinstallでrpm化&インストール
- rubygemsをcheckinstallでrpm化&インストール
- rails/passenger/mysqlをインストール
- MySQLを設定&起動
- Redmineをインストール&初期設定
- Apacheを設定&起動
まずはコンパイラや各種ライブラリをまとめてインストール
1 2 3 |
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化する)のダウンロードとインストール
1 2 3 4 5 6 7 8 |
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 |
パッチ内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
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化します。
1 2 3 4 5 6 |
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のインストール
1 2 3 4 |
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のインストール
1 2 3 4 |
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
1 |
passenger-install-apache2-module |
MySQLの起動
1 2 |
chkconfig mysqld on service mysqld start |
DBの作成
1 |
mysql -e "create database redmine;" |
ユーザーの作成/ソースの取得/初期設定
1 2 3 4 5 6 7 8 9 10 11 |
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の最後に追記
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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 |
起動して完了です
[text]
chkconfig httpd on
service httpd start
[/text]
追記:passengerのみ利用でPHPを使わない場合はApacheのMPMはeventを使ったほうがいいかもしれません