Project

General

Profile

Actions

RedmineOnVpsCloud

NTT PC CommunicationsのVPSクラウドの360円(税抜)サーバにRedmineをインストールしてみた記録です。

これを書いたときの各種ソフトのバージョン

仮想マシンOS CentOS 6.5
Apache(RPM) 2.2.15-56.el6.centos.3
PostgreSQL(RPM) 9.6.1-1PGDG.rhel6
Ruby 2.3.3
Redmine 3.3-stable

セキュリティグループのルール

tcp:22,22,ip4:0.0.0.0/0
tcp:80,80,ip4:0.0.0.0/0
tcp:443,443,ip4:0.0.0.0/0
icmp:-1,-1,ip4:0.0.0.0/0

インスタンスを作ってログインできた後の設定

基本的に、 http://blog.redmine.jp/articles/3_2/install/centos/ に従います。

yum update

SELinuxは最初からDisableになっているようです。

firewalldはCentOS6.5では動いていないようです。

zramを使う

RAMが512MBしかないので、zramを使って極力ディスクへのスワップを防ぎます。
CentOS 6.x / RHCE 6 / RedHat 6 zram compression を参考にします。ただし、64行目あたりは同ページのel_esさんのコメントにあるように

orig=$(< $i/orig_data_size)
echo "$i: original $orig compressed $compr ratio $(($orig*100/$compr)):1"

にしないとまともに動かないので注意。

一般ユーザを作る

rootでRuby等のビルドをするのはなんか気持ち悪いので、Rubyのインストールに先立って一般ユーザを作ります。

adduser <適当なユーザ名>
passwd <適当なユーザ名>

さらに、http://d.hatena.ne.jp/a__z/20071011 を参考に、sudoを行えるようにします。

/usr/local/binのコマンドをsudoで使いたいので、 http://blog.thingslabo.com/archives/000395.html を参考に、secure_path に /usr/local/bin を追記してください。

ただし、一般ユーザを作ったとしてもrootでしかSSHでログインできないようなので、一般ユーザとして作業したいならば、いったんrootでログインしてから su -l ユーザ名します。

Redmineを動かす準備

必要なパッケージのインストール

最新のPostgreSQLを使いたかったので、 http://blog.redmine.jp/articles/3_2/install/centos/ の内容を少しアレンジしています。

yum -y groupinstall "Development Tools"
yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel
yum -y install httpd httpd-devel
yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts

PostgreSQLのインストール

VPSクラウドのCentOS6.5イメージでは最初から8.4.20がインストール済みのようなので、それをアンインストールします。

yum remove postgresql-server
yum remove postgresql
yum remove postgresql-libs

9.6をインストールします。 http://weblabo.oscasierra.net/postgresql-installing-postgresql9-centos6-1/ を参考にしましょう。ただし、yum -y localinstall するのは https://yum.postgresql.org/repopackages.php から PostgreSQL 9.6 の CentOS 6 - x86_64 のリンクを拾ってきて、

yum localinstall https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-centos96-9.6-3.noarch.rpm

のようにします。そのあと以下を実行します。

yum install postgresql96-server
yum install postgresql96-devel

Rubyのインストール

これ以降は一般ユーザで作業しているものとして記述します(一般ユーザになるには、 su -l ユーザ名 を使います)。

Redmine3.3を使いたいのでRuby2.4は使えず、Rubyは2.3にします。なお、Redmineのバージョンと依存ソフトバージョンの対応は http://www.redmine.org/projects/redmine/wiki/redmineinstall に書いてあります。

curl -O https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.3.tar.gz
tar xf ruby-2.3.3.tar.gz
cd ruby-2.3.3
export cflags='-march=native'
export cxxflags=$cfags
./configure --disable-install-doc
make
sudo make install

bundlerのインストールは http://blog.redmine.jp/articles/3_2/install/centos/ をそのままやってください。

PostgreSQLの設定

sudo service postgresql-9.6 initdb
sudo chkconfig postgresql-9.6 on
sudo service postgresql-9.6 start
sudo su #rootになる
cd /var/lib/pgsql/9.6
sudo -u postgres /usr/pgsql-9.6/bin/createuser -P redmine
(パスワードは適当に設定)
sudo -u postgres /usr/pgsql-9.6/bin/createdb -E UTF-8 -l ja_JP.UTF-8 -O redmine -T template0 redmine
exit #一般ユーザに戻る

Redmineのインストール

http://blog.redmine.jp/articles/3_2/install/centos/

Redmineのインストール
Redmineの初期設定と初期データ登録
Passengerのインストール
Apacheの設定

をほぼそのままなぞります。

  • 注意点
    • Redmineは3.3を入れるので http://svn.redmine.org/redmine/branches/3.3-stable を指定します。
    • rootでbundleすると怒られるので、/var/lib/redmineは一般ユーザが書き込めるようにします。svn coした後、 chown -R ユーザ名:ユーザ名 /var/lib/redmine です。
    • bundleを実行する前に、PATH=/usr/pgsql-9.6/bin:$PATH してpg_configにパスを通す必要があります。
    • service httpd start したときにServerNameを設定しろと怒られた場合は、 /etc/httpd/conf/httpd.conf を編集して、ServerName hogehoge.dip.jp を追加します。
    • systemctl enable httpd の代わりに chkconfig httpd on します。

RAILS_ENV=production bundle exec rake db:migrate に失敗するのを防ぐには以下のようにします。

  1. /var/lib/pgsql/9.6/data/pg_hba.conf を修正して、ADDRESSが 127.0.0.1/32 と ::1/128 の行末の「ident」を「md5」に変えます。
  2. sudo service postgresql-9.6 restart

テストその1

この時点でApache2が動いているので、ブラウザから http://<割り当てられたIPアドレス> に接続すればテストページが見られるはずです。

Apacheチューニング

https://centossrv.com/apache.shtml を読んで、適当にチューニングします。

Redmineの設定

http://blog.redmine.jp/articles/3_2/install/centos/ の Apache上のPassengerでRedmineを実行するための設定 をなぞります。
パターン2: サブディレクトリでRedmineを実行 のほうに従ってください。

テストその2

この時点でRedmineが動いているので、ブラウザから http://<割り当てられたIPアドレス>/redmine に接続すればRedmineのホームが見られるはずです。

インストール完了後の初期設定

http://blog.redmine.jp/articles/3_2/install/centos/ の インストール完了後の初期設定 をなぞります。
ただし、別のサーバで運用していたRedmineのバックアップを今構築したサーバにリストアするならこのタイミングです。

Redmineのバックアップをリストアする

https通信を行えるようにする

平文でパスワードのやり取りをするのは危ないので、httpsで通信できるようにします。

ieserver.netに登録

証明書を作るのに先立って、インターネットから見えるホスト名とドメイン名を決めておく必要があります。
ドメイン名を取得するとお金がかかるので、ここではwww.ieserver.netの無料ダイナミックDNSサービスを利用します。

まずは適当なWindowsPCなどで「新規ユーザ登録」を済ませてください。
そのあと、VPSクラウドの仮想マシン上からDDNSのアドレス割り当てを修正します。

VPSクラウドはIPアドレスが変更されないので、アドレス割り当てはいちどでよいため、「IPアドレス更新サンプルスクリプト」を使う必要はありません。
yum install lynx でテキストウェブブラウザをインストールし、lynxでiesever.netにアクセスして「IP登録」ボタンを押します。

手順

  1. sudo yum install lynx
  2. lynx https://ieserver.net
  3. ユーザ名(サブドメイン名)、ドメイン名、パスワードを入力して「IP登録」を押す
  4. キーボードのqを押してlynxを終了させる

DDNSのデータベースが書き換わるには4分程度かかるようです。経過後に、pingで応答があるか確かめてみましょう。

ApacheにSSL接続をするための方法

備考

  • VPS ClowdのCentOS6.5イメージでは、zswapは使用できないみたい。(sys/modulesにzswapが見当たらない)
  • zramは使用できる。(modprobeでzramが見つかる)


Count of this page : 170

Updated by mole lord about 2 years ago · 1 revisions