Redmine + Subversion インストールの記録

お名前.com VPS (CentOS 5.3) に Redmine + Subversion を導入をしたのでメモを書いておきます。不慣れなので1週間以上かかってしまいました。参考にさせていただいたサイトの作者には深く感謝いたします...
  1. Subversion のインストール

    概ね次のサイトの指示に従った。

    最初 yum を導入しようとすると、rpm から
    「ファイル ... (パッケージ .... から) は、パッケージ ... からのファイルと競合しています。」といった警告が出たので、yum を使わずに subversion を make しようとしたが、コンパイルエラーが出て行き詰ったため、強制的に(rpm --force オプションで) yum をインストールして、subversion のインストールを行った。

    お名前.com の VPS では apache は導入済みで、設定ファイルは /etc/httpd 下の conf および conf.d フォルダにある。subversion 関連の設定は conf.d 下の subversion.conf に入れればよい。
    例)
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
    Include conf/extra/httpd-subversion.conf
    <Location repos>
    DAV svn
    SVNParentPath /var/www/svn
    SVNAutoversioning on
    <Limitexcept GET PROPFIND OPTIONS REPORT>
    SSLRequireSSL
    </Limitexcept>
    </Location>
    ※SSLRequireSSL は http でのアクセスを禁止するためのディレクティブ
    ※お名前.com VPS では、一応 OpenSSL のサービスが動いている。
    ※httpd-subversion.conf の Include をしないとうまく動かなかった。
    ※httpd-subversion.conf の内容については後述する。

  2. Redmine のインストール
    あたりを参考にして Passenger による Apache 連携を念頭にインストールを行った。

    お名前.com VPS の ruby はバージョンが古かったので、バージョンアップした。

    いろいろはまりどころは多いが、ポイントは以下の通り:
    • VirtualHost は使わない。
      最初から入っている httpd.conf の <VirtualHost *:80> 設定もコメントアウトした。
      ※コメントアウトする必要はないかもしれない。
    • Alias を使わず、Symbolic Link で Passenger/Apache に動作環境を教える。
      お名前.com VPSではドキュメントルートが
      /var/www/vhosts/[ドメイン名]/httpdocs/
      であることに気づかず、かなり時間をくってしまった。
      ドキュメントルートに「ln -s /opt/redmine/ . のようにして、redmine がインストールされているディレクトリにリンクを張る。
    • MySQL 設定はそのままだと文字化けする。
      cf. http://d.hatena.ne.jp/obtdai/20090701/1246451529

  3. Redmine のユーザー名とパスワードで Subversion にログインできるような設定はこのあたり↓を参考にした。

    httpd-subversion.conf に以下のような設定をした。
    <Location svn>
    DAV svn
    SVNParentPath /var/www/svn/repos
    Require valid-user
    SSLRequireSSL
    AuthType Basic
    AuthName "Subversion repository"
    AuthMySQLEnable On
    AuthMySQLSocket /var/lib/mysql/mysql.sock
    AuthMySQLHost localhost
    AuthMySQLUser [redmine ユーザー名]
    AuthMySQLPassword [redmine パスワード]
    AuthMySQLDB [redmine DB名]
    AuthMySQLUserTable users
    AuthMySQLNameField login
    AuthMySQLPasswordField hashed_password
    AuthMySQLPwEncryption sha1
    AuthMySQLNoPasswd Off
    projects.id=members.project_
    id and projects.identifier='my-project'"
    </Location>
  4. SSL 関係
    お名前.com VPSには最初から SSL 設定があるが、配布する証明書が見当たらないので、OpenSSL の説明を見て、証明書を生成した。ブラウザでの Warning を解除するためには証明書をユーザーに配布する。また、TortoiseSVN からのアクセスのためにも証明書を配布する。

  5. http でのアクセスをブロックするために、conf.d/redmine.conf に設定をする。
    redmine.conf の内容:
    RailsBaseURI /redmine
    <Location /redmine>
    SSLRequireSSL
    </Location>
  6. Redmine で Subversion のリポジトリを読めるようにする。
    最初 https URL を指定したが、うまくいかないので、file:/// で内部ファイルパスを指定したらうまくいった。

  7. Redmine メール設定
    お名前.com VPS でメールサーバーを運用するのは面倒そうなので、gmail を使うことにした。
    gem install tlsmail
    を実行したうえで、Redmine の email.yml の gmail 用設定テンプレートを修正したら接続できた。

    これ↓を ./config/environment.rb に追加する必要もあるらしい。

    require "tlsmail"
    Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)

    ref. Redmine SMTP 設定

  8. 最後のトラブル

    Redmine の運用を始めてみると、添付ファイルのアップロードができない。
    --
    Internal error

    An error occurred on the page you were trying to access.
    If you continue to experience problems please contact your redMine
    administrator for assistance.
    --
    production.log も出ていない...(最後になってもうダメか;;)

    この問題は Redmine の config/environment.rbのオーナーを vmail(展開時の既定値)から MySQL のcreate user 文で生成したユーザーに変更したら解決した。
    Redmine コミュニティのお世話になってしまった。

Commenti

Post popolari in questo blog

Aipo に Let's Encrypt の SSL証明書を適用

久しぶりのLaTex