とりあえず動くことを確認したのでインストール手順をメモする
apacheとの連携、チケットの登録等を試していないので正常正しくDBとの連携が取れているかは未確認。
ただし、redmineの画面がプライベートネットワーク内とmyqnapcloudドメイン経由から表示されることは確認した。
必要なパッケージのインストール
rubyのセットアップ等に必要なパッケージをipkgでQNAPに追加。
全部は不要とのこと[ここ]。
- gcc
- make
- imagemagick
- openssl
- openssl-dev
- wget-ssl
- zlib
- less
- bash
- grep
- which
- sed
- gawk
- perl
- procps
- coreutils
- util-linux-ng
- zip
- bzip2
- diffutils
- patchutils
- gdb
- libtool
- pcre-dev
- ncursesw-dev
- net-tools
- tcl
rubyのインストール
ipkgからrubyやrails関連はインストールできるけれどもredmineが指定しているバージョンとは違い1.9.1になってしまうので、ソースからインストールすることにした。
もし、他でrubyを使用しないのであればアンインストールしておくと後々楽
$ ipkg remove ruby
$ ipkg remove rubygems
rbenvを使う方法も考えられるが、自分の環境が悪いのかrbenvはうまくいかない。さらに、QSynqと干渉してしまうらしくrbenvを実行しrubyインストールに失敗するとQSynqが接続エラーを起こすので使わない。
基本的にはここのサイトを参考にしてrubyをインストールしていけばよい。
ipkgからインストールしているコマンド系は「/opt/bin」等にあるので、QNAP起動時にOptware.shでPATHの設定を変更する方法でも構わない。
例えば)Optware.shの中で「/opt/bin:/opt/sbin:\$PATH」などとしておく。
作業場所はどこでも良いと思うが、私は.qpkg
以下にruby192
ディレクトリを作成した。
mkdir /share/MD0_DATA/.qpkg/ruby192
cd /share/MD0_DATA/.qpkg/ruby192
wget http://ring.shibaura-it.ac.jp/archives/lang/ruby/1.9/ruby-1.9.2-p330.tar.gz
tar zxvf ruby-1.9.2-p330.tar.gz
cd ruby-1.9.2-p330.tar.gz
./configure --prefix=/opt --with-opt-dir=/opt
rubyがインストールされているか確認
$ which ruby
/opt/bin/ruby
$ ruby -v
ruby 1.9.2p330 (2014-08-07 revision 47094) [armv5tel-linux-eabi]
rubygemsの確認
$ gem -v
2.4.6
railsの確認
$ rails -v
Rails 3.2.21
参考先のサイトではこの後rubygems
とrails
を入れているのだけど私の環境ではrubyを入れた段階で両方入っていた。何故かはわからない・・・・
redmineのインストール
公式に載っている手順に従って行う。
MySQLのセットアップ
公式の作業を打ち込めばいいのだが、コンソールからmysqlコマンドを認識してくれない(why?)
AppCenterからphpmyAdminからインストールして、phpMyAdminにアクセスする。
- データベースを作成する
- DBName: redmine
- Character: UTF-8
- ユーザを作成する
- 'redmine'@'localhost' identified by 'my_password'
redmineの設定
redmine公式からリリースパッケージをダウンロードして展開
mkdir /share/MD0_DATA/.qpkg/redmine
cd /share/MD0_DATA/.qpkg/redmine
wget http://www.redmine.org/releases/redmine-2.6.3.tar.gz
tar zxvf redmine-2.6.3.tar.gz
cd redmine-2.6.3
あとは公式の手順通りに進める。
途中jsonのエラーが出る場合は
gem install json
として、jsonをインストール
パーミッション設定は、redmine用のユーザ/グループを作った方がいいのだろうけど、とりあえずadminでやっている。