FreeBSD10でRedmine2.5をApache2.4+FastCGIで動かす[追記あり]
自宅でRedmine動かしてます。備忘録付きのチェックリスト代わりです。
- FreeBSD 9.1のApache2.4にRedmineインストール[追記あり] : プラスα空間 (2013年8月16日)
- 一人Redmine : プラスα空間 (2013年12月16日)
なのですが、FreeBSDでpkg upgrade -fするたびに、Redmineが動かなくなって困っていました。
格闘の末、解決方法がわかりました。結局、Redmine公式ウェブサイトに書かれている事をちゃんとやれば、動くと言う事です。
必要な事は以下の通りです。
- Redmineのインストール
- FreeBSD 9.1のApache2.4にRedmineインストール[追記あり] : プラスα空間 (2013年8月16日)
- mod_fcgiのアンインストールとmod_fastcgiのインストール
- 上記のやり方だった場合
- Apache24の設定
- FastCgiServerの設定
順を追って説明します。パッケージ管理は、pkgngに移行済みとします。
- FreeBSDのパッケージ管理をpkgngに移行 : プラスα空間 (2014年1月18日)
1. Redmineのインストール
次の記事をご覧下さい。
- FreeBSD 9.1のApache2.4にRedmineインストール[追記あり] : プラスα空間 (2013年8月16日)
このページ次の事をすれば良いと思います。掲載の順番が前後していますが、こちらの方が自然と思います。。
- Apache 2.4のインストール
- MySQLのインストール
- PHP5のインストール
- phpMyAdminのインストール
- Redmineのインストール
- rubygem-mysql2のインストール
- Redmine用データベース作成
- Redmineの設定
- 初期データの作成
ちょっと不親切なので、要点だけ書いて行きます。
1.1 Apache 2.4のインストール
Webサーバです。次のパッケージです。
# pkg install apache24
1.4 MySQLのインストール
Redmineのデーバベースとして必要です。
# pkg install mysql56-server mysql56-client
(追記 2015-02-21 13:05 Redmineをインストールすると、自動的にインストールされます。FreeBSDの最新pkgでバージョンが変更になっていました。
1.5 PHP5のインストール
Redmineではなく、次に説明するphpMyAdminに必要です。
# pkg install php5
PHPのインストールは、これだけでは済まないのですが、省略します。最初に紹介した記事だと、PHP5.5を使っていますが、この方法だとPHP5.4がインストールされます。
1.6 phpMyAdminのインストール
GUIでMySQLのデータベースを作るために使っています。MySQLに慣れている人は、直接コマンドラインで操作しても大丈夫です。
# pkg install phpMyAdmin
上記のPHPのインストールで足りない物は、この過程でインストールされると思います。
1.7 Redmineのインストール
Redmineの本体です。
# pkg install redmine
足りないパッケージがあれば、追加インストールされると思います。
1.3 rubygem-mysql2のインストール
Redmineを日本語設定で使う時に、rubygem-mysql2が必要な様です。
# pkg install rubygem-mysql2
ちゃんと確かめてないですが、RubyGemの必要なパッケージもインストールされると思います。
1.8 Redmine用データベース作成
先に紹介した記事だと、次のデータベースを作っています。
- ユーザ名: redmine
- データベース名: redmine_db
phpMyAdminの操作画面付きで説明してあるので、次の記事をご参照下さい。
- FreeBSD 9.1のApache2.4にRedmineインストール[追記あり] : プラスα空間 (2013年8月16日)
1.9 Redmineの設定
次の記事の通りに設定します。
- FreeBSD 9.1のApache2.4にRedmineインストール[追記あり] : プラスα空間 (2013年8月16日)
以下の五つのファイルです。
- /usr/local/www/redmine/config/database.yml
- /usr/local/www/redmine/config/configuration.yml
- /usr/local/www/redmine/public/dispatch.fcgi
- /usr/local/www/redmine/public/.htaccess
- /usr/local/www/redmine/Gemfile.local
1.10 初期データの作成
当時は、意味が良くわかりませんでした。今も、ちゃんとはわかっていませんが。今の理解だと、Gemパッケージのインストールと環境のビルドをしている様です。pkg upgrade -fをする度に、必要な様です。
# cd /usr/local/www/redmine # bundle install # rake generate_secret_token # rake db:migrate RAILS_ENV=production # rake redmine:load_default_data RAILS_ENV=production Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ja ==================================== Default configuration data loaded.
2. mod_fastcgiのインストール
最初は、mod_fcgidを使っていたのですが、mod_fastcgiの方がPHP-FPMと言うパッケージと相性が良さそうなので、乗り換えました。
もし、fcgidをインストールしていたら、次の方法でアンインストールします。
# pkg remove ap24-mod_fcgid
その後、mod_fastcgiをインストールします。
# pkg install ap24-mod_fastcgi
たしか、自動で/usr/local/etc/apache24/httpd.confも書き変わったと思います。もし、コメント(行頭の#)があったら、消しておいて下さい。
LoadModule fastcgi_module libexec/apache24/mod_fastcgi.so
3. Apache24の設定
いよいよ、核心部分です。
まずは、/usr/local/etc/apache24/httpd.confに次の2行を追加します。URLのrewriteとphpMyAdmin用です。
LoadModule rewrite_module libexec/apache24/mod_rewrite.so
LoadModule php5_module libexec/apache24/libphp5.so
私の場合、redmineはVirtual Hostとして利用しています。/usr/local/etc/apache24/httpd.confの修正が必要です。
Include etc/apache24/extra/httpd-vhosts.conf
コメント行になっているはずなので、行頭の#を消します。
Ruby on Railsアプリの設定です。/usr/local/etc/apache24/Includes/Passenger.confと言うファイルに、次の設定をします。以前は、redmine.confに記載していましたが、Passenger.confの方が自然だと思いますので、名前を付け替えました。先の記事の通りに、redmine.confを作られている方は、ファイル名を変更しておいて下さい。
LoadModule passenger_module /usr/local/lib/ruby/gems/2.0/gems/passenger-4.0.58/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/2.0/gems/passenger-4.0.58
PassengerRuby /usr/local/bin/ruby20
今まで、このファイルの記述内容を手探りしていたのですが、pkg upgradeの際に、ターミナルに表示されている事に気が付きました。
Message for rubygem-passenger-4.0.58: ##################################################################### Please edit your Apache configuration file, and add these lines: LoadModule passenger_module /usr/local/lib/ruby/gems/2.0/gems/passenger-4.0.58/buildout/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/2.0/gems/passenger-4.0.58 PassengerRuby /usr/local/bin/ruby20 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! #####################################################################
Virtual Hostとして使うためには、/usr/local/etc/apache24/extra/httpd-vhosts.confに、次の設定を追加します。ホスト名などは、必要に合わせて書き換えて下さい。また、/etc/hostsなどで、ホスト名を引ける様になっている必要があります。
ServerAdmin webmaster@example.com
ErrorLog "/var/log/redmine.example.com-error_log"
CustomLog "/var/log/redmine.example.com-access_log" common
DocumentRoot /usr/local/www/redmine/public
ServerName redmine.example.com
FastCgiServer /usr/local/www/redmine/public/dispatch.fcgi -idle-timeout 120 -initial-env RAILS_ENV=production -initial-env PATH=/usr/local/bin -processes 2
# default charset UTF-8
AddDefaultCharset utf-8
# .htaccess setting
AllowOverride All
# SSI OK
# SymbolicLink OK
Options +Includes +FollowSymLinks +ExecCGI
# MultiViews must be turned off.
Options -MultiViews
# aapche 2.4 change config
Require all granted
6行目の"FastCgiServer"の設定が肝です。次の記事のFreeBSDの所に記載されています。
この設定をするまで、本文は表示される物の、Style Sheetが設定されていない状態になりました。CSSが無効な状態です。かなり悩みました。
次の様なログが残っていました。
FastCGI: comm with (dynamic) server "/usr/local/www/redmine/public/dispatch.fcgi" aborted: (first read) idle timeout (30 sec) FastCGI: incomplete headers (0 bytes) received from server "/usr/local/www/redmine/public/dispatch.fcgi"
それと、Style Sheetを開こうとすると、次のメッセージが出ていました。
<h2>Application error</h2>Rails application failed to start properly
原因は、Apacheの再起動を忘れていたためでした。Railsの設定が終わったら、次のコマンドで、Apacheを再起動して下さい。
# apachectl restart
きちんと表示されるか、ご確認下さい。
ふぅ〜。あ〜、疲れた。問題の解決とこの記事を書くので、丸一日つぶれました。
(追記 2015-02-09 22:06)
CSSが無効な状態の時にログに出ていたエラーメッセージを載せました。
[amazonjs asin="4798042471" locale="JP"]
ディスカッション
コメント一覧
まだ、コメントがありません