Redmineを自鯖に構築する

基本的な手順はRedmineのインストールガイドにある方法で良いと思う。

https://blog.redmine.jp/articles/4%5F2/install/ubuntu/

少し情報が古いが、これで大体いける。

  • DBの準備
  • 適当なディレクトリにsvnでredmineを展開
  • redmineの設定
  • bundleで依存関係をインストール(変更あり)
  • 改ざん防止キーの生成とマイグレーション
  • Passengerの設定

bundlerで依存関係を入れるとき

ドキュメントに書いてる通りに入れようとすると何やら入らなかったりする。

$ bundle config set path 'vendor/bundle'

をしてから

$ bundle install

でローカルに?入る気がする。

RubyのGemやらbundler周りは全然わからないのでちゃんと把握してからやるべきなんだろうが… (雰囲気でサーバーを構築している)

Passengerの設定

gemからPassengerを入れる必要はなく、OSのパッケージマネージャで入る場合はそれで良い。設定内容は概ねドキュメント通りで良い。

うまく行かない場合はPassengerのログを見ると良いが、ログの設定方法は次のようにする。

PassengerLogFile /var/log/httpd/passenger.log

コケる場合がある

[ E 2022-05-14 17:13:47.4155 1955/Th age/Cor/App/Implementation.cpp:221 ]: Could not spawn process for application /srv/http/redmine: The application encountered the following error: You have already activated strscan 3.0.1, but your Gemfile requires strscan 3.0.3. Since strscan is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports strscan as a default gem. (Gem::LoadError)

このようなエラーが出てコケた。多分strscan 3.0.3が要求されているが3.0.1を使う設定になってるみたいな話だと思う。上のbundleでは3.0.3が入っているっぽいが、使うバージョンが別でインストールされてる3.0.1になってる気がする。 gem listとかで見るとバージョンがわかる。

とりあえず、最新版を強制でインストールすることで解消はできた(もっと良い方法がありそうだが)。

$ gem install strscan

終わり

Ruby自体はある程度わかる気がするが、あんまり真面目に何かを作ったことがないので環境周りがまるでわからないっピ。