2013/03/27 ごろの作業
依存パッケージの準備
$ sudo yum install readline-devel curl-devel libyaml-devel
$ sudo yum install ImageMagick ImageMagick-devel
(*後付け) rbenv の準備
rbenv
http://blog.kyanny.me/entry/2012/02/03/155652 を参考にsystem-wideにrbenvをインストール
$ su -
# vi rbenv.sh
# sh rbenv.sh
# exit
$ su -
$ rbenv
rbenv 0.4.0-42-g0556849
ruby のセットアップ
$ rbenv install 1.9.3-p392
$ rbenv rehash
$ rbenv global 1.9.3-p392
$ ruby -v
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]
(2014/10) 今なら ruby 2.1.2 で大丈夫と思われる
$ rbenv install 2.1.2
$ rbenv rehash
$ rbenv global 2.1.2
$ ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
rubygem&bundlerのセットアップ
rubygemはrbenvに入っているのでそれを利用。
$ sudo /usr/local/rbenv/shims/gem install bundler --no-rdoc --no-ri
Fetching: bundler-1.3.5.gem (100%)
Successfully installed bundler-1.3.5
1 gem installed
→ MySQLのセットアップの前まで終わり
Rubyの準備
Ruby 2.xにはPassengerが対応していないので1.9.3をインストールする。
http://www.ruby-lang.org/ja/downloads/ にて確認。
$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.bz2
$ rpmbuild -tb ruby-1.9.3-p392.tar.bz2
エラー: ruby-1.9.3-p392.tar.bz2 から spec ファイルの読み込みに失敗しました。
specファイルがないため普通にmakeしていく
$ tar xjvf ruby-1.9.3-p392.tar.bz2
$ cd ruby-1.9.3-p392
$ ./configure --disable-install-doc
$ make
$ sudo /usr/local/sbin/checkinstall --exclude=/selinux
...(略)
/home/masashi/ruby-1.9.3-p392/lib/fileutils.rb:858:in `utime': No such file or directory - /usr/local/bin/ruby (Errno::ENOENT)
from /home/masashi/ruby-1.9.3-p392/lib/fileutils.rb:858:in `block in install'
エラーする。どうもcheckinstallにバグがあるらしい。
--fstrans=no が必要だがこれもcheckinstallrcに設定してあるのだが効いていない(lib64側にないとだめなのか?...メッセージを読むと
sudo cp /usr/local/lib/checkinstall/checkinstallrc /usr/local/
と/usr/local 直下におく必要がある。Makefileをどこか書き換えれば良いか?)
$ sudo /usr/local/sbin/checkinstall --exclude=/selinux --fstrans=no
...(略,何回かEnter)
**********************************************************************
Done. The new package has been saved to
/root/rpmbuild/RPMS/x86_64/ruby-1.9.3-p392-1.x86_64.rpm
You can install it in your system anytime using:
rpm -i ruby-1.9.3-p392-1.x86_64.rpm
**********************************************************************
$ sudo yum localinstall /root/rpmbuild/RPMS/x86_64/ruby-1.9.3-p392-1.x86_64.rpm
...(略)
$ ruby -v
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]
RubyGemsのインストール
http://rubyforge.org/frs/?group_id=126 のサイトで最新版のURLを取得する。
$ wget http://rubyforge.org/frs/download.php/76729/rubygems-1.8.25.tgz
$ tar xzvf rubygems-1.8.25.tgz
$ cd rubygems-1.8.25
$ sudo /usr/local/bin/ruby setup.rb
bundlerのインストール
$ sudo /usr/local/bin/gem install bundler --no-rdoc --no-ri
MySQLのセットアップ
my.cnfが /usr/my.cnf にあるがどうも /etc/my.cnf の読み込みが優先され、かつ、/usr の直下は見に来ない模様なので移動する。
$ sudo chkconfig mysql on
だけはやっておくこと。
redmineの展開
http://rubyforge.org/frs/?group_id=1850 からredmineの最新版(2013/09/17では2.3.3)を取得する。
$ wget http://rubyforge.org/frs/download.php/77138/redmine-2.3.3.tar.gz
$ tar xzvf redmine-2.3.3.tar.gz
$ sudo mv redemine-2.3.3 /var/www
$ sudo ln -s /var/www/html/redmine /var/www/redmine-2.3.3/public
続いて古いバージョン(cybele)の移動
$ tar xjvf redmine-1.2.2.tar.bz2
$ sudo mv redmine-1.2.2 /var/www
$ sudo ln -s /var/www/html/redmine-old /var/www/redmine-1.2.2/public
passengerの準備
(rbenv を使っているならパスは変更する必要がある)
$ sudo /usr/local/bin/gem install passenger --no-rdoc --no-ri
$ sudo /usr/local/bin/passenger-install-apache2-module
(...略)
--------------------------------------------
The Apache 2 module was successfully installed.
Please edit your Apache configuration file, and add these lines:
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.19/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.19
PassengerRuby /usr/local/bin/ruby
After you restart Apache, you are ready to deploy any number of Ruby on Rails
applications on Apache, without any further Ruby on Rails-specific
configuration!
passenger.confを作成する
rubyのバージョンによってやはりパスがことなるので注意
$ sudo vi /etc/httpd/conf.d/passenger.conf
---
# Passengerの基本設定
# passenger-install-apache2-module の結果で表示された部分が以下になります。
# passenger-install-apache2-module --snippet で再確認もできます。
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.19/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.19
PassengerRuby /usr/local/bin/ruby
PassengerDefaultUser httpd
PassengerDefaultGroup httpd
# Passengerが追加するHTTPヘッダを削除するための設定(任意)。
#
Header always unset "X-Powered-By"
Header always unset "X-Rack-Cache"
Header always unset "X-Content-Digest"
Header always unset "X-Runtime"
# 必要に応じてPassengerのチューニングのための設定を追加(任意)。
# 詳しくはPhusion Passenger users guide(http://www.modrails.com/documentation/Users%20guide%20Apache.html)をご覧ください。
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
RailsAppSpawnerIdleTime 86400
RailsFrameworkSpawnerIdleTime 0
# redmine 用のパス設定
RackBaseURI /redmine
RackBaseURI /redmine-old
---
$ sudo service httpd configtest
Syntax OK
$ sudo service httpd restart
... passenger が期待通りに動かず、 http://x.x.x.x/redmine にアクセスしてもディレクトリ構造が表示されるだけ。
passenger.confが読み込まれていない模様・・・httpd.conf がまずい。
$ sudo vi /etc/httpd/conf/httpd.conf
--
Include "/etc/httpd/conf.d/*.conf"
--
$ sudo service httpd configtest
Syntax OK
$ sudo service httpd graceful
Include 文を追加してもう一回試してみると、とりあえずpassengerはOKでもエラー。
・・・redmine1.2.2 (rails) はruby1.9系には対応していないためだ。最低限1.4系にまであげてこないと動作確認ができない。