「Redmine2.5を動かす[準備]」の続きです。今回はRedmineのインストールと設定を行います。
なお、Redmineはシンボリックリンクでアクセスできるように設定を行い、DocumentRootの設定は変更しません。
ページの目次
Redmineのインストールと設定
ダウンロードと展開
http://www.redmine.org/projects/redmine/wiki/Download からダウンロードするパッケージを確認します。
MD5のチェックサムを合わせて確認しダウンロード先のアドレスを確認して、以下のコマンドでダウンロードから展開、ディレクトリの移動まで実行します。
# cd /tmp # curl -O http://www.redmine.org/releases/redmine-2.5.2.tar.gz ・・・(略)・・・ # md5sum redmine-2.5.2.tar.gz 863785a593e52efd0e6a3c03946cf637 redmine-2.5.2.tar.gz # tar vfxz redmine-2.5.2.tar.gz ・・・(略)・・・ # mkdir redmine-2.5.2/public/plugin_assets # mv redmine-2.5.2 /usr/share/ ・・・・・・ (15)
(15) Redmineを展開したディレクトリを「/usr/share」へ移動します。
データベースの接続設定
「/usr/share/redmine-2.5.2/config/database.yml」を新規作成します。
production: adapter: mysql2 database: db_redmine host: localhost username: user_redmine password: <ユーザーの作成の時に入力したパスワード> encoding: utf8
メールとフォントの設定
「/usr/share/redmine-2.5.2/config/configuration.yml」を新規作成します。
※当サイトの内容ではメールを送信するためのライブラリをインストールしていないため適当に設定しました。
production: email_delivery: delivery_method: :smtp smtp_settings: address: "localhost" port: 25 domain: 'ドメイン名' rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf
Gemパッケージのインストール
Redmineで使用するGemをインストールします。
# cd /usr/share/redmine-2.5.2 # bundle install --without development test ・・・(略)・・・
初期設定とデータベーステーブルの作成
セッションデータ改竄防止用鍵の生成とテーブル作成を行います。
# cd /usr/share/redmine-2.5.2 # bundle exec rake generate_secret_token # RAILS_ENV=production bundle exec rake db:migrate ・・・(略)・・・
Passengerのインストール
Apache上でRuby on Rails(RoR)のアプリケーションを動かすのに必要なモジュールをインストールします。
# gem install passenger ・・・(略)・・・ 2 gems installed # passenger-install-apache2-module ・・・(略)・・・ Press Enter to continue, or Ctrl-C to abort <Enterキー> ----------------------------------------- Which languages are you interested in ? Use <space> to select. If the menu doesn't display correctly, press '!' ■ ■ Ruby ・・・・・・ (16) ■ Python ■ Node.js ■ Meteor ・・・(略)・・・ Press ENTER to continue. <Enterキー> ・・・(略)・・・ Phusion Passenger is a trademark of Hongli Lai & Ninh Bui
(16) 「選択にはスペースを使って」とありますが、私の環境はEnterキーで先に進みました。
Apacheの設定
アクセスディレクトリの準備
Apacheがredmine内のブラウザからアクセスできるようにredmineへのシンボリックリンクの作成とアクセス権の変更を行います。
# chown -R apache:apache /usr/share/redmine-2.5.2/ ・・・・・・ (17) # ln -s /usr/share/redmine-2.5.2/public /var/www/html/redmine ・・・・・・ (18)
(17) redmineのディレクトリ以下をapacheからアクセスできるようにユーザー・グループの変更を行います。
(18) redmineのディレクトリへシンボリックリンクを作成します。
※なお、私も試しましたがエイリアスではPassengerの仕様のために正常にアクセスできません。(参考サイト)
Passengerの設定、を追加
Passengerを使うための設定ファイルを「/etc/httpd/conf.d/passenger.conf」へ追加します。
# passenger-install-apache2-module --snippet > /etc/httpd/conf.d/passenger.conf ・・・・・・ (19) # vi /etc/httpd/conf.d/passenger.conf
以下 ファイルの内容。
### Contents which "passenger-install-apache2-module --snippet" outputted. ・・・・・・ (20) LoadModule passenger_module /usr/local/lib/ruby/gems/2.0.0/gems/passenger-4.0.52/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/local/lib/ruby/gems/2.0.0/gems/passenger-4.0.52 PassengerDefaultRuby /usr/local/bin/ruby </IfModule> ### A setup for deleting the HTTP header which Passenger adds.(optional) ・・・・・・ (21) Header always unset "X-Powered-By" Header always unset "X-Rack-Cache" Header always unset "X-Content-Digest" Header always unset "X-Runtime" ### A setup for tuning of Passenger is added.(optional) ・・・・・・ (22) ### Please refer to "http://www.modrails.com/documentation/Users%20guide%20Apache.html" for details. PassengerMaxPoolSize 40 PassengerMaxInstancesPerApp 10 PassengerPoolIdleTime 3600 PassengerHighPerformance on PassengerStatThrottleRate 60 PassengerSpawnMethod smart PassengerMaxPreloaderIdleTime 0 PassengerResolveSymlinksInDocumentRoot off ### Access settings from browser ・・・・・・ (23) RackBaseURI /redmine <Directory "/usr/share/redmine-2.5.2/public/"> ・・・・・・ (24) Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>
※「<」「>」は半角文字で入力してください。
※ファイルの「###」から始まる行はコメント文なので記載不要です。
(19) 必要な設定内容をファイルへ直接出力します。以降はその結果を編集します。
(20) 「passenger-install-apache2-module –snippet > /etc/httpd/conf.d/passenger.conf」を実行して得られた内容そのままです。
(21) Passengerが追加するHTTPヘッダを削除するための設定。(削除しない場合は記載不要です。)
(22) 以下の内容を参考に設定内容を決めてください。
PassengerMaxPoolSize <プロセス最大起動数> |
Ruby on Railsのプロセス最大起動数。 推奨値はメモリ256MBでMySQL等を同時に実行する場合は2、メモリ2GBの環境では30が推奨値になります。 未設定時: 6 |
PassengerMaxInstancesPerApp <アプリプロセス最大起動数> |
Ruby on Railsアプリのプロセス最大起動数。 1つのRailsアプリがサーバーのリソースを占有しないための設定。 未設定時: 0(制限なし) |
PassengerPoolIdleTime <秒数> |
Ruby on RailsアプリのTimeout。 設定した秒数Railsアプリにアクセスがないと自動的にアプリが終了します。 未設定時: 300[秒] |
PassengerHighPerformance <on|off> |
Apacheのモジュールの互換性を犠牲にしてPassengerの動作を高速化します。 onにするとmod_rewrite(URLを正規表現で書き換えるモジュール)、mod_autoindex(ディレクトリへアクセスしたときディレクトリの内容を表示するモジュール)などいくつかのモジュールが正常に動作しなくなります。 未設定時: off |
PassengerStatThrottleRate <秒数> |
Railsの自動検出や再起動指示の検出のためにファイルシステムを確認する間隔を秒数で設定します。 未設定時: 0(リクエストごとに確認) |
PassengerSpawnMethod <smart | direct> |
Rubyのアプリプロセスの生成方法を設定します。 smart: プロセスをキャッシュする方法。プロセスの再利用が発生したとき高速に動くが、一部互換性が無い可能性がある。 direct: キャッシュを一切行わない方法。smartより遥かに遅いがアプリ、ライブラリとの互換性がある。 未設定時: smart |
PassengerMaxPreloaderIdleTime <秒数> |
Passengerによってロードされたプロセスのアイドル時のTimeoutを設定します。 0を設定するとアイドル時のTimeoutをしないようにできます。 秒数を大きくすることでわずかにメモリ使用量を増加させる可能性があるが、十分なメモリがあるなら大きな値か0を設定するのが望ましい。 未設定時: 300[秒] |
PassengerResolveSymlinksInDocumentRoot <on | off> |
PassengerがDocumentRootからのシンボリックリンクを解決するかどうかの設定。 ※シンボリックリンクでredmineディレクトリへのアクセスを行う場合は設定の必要があります。 ※私はこの設定の必要性に気付かずハマっていました。 未設定時: off |
※「RailsAppSpawnerIdleTime」はPassenger4.0.0以降で削除され、「PassengerMaxPreloaderIdleTime」に置き換えられています。
※他のオプションについてはコチラをご確認ください。
(23) ブラウザからアクセスするredmineのディレクトリを設定します。
(24) redmineのディレクトリのアクセスについて設定を行っています。「.htaccess」による設定を行うように設定しています。
設定の反映
httpdを再起動します。
# service httpd restart Stopping httpd: [OK] Starting httpd: [OK]
SELinuxの設定変更
現状はSELinuxによって動作が妨げられています。「http://<ドメイン or IP>/redmine」へアクセスを行うと以下のような画面が出力されます。
SELinuxの全てを無効化しても構わない、と言う方は下記の設定を行ってください。
SELinuxを有効にしたまま、必要なところだけ変更したいという方は下記の設定を行わずに次の記事へ行ってください。
全てを無効化
サーバーを外部からアクセスできるように設定するわけではない場合はSELinuxごと無効化します。
設定を変更した後は、OSの再起動を実行してください。
# vi /etc/selinux/config ---------- 以下 ファイルの内容 ---------- ・・・(略)・・・ SELINUX=disabled ・・・(略)・・・
以上で、設定変更は完了です。
このような画面が表示されれば成功です。
(SELinuxを有効にしたまま使いたい人はもう少しお預け)
次回、SELinuxを有効化していても動作させる方法と、基本的な動作の確認を行います。
トラックバック & ピンバック