MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
インストール - Redmineのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
インストール - Redmine
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <br><br> == Rubyのインストール == Rubyのビルドに必要なライブラリをインストールする。<br> sudo zypper install gcc gcc-c++ autoconf bison gperf libopenssl-devel libopenssl-1_1-devel libyaml-devel zlib-devel \ readline-devel libedit-devel gmp-devel libffi-devel rust cargo ruby2.5-devel <br> [https://github.com/ruby/ruby RubyのGithub]にアクセスして、ソースコードをダウンロードする。<br> ダウンロードしたファイルを解凍する。<br> tar xf ruby-<バージョン>.tar.gz cd ruby-<バージョン> <br> Rubyをビルドおよびインストールする。<br> ./autogen.sh mkdir build && cd build ../configure --prefix=<Rubyのインストールディレクトリ> --program-suffix=<サフィックス> --disable-install-doc make -j $(nproc) make install <br><br> == Redmineのインストール == 一般的に、最新のRedmineをインストールする。<br> Redmineは、6ヶ月ごとに新しいバージョンがリリースされており、実用的でかつ安定している。<br> リポジトリのtrunkからチェックアウトした開発版は、Ruby on Railsに精通し、かつ最新の開発に追従する必要がない限りは非推奨である。<br> <br> また、trunkは正常に動作しないこともあるため、注意が必要である。<br> <br> ==== Redmineのインストール ==== [http://redmine.jp/download/ Redmineの公式Webサイト]にアクセスして、Redmineをダウンロードする。<br> ダウンロードしたファイルを展開して、任意のディレクトリに配置する。<br> <br> ==== 空のデータベースとユーザの作成 ==== * MySQLの場合 CREATE DATABASE redmine CHARACTER SET utf8mb4; CREATE USER 'redmine'@'localhost' IDENTIFIED BY '<パスワード>'; GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; ※ MySQL 5.5.2以前の場合、utf8mb4ではなくutf8を指定すること。 <br> * PostgreSQLの場合 CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD '<パスワード>' NOINHERIT VALID UNTIL 'infinity'; CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine; <br> ==== データベースの接続の設定 ==== Redmineのインストールディレクトリにあるconfig/database.example.ymlファイルをコピーして、config/database.ymlファイルを作成する。<br> 次に、config/database.ymlファイルを編集して、"production"環境用のデータベースの設定を行う。<br> <br> * MySQLの場合 production: adapter: mysql2 database: <上記で作成したデータベース名 例. redmine> host: <上記で指定したホスト名 例. localhost> port: <ポート番号 例. 3306> username: <上記で作成したユーザ名 例. redmine> password: "<MySQLにおけるredmineユーザのパスワード>" encoding: utf8mb4 pool: 5 schema_search_path: public socket: <MySQLのソケットファイルのフルパス> <br> * PostgreSQLの場合 production: adapter: postgresql database: <上記で作成したデータベース名 例. redmine> host: <上記で指定したホスト名 例. localhost> username: <上記で作成したユーザ名 例. redmine> password: "<PostgreSQLにおけるredmineユーザのパスワード>" encoding: utf8 schema_search_path: <データベーススキーマ (デフォルト: public)> socket: <PostgreSQLのソケットファイルのフルパス> <br> ==== Redmineに依存するソフトウェアのインストール ==== <u>MySQL等を使用する場合、mysql2をインストールするために、~/.profileファイル等へMySQLへの環境変数<code>PATH</code>を追記する必要がある。</u><br> vi ~/.profile <br> # ~/.profileファイル export PATH="/<MySQLのインストールディレクトリ>/bin" <br> Redmineは、RubyGemの依存関係を管理するために、Bundlerを使用している。<br> そのため、まず、Bundlerをインストールする。<br> gem install bundler または sudo gem install bundler <br> Redmineのインストールディレクトリに移動して、Redmineの実行に必要な全てのgemをインストールする。<br> bundle config set --local without 'development test' bundle install または sudo bundle config set --local without 'development test' sudo bundle install <br> ==== データベースアダプタ ==== Redmineは、データベースの設定ファイルであるconfig/database.ymlファイルを読み取り、必要なデータベースアダプタを自動的にインストールする。<br> (例. mysql2のみを使用するように設定した場合は、mysql2 gemのみがインストールされる)<br> もし、config/database.ymlファイルを編集してデータベースアダプタの追加や削除を行った後は、必ず、<code>bundle install --without development test ...略</code>を実行する。<br> <br> ==== 独自の依存関係の設定 (Gemfile.local) ==== もし、Redmine本体が使用しないgem(例. puma、fcgi)もロードする場合は、Gemfile.localファイルをRedmineのインストールディレクトリに作成する。<br> これは、<code>bundle install</code>コマンド実行時にインストールされる。<br> # Gemfile.localファイル gem 'puma' <br> ==== セッションストア秘密鍵の生成 ==== Railsはセッションハイジャックを防ぐため、セッション情報を格納するcookieをエンコードしている。<br> この処理で使用されるランダムなキーを生成する。<br> bundle exec rake generate_secret_token <br> また、秘密鍵は、config/secrets.ymlファイルに格納することもできる。<br> <br> ==== データベースのテーブル等の作成 ==== データベースに、Redmineに必要なテーブルを作成する。<br> <br> <u>Redmineのインストールディレクトリに移動して</u>、以下に示すコマンドを実行する。<br> これにより、マイグレーションが1つずつ実行およびテーブルが作成されて、更に権限のデータ一式と管理者アカウント(admin)が作成される。<br> RAILS_ENV=production bundle exec rake db:migrate <br> ==== デフォルトデータ ==== デフォルトデータをデータベースに追加する。<br> RAILS_ENV=production bundle exec rake redmine:load_default_data <br> 各言語のデフォルトデータにおいて、言語の選択が求められる。<br> なお、上記のコマンドにおいて、<code>REDMINE_LANG</code>オプションを指定する場合、言語の選択を求められることなく自動的に処理が進められる。<br> RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data <br> ==== ディレクトリおよびファイルのパーミッション ==== Redmineを実行するOSのユーザーは、以下に示すディレクトリの書き込み権限が必要である。<br> * files (添付ファイルの保存ディレクトリ) * log (Redmineのログファイル @production.log@) * tmp (これらのディレクトリが無ければ作成すること) * tmp/pdf (これらのディレクトリが無ければ作成すること) * public/plugin_assets (プラグインが使用する画像やCSS) <br> 例. redmineユーザとしてソフトウェアを実行する場合 mkdir -p tmp tmp/pdf public/plugin_assets chown -R redmine:redmine files log tmp public/plugin_assets chmod -R 755 files log tmp public/plugin_assets ※注意 これらのディレクトリが既に存在する場合(バックアップからリストアした場合等)、ファイルに実行権限が不可されていないことを確認する。 find files log tmp public/plugin_assets -type f -exec chmod -x {} + <br> ==== Redmineの起動 ==== WEBrickを使用してRedmineを起動する。<br> bundle exec rails server -e production <br> WEBrickが正常に起動した後、Webブラウザから http://localhost:3000/ にアクセスする。<br> <br> デフォルトのシステム管理者アカウントは、以下の通りである。<br> * ログインID *: admin * パスワード *: admin <br> <u>※注意</u><br> <u>WEBrickは開発時に使用すものであり、通常の運用には適していないため、動作確認以外には使用しないこと。</u><br> <u>本番運用においては、Passenger(mod_rails)、FCGI、Rackサーバ(Unicorn, Thin, Puma,hellip等)の使用を推奨する。</u><br> <br><br> == NginXとの連携 == ==== NginXのインストール ==== NginXのビルドに必要なライブラリをインストールする。<br> sudo zypper install libxslt-devel pcre2-devel gd-devel libcurl-devel # Passengerを使用する場合 kernel-source kernel-devel # AIOを使用する場合 <br> 必要ならば、[https://www.openssl.org/source/ OpenSSLの公式Webサイト]にアクセスして、OpenSSL(1.X.Y)のソースコードをダウンロードする。<br> ダウンロードしたファイルを解凍する。<br> tar xf openssl-<バージョン> <br> * Digest認証モジュールを使用する場合 *: NginXのソースコードと一緒に配布されていないため、別途インストールする必要がある。<br> *: [https://github.com/atomx/nginx-http-auth-digest Digest認証モジュールのGithub]にアクセスして、ソースコードをダウンロードする。<br> *: ダウンロードしたファイルを解凍する。<br> *: <code>tar xf nginx-http-auth-digest-<バージョン>.tar.gz</code> *: <br> *: または、<code>git clone</code>コマンドを実行して、ソースコードをダウンロードする。<br> *: <code>git clone https://github.com/atomx/nginx-http-auth-digest.git</code> <br> [https://nginx.org/en/download.html NginXの公式Webサイト]にアクセスして、NginXのソースコードをダウンロードする。<br> ダウンロードしたファイルを解凍する。<br> tar xf nginx-<バージョン>.tar.xz <br> NginXおよびNginX向けPassangerをビルドおよびインストールする。<br> passenger-install-nginx-module <br> 手順が表示されるので、[Enter]キーを押下して次へ進む。<br> ビルド環境の選択では、[Ruby]を選択して、[Enter]キーを押下する。<br> <br> NginXのソースコードがあるディレクトリを入力して、[Enter]キーを押下する。<br> 次に、NginXのインストールディレクトリを入力して、[Enter]キーを押下する。<br> <br> 最後に、<code>configure</code>スクリプトのオプションを、以下に示すように指定する。<br> 改行文字(<code>\</code>)が使用できないことに注意する。<br> --sbin-path=/<NginXのインストールディレクトリ>/sbin/nginx --conf-path=/<NginXのインストールディレクトリ>/etc/nginx.conf --pid-path=/<NginXのインストールディレクトリ>/nginx.pid --modules-path=/<NginXのインストールディレクトリ>/modules/ --error-log-path=/<NginXのインストールディレクトリ>/log/error.log --http-log-path=/<NginXのインストールディレクトリ>/log/access.log --lock-path=/<NginXのインストールディレクトリ>/nginx.lock --http-client-body-temp-path=/<NginXのインストールディレクトリ>/tmp --http-proxy-temp-path=/<NginXのインストールディレクトリ>/proxy --http-fastcgi-temp-path=/<NginXのインストールディレクトリ>/fastcgi --http-uwsgi-temp-path=/<NginXのインストールディレクトリ>/uwsgi --http-scgi-temp-path=/<NginXのインストールディレクトリ>/scgi --with-perl_modules_path=/<NginXのインストールディレクトリ>/Perl --with-threads --with-file-aio --with-pcre --with-pcre-jit --with-http_v2_module --with-http_ssl_module --with-http_addition_module --with-http_realip_module --with-http_flv_module --with-http_random_index_module --with-http_degradation_module --with-http_slice_module --with-http_dav_module --with-http_mp4_module --with-http_xslt_module --with-http_xslt_module=dynamic --with-http_image_filter_module --with-http_image_filter_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_secure_link_module --with-http_stub_status_module --with-http_sub_module --with-http_perl_module --with-http_perl_module=dynamic --with-mail --with-mail=dynamic --with-mail_ssl_module --with-stream=dynamic --with-stream_ssl_module --with-stream_realip_module --with-stream_ssl_preread_module --with-compat --user=<任意のユーザ名 例. nginx> --group=<任意のグループ名 例. nginx> --add-module=<Digest認証モジュールのソースコードがあるディレクトリ> <br> Passengerのビルドが開始する。<br> ビルドに成功した時、<u>Passengerを組み込まれた</u>nginx.confの設定が表示される。<br> <syntaxhighlight lang="nginx"> http { # ...略 passenger_root /<NginX向けPassangerのインストールディレクトリ>/passenger-6.0.17; passenger_ruby /<Rubyのインストールディレクトリ>/bin/ruby-3_0; # ...略 } </syntaxhighlight> <br><br> == Apache2との連携 == ==== Phusion Passengerとは ==== Railsシステムを実行するためのApacheモジュールである。<br> <br> ==== メリット ==== Redmine等のRuby on RailsシステムをPhusion Passenger([http://www.modrails.com/ mod_rails for Apache])を使用して、Apache上で稼働させる。<br> これにより、運用の簡素化、複数インスタンスを並列稼働させることによるレスポンスの改善が期待できる。<br> <br> 特徴<br> * Apache2を起動するだけでRailsシステムが使用できる。<br>Apache2のモジュールとして実装されており、別途デーモンを起動する必要が無い。<br>Railsシステム用の起動スクリプトは不要である。 * TCPポートを消費しない。 * Railsシステムのデプロイが簡素化される。(PHPのように、ファイルのアップロードのみで出来る) * サーバのメモリが節約できる。<br>Railsインスタンスは必要なタイミングで生成する。<br>また、一定時間アクセスがなければ、インスタンスを終了させる。 <br> ==== 手順 ==== インストール手順は、次の通りである。<br> * ビルドに必要なライブラリをインストールする。 * Ruby向けにPassengerをインストールする。 * Apache2向けのPassangerモジュールをビルドする。 * httpd.confを変更する。 * 仮想ホストとして構築する場合は、仮想ホストファイルを作成する。 <br> ==== ビルドに必要なライブラリのインストール ==== sudo zypper install libcurl-devel <br> ==== Ruby向けPassengerのインストール ==== gem install passenger <br> ==== Apache2向けPassangerモジュールのビルド ==== Apache2をソースコードからビルドおよびインストールしている場合、環境変数APXS2および環境変数PATHを手動で設定する必要がある。<br> これにより、Apache2のヘッダファイル、APRを探索してインストールすることができる。<br> <br> # ~/.profileファイル export APXS2=/<Apache2のインストールディレクトリ>/bin/apxs export PATH=/<Apache2のインストールディレクトリ>/bin:$PATH <br> Apache2向けのPassangerモジュールをビルドする。<br> passenger-install-apache2-module <br> 手順が表示されるので、[Enter]キーを押下して次へ進む。<br> ビルド環境の選択では、[Ruby]を選択して、[Enter]キーを押下する。<br> Passengerのビルドが開始する。<br> <br> ビルドに成功した時、Passengerを組み込むためのhttpd.confの設定が表示される。<br> # 出力例 LoadModule passenger_module /<Rubyのインストールディレクトリ>/lib64/ruby/gems/<Rubyのバージョン>/gems/passenger-<Passengerのバージョン>/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /<Rubyのインストールディレクトリ>/lib64/ruby/gems/<Rubyのバージョン>/gems/passenger-<Passengerのバージョン> PassengerDefaultRuby /<Rubyのインストールディレクトリ>/bin/ruby </IfModule> <br> ==== Apache2の設定 (httpd.confファイルの変更) ==== Apache2の設定ファイル(httpd.conf)において、上記セクションに記述したPassengerを組み込むための設定を追記する。<br> <syntaxhighlight lang="apache"> # httpd.confファイル (設定例) # ...略 LoadModule passenger_module /<Rubyのインストールディレクトリ>/lib64/ruby/gems/<Rubyのバージョン>/gems/passenger-<Passengerのバージョン>/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /<Rubyのインストールディレクトリ>/lib64/ruby/gems/<Rubyのバージョン>/gems/passenger-<Passengerのバージョン> PassengerDefaultRuby /<Rubyのインストールディレクトリ>/bin/ruby </IfModule> </syntaxhighlight> <br> ==== 仮想ホストとして構築する場合 ==== <syntaxhighlight lang="apache"> # vhost-redmine.confファイル (設定例) <VirtualHost *:80> ServerName redmine # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. DocumentRoot /<Redmineのインストールディレクトリ>/public # if not specified, the global error log is used ErrorLog /<Redmineのインストールディレクトリ>/log/redmine-error_log CustomLog /<Redmineのインストールディレクトリ>/log/redmine-access_log combined # don't loose time with IP address lookups HostnameLookups Off # needed for named virtual hosts UseCanonicalName Off # configures the footer on server-generated documents ServerSignature On # Redmineの画像ファイルおよびCSSファイル等へのアクセスを許可する設定 # Apache 2.4のデフォルトではサーバ上の全ファイルへのアクセスが禁止されている <Directory "/<Redmineのインストールディレクトリ>/public"> # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. Options Indexes FollowSymLinks # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit AllowOverride None # Controls who can get stuff from this server. Require all granted </Directory> </VirtualHost> </syntaxhighlight> <br><br> == Unicornの設定 == ==== Unicornとは ==== Unicornは、Ruby on RailsアプリケーションのためのUnicorn Webサーバ(Rackサーバ)である。<br> HTTPサーバであり、高速かつスケーラブルなWebアプリケーションを提供することを目的としており、Redmineを効率的かつスムーズに実行するために使用される。<br> <br> Unicornは、Unicorn WebサーバとRedmineを統合することにより、Redmineをよりスムーズかつ安定した方法で実行することができる。<br> これにより、Redmineを使用するユーザは、より優れたパフォーマンスと高い可用性を得ることができる。<br> <br> ==== Unicornのインストール ==== UnicornはRubyモジュール(gem)として提供されているため、bundlerでインストールする。<br> Redmineをインストールしたディレクトリに移動して、Gemfile.localファイルを作成する。<br> cd <Redmineのインストールディレクトリ> vi Gemfile.local <br> # /<Redmineのインストールディレクトリ>/Gemfile.local gem "unicorn" <br> Unicornをインストールする。<br> bundle update <br> ==== 単独起動 ==== Unicornは、マスタープロセス1つにワーカープロセスが複数という構成で実行する。<br> <br> Unicornを起動して、Redmineの動作を確認する。<br> bundle exec unicorn_rails -l 3000 -E production <br> Webブラウザから http://localhost:3000 にアクセスして、動作を確認する。<br> <br> 各オプションを、以下に示す。<br> * --listen -l <[アドレス:]ポート> *: ソケットのエンドポイントを指定 * --config-file -c <ファイル> *: 設定ファイルを指定 * -D *: デーモンプロセス起動指定 * -E <RAILS_ENV> *: production等を指定 <br> Unicornの終了手順を、以下に示す。<br> * フォアグラウンドプロセスとして起動した場合 *: [Ctrl] + [C]キーを同時押下して停止する。 * デーモンプロセスとして起動した場合 *: シグナルINT(強制終了)またはQUIT(グレースフル停止)をマスタープロセスに送信する。 *: シグナルINTは、ワーカープロセスを終了させて自らも終了する。 <br> ==== 設定ファイル(unicorn.rb)の作成 ==== Redmineのインストールディレクトリに移動して、configディレクトリにunicorn.rbファイルを作成する。<br> cd /<Redmineのインストールディレクトリ>/config vi unicorn.rb <br> <syntaxhighlight lang="ruby"> # /<Redmineのインストールディレクトリ>/config/unicorn.rb # -*- coding: utf-8 -*- # 応答性を良好に保つには、コア数以上のワーカーを指定する # ただし、仮想環境では、CPU使用率とメモリ使用量を見ながらワーカー数を許容範囲まで増やす worker_processes 2 # リクエスト待ち受け口 # TCPとUNIXドメインとが指定可能 # 複数のプロトコルを列挙することで複数のプロトコルおよびポートを扱うことができる ## UNIXドメインソケットを使用する場合 listen "/<Redmineのインストールディレクトリ>/tmp/sockets/unicorn.sock", :backlog => 32 ## TCPソケットを使用する場合 #listen 8080, :tcp_nopush => true timeout 30 pid "/<Redmineのインストールディレクトリ>/tmp/pids/unicorn.pid" stderr_path '/<Redmineのインストールディレクトリ>/log/unicorn.stderr.log' stdout_path '/<Redmineのインストールディレクトリ>/log/unicorn.stdout.log' # マスタープロセス起動時にアプリケーションをロードする(true時) # ワーカープロセス側でロードをしないのでメモリ消費、応答性良好になる # ただし、ソケットはfork後に開きなおす必要あり # HUPシグナルでアプリケーションはロードされない preload_app true # unicornと同一ホスト上のクライアントとのコネクション限定で、維持されているかをアプリケーションを呼ぶ前にチェックする check_client_connection false before_fork do |server, worker| # Railsでpreload_appをtrueにしているときは強く推奨 defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! # new master phase out the old master old_pid = "#{server.config[:pid]}.oldbin" if old_pid != server.pid begin sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU Process.kill(sig, File.read(old_pid).to_i) rescue Errno::ENOENT, Errno::ESRCH end end end after_fork do |server, worker| # Railsでpreload_appをtrueにしているときは必須 defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection end </syntaxhighlight> <br> オプションを付加して、Unicornを起動する。<br> cd /<Redmineのインストールディレクトリ> bundle exec unicorn_rails -c config/unicorn.rb -E production <br><br> __FORCETOC__ [[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]]
インストール - Redmine
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse