ラズパイ3へ Redmine インストール
RaspberryPiにRedmineをインストールする方法
を参考にインストール
まずパッケージのアップデート
1 2 | sudo apt-get -y update sudo apt-get -y upgrade |
次に redmine に必要なパッケージのインストール
1 | sudo apt-get -y install apache2 libapache2-mod-passenger imagemagick libmagick++-dev ruby-dev bundler git subversion |
DBにmysql を使うのでインストールする予定だったが
libmysqlclient-dev がないため、postgresql を使う
ように変更
まずロケール設定
1 | sudo locale-gen ja_JP.UTF-8 |
次に開発ツールと ruby passenger 関連インストール
1 | sudo apt-get -y install build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev |
そして postgresql のインストール
1 | sudo apt-get -y install postgresql postgresql-server-dev-9.5 |
次に apache 関連インストール
1 | sudo apt-get -y install apache2 apache2-dev libapr1-dev libaprutil1-dev |
次に imagemagic と日本語フォントのインストール
1 2 | sudo apt-get install -y imagemagick libmagick++-dev sudo apt-get -y install fonts-takao |
しかしメモリ不足のためインストールエラー
このため一度再起動して再度挑戦
1 2 3 | sudo apt-get -y install fonts-taksudo apt-get -y install fonts-takao fc-list | grep takao |
として
1 2 3 4 | /usr/share/fonts/truetype/takao-mincho/TakaoPMincho .ttf: Takao P明朝,TakaoPMincho:style=Regular /usr/share/fonts/truetype/takao-gothic/TakaoPGothic .ttf: Takao Pゴシック,TakaoPGothic:style=Regular /usr/share/fonts/truetype/takao-gothic/TakaoGothic .ttf: Takaoゴシック,TakaoGothic:style=Regular /usr/share/fonts/truetype/takao-mincho/TakaoMincho .ttf: Takao明朝,TakaoMincho:style=Regular |
となればOK
[/shell]
sudo apt-get install git subversion
[/shell]
でバージョン管理ソフト git と subversion
のインストール
次に ruby のバージョンの確認
1 | ruby - v |
を実行したところ、現在のバージョンは
ruby 2.3.3p222
これはもともと入ってました
次に bundlerのインストール
1 | sudo gem install bundler --no-document |
–no-document
をつけるとドキュメントなしになります
次に PostgreSQL のバージョン確認
1 | psql --version |
今回は
psql (PostgreSQL) 9.6.6
でした
次に Redmine用ユーザ作成
1 | sudo -u postgres createuser -P redmine |
そして Redmine のためのDB作成
1 | sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O redmine -T template0 redmine |
次にDB設定値確認
1 | sudo -u postgres psql -U postgres |
で PostgreSQL のコンソールになるので
1 |
を実行するとDB設定をみることができます
なお、この画面を抜けるには q を押せばOK
1 2 3 4 5 6 7 8 9 10 | データベース一覧 名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権 -----------+----------+------------------+-------------+-------------------+----------------------- postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | redmine | redmine | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c /postgres + | | | | | postgres=CTc /postgres template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c /postgres + | | | | | postgres=CTc /postgres (4 行) |
今回はこんなかんじになりました
なお PostgreSQL コンソールを抜けるには
1 |
で抜けれます
次にRedmine のインストール
1 2 | sudo mkdir /var/lib/redmine sudo chown www-data /var/lib/redmine/ |
で mkdir でディレクトリを作成し
chown で www-data に所有者変更
1 | sudo -u www-data svn co http: //svn .redmine.org /redmine/branches/3 .4-stable /var/lib/redmine |
で svn を使い
/var/lib/redmine/ 以下へダウンロード
なお svn コマンドについては
【svn】基本コマンド
を参考に
今回使った svn co はチェックアウト
次にDB接続設定
1 | sudo vim /var/lib/redmine/config/database .yml |
でファイルを作成し、中身は
1 2 3 4 5 6 7 | production: adapter: postgresql database: redmine host: localhost username: redmine password: "redmineDBのパスワード" encoding: utf8 |
としておく
次にRedmine の設定ファイルの作成
これはサンプルを書き換えて作成するので
1 2 | cd /var/lib/redmine/config/ sudo cp configuration.yml.example configuration.yml |
でファイルをコピーして
1 | sudo vim configuration.yml |
でファイルを開き
1 2 3 4 5 6 7 8 9 | production: email_delivery: delivery_method: :smtp smtp_settings: address: "localhost" port: 25 domain: 'example.com' rmagick_font_path: /usr/share/fonts/truetype/takao-gothic/TakaoPGothic .ttf |
として保存
次に redmineの gem のインストール
1 2 | cd /var/lib/redmine/ sudo -u www-data bundle install --without development test --path vendor /bundle |
次にセッション改ざん防止秘密鍵作成
1 | sudo -u www-data bundle exec rake generate_secret_token |
次にDBテーブル作成
1 | sudo -u www-data RAILS_ENV=production bundle exec rake db:migrate |
次にデフォルトデータ登録
1 | sudo -u www-data RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data |
次に Passenger のインストール
1 | sudo gem install passenger --no-rdoc --no-ri |
Passenger Apacheモジュールインストール
1 | sudo passenger- install -apache2-module --auto --languages ruby |
次に apache用設定ファイルの確認
1 | passenger- install -apache2-module --snippet |
内容は
1 2 3 4 5 | LoadModule passenger_module /var/lib/gems/2 .3.0 /gems/passenger-5 .1.12 /buildout/apache2/mod_passenger .so <IfModule mod_passenger.c> PassengerRoot /var/lib/gems/2 .3.0 /gems/passenger-5 .1.12 PassengerDefaultRuby /usr/bin/ruby2 .3 < /IfModule > |
となりました
次に Apache の設定
1 | sudo vim /etc/apache2/conf-available/redmine .conf |
でファイルを作成し
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <Directory "/var/lib/redmine/public" > Require all granted < /Directory > LoadModule passenger_module /var/lib/gems/2 .3.0 /gems/passenger-5 .1.12 /buildout/apache2/mod_passenger .so <IfModule mod_passenger.c> PassengerRoot /var/lib/gems/2 .3.0 /gems/passenger-5 .1.12 PassengerDefaultRuby /usr/bin/ruby2 .3 < /IfModule > PassengerMaxPoolSize 20 PassengerMaxInstancesPerApp 4 PassengerPoolIdleTime 864000 PassengerStatThrottleRate 10 |
としてRedmine の画像ファイルやCSSファイルへ
アクセスを許可
これをしないと apache2.4 のデフォルト設定では
アクセス禁止になっている
そして Passenger の基本設定をコマンドの実行結果を元に記述し
Passenger のチューニング設定を追記
設定については
ttps://www.phusionpassenger.com/library/config/apache/reference/
のリファレンスを参考に
ここまでできたら apache の設定を反映
1 2 | sudo a2enconf redmine apache2ctl configtest |
を実行したときに
1 | AH00558: apache2: Could not reliably determine the server 's fully qualified domain name, using 127.0.1.1. Set the ' ServerName' directive globally to suppress this message |
となるので
を参考にServername を設定
1 | hostname |
でホスト名を確認
今回は
raspberrypi
だったので
1 2 3 | cd /etc/apache2/conf-available/ sudo touch fqdn.conf sudo vim fqdn.conf |
でファイルを作成して編集
1 | ServerName raspberrypi |
として保存し
1 2 | sudo a2enconf fqdn sudo service apache2 restart |
として設定を反映し
apache2 を再起動したところ
1 2 | Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details. |
となるため
1 | journalctl -xe |
で確認すると
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | -- Unit apache2.service has begun starting up. 1月 29 20:58:15 raspberrypi apachectl[24661]: [Mon Jan 29 20:58:15.640734 2018] [so:warn] [pid 24664:tid 1996165120] AH01574: module p 1月 29 20:58:15 raspberrypi apachectl[24661]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80 1月 29 20:58:15 raspberrypi apachectl[24661]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80 1月 29 20:58:15 raspberrypi apachectl[24661]: no listening sockets available, shutting down 1月 29 20:58:15 raspberrypi apachectl[24661]: AH00015: Unable to open logs 1月 29 20:58:15 raspberrypi apachectl[24661]: Action 'start' failed. 1月 29 20:58:15 raspberrypi apachectl[24661]: The Apache error log may have more information. 1月 29 20:58:15 raspberrypi systemd[1]: apache2.service: Control process exited, code=exited status=1 1月 29 20:58:15 raspberrypi systemd[1]: Failed to start The Apache HTTP Server. -- Subject: Unit apache2.service has failed -- Defined-By: systemd -- Support: https: //www .debian.org /support -- -- Unit apache2.service has failed. -- -- The result is failed. 1月 29 20:58:15 raspberrypi systemd[1]: apache2.service: Unit entered failed state. 1月 29 20:58:15 raspberrypi systemd[1]: apache2.service: Failed with result 'exit-code' . 1月 29 20:58:15 raspberrypi sudo [24652]: pam_unix( sudo :session): session closed for user root 1月 29 21:05:01 raspberrypi CRON[25108]: pam_unix( cron :session): session opened for user root by (uid=0) 1月 29 21:05:01 raspberrypi CRON[25112]: (root) CMD ( command - v debian-sa1 > /dev/null && debian-sa1 1 1) 1月 29 21:05:01 raspberrypi CRON[25108]: pam_unix( cron :session): session closed for user root |
すでに Gitlab を設定しているため
サブディレクトリで Redmine を実行するように設定を変更
1 | sudo vim /etc/apache2/conf-available/redmine .conf |
でファイルを開き
1 2 3 4 5 | Alias /redmine /var/lib/redmine/public <Location /redmine > PassengerBaseURI /redmine PassengerAppRoot /var/lib/redmine < /Location > |
を最終行に追記し保存
1 | sudo service apache2 reload |
としたけど
1 | apache2.service is not active, cannot reload. |
となってしまう
1 | sudo ln -s /var/lib/redmine/public /var/www/html/redmine |
でシンボリックリンクを作成し
1 | RackBaseURI /redmine |
を
1 | /etc/apache2/conf-available/redmine .conf |
の最終行へ追記してもエラー
再度
1 | apachectl configtest |
を実行すると
1 | AH01574: module passenger_module is already loaded, skipping |
とエラーが変化
1 | systemctl status apache2.service |
でエラーをみたところ
1 | (98)Address already in use: AH00072: make_sock |
とあり
検索すると
エラーメッセージとその対処あれこれ
によればポートの競合が原因
おそらく GitLab で使っているポートと重複するのが
原因
このため Gitlab の ポートを変更することに
1 | sudo vim /etc/gitlab/gitlab .rb |
で設定ファイルを開き
13行目あたりの
1 | external_url 'http://raspberrypi' |
の部分を
1 | external_url 'http://raspberrypi:7000' |
として
7000版ポートを使うように変更
変更の方法については
GitLab 8.2 + HTTPS 設定メモ(CentOS7)
を参考にしました
しかし、これでもダメなため
Gitlab Redmine 共存環境で検索し
1 | sudo vim /etc/gitlab/gitlab .rb |
で設定ファイルを開き
444行目の
1 | #gitlab_workhorse['auth_backend'] = "http://localhost:8080" |
506行目の
1 | #unicorn['port'] = 8080 |
のコメントアウトを削除し
744行目の
1 | #nginx['listen_port'] = nil |
を
1 | nginx[ 'listen_port' ] = 8080 |
へ変更
設定反映のため
1 | sudo gitlab-ctl reconfigure |
1 | sudo gitlab-ctl restart |
としたけどダメ
このため、一度これらの設定を元に戻す
ラズパイにRedmine3をインスールする。そして地獄を見る。また。。。
を参考に設定ファイルを変更
1 | sudo apt-get install -y libapache2-mod-passenger imagemagick libmagick++-dev libmagickcore-dev libmagickwand-dev apache2-dev libcurl4-openssl-dev libapr1-dev libaprutil1-dev |
でパッケージを追加し
1 | sudo swapon -s |
でswap容量を確認
これで100Mしかないため
1 | sudo service dphys-swapfile stop |
で一度とめて
1 | sudo vim /etc/dphys-swapfile |
でファイルを開き
16行目あたりの
1 | CONF_SWAPSIZE=100 |
を
1 | CONF_SWAPSIZE=2048 |
へ変更し
1 | sudo service dphys-swapfile start |
で再起動
次に
1 | sudo vim /etc/apache2/conf-available/redmine .conf |
で内容が
1 2 3 4 5 | <Directory "/var/lib/redmine/public" > Require all granted < /Directory > RackBaseURI /redmine |
であることを確認し
1 | sudo cp /etc/apache2/conf-enabled/redmine .conf redmine.conf_bak |
ですでに存在するファイルをバックアップしてから
1 | sudo rm /etc/apache2/conf-enabled/redmine .conf |
で削除し
1 | sudo ln -s /etc/apache2/conf-available/redmine .conf /etc/apache2/conf-enabled/redmine .conf |
でシンボリックリンク作成して
1 | sudo vim /etc/apache2/mods-available/passenger .conf |
を実行すると
1 2 3 4 | <IfModule mod_passenger.c> PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations .ini PassengerDefaultRuby /usr/bin/ruby < /IfModule > |
となっているので
この下へ
1 2 | PassengerResolveSymlinksInDocumentRoot on PassengerInstanceRegistryDir /var/run/passenger-instreg |
を
追記し保存
1 | sudo vim /etc/apache2/mods-available/passenger .load |
でファイルを開くと
1 | LoadModule passenger_module /usr/lib/apache2/modules/mod_passenger .so |
となっていた
1 2 3 | sudo a2enconf redmine apache2ctl configtest sudo service apache2 restart |
でエラーはないけど
redmine へアクセスしようとしてもディレクトリ構造だけ
1 | passenger-status |
を実行すると
1 2 3 4 | ERROR: Phusion Passenger doesn't seem to be running. If you are sure that it is running, then the causes of this problem could be: 1. You customized the instance registry directory using Apache 's PassengerInstanceRegistryDir option, Nginx' s passenger_instance_registry_dir option, or Phusion Passenger Standalone's --instance-registry- dir command line argument. If so, please set the environment variable PASSENGER_INSTANCE_REGISTRY_DIR to that directory and run passenger-status again. 2. The instance directory has been removed by an operating system background service. Please set a different instance registry directory using Apache 's PassengerInstanceRegistryDir option, Nginx' s passenger_instance_registry_dir option, or Phusion Passenger Standalone's --instance-registry- dir command line argument. |
となるため、
これで検索
によれば
1 | sudo mkdir /var/run/passenger-instreg |
で
httpd.conf」に以下を追加
とあったけど
1 | sudo vim /etc/apache2/apache2 .conf |
で開いても項目が見当たらないため
再度コマンド履歴をみたところ
1 | /etc/apache2/mods-enabled/passenger .load |
がシンボリックリンクになっていないため
1 | sudo cp /etc/apache2/mods-enabled/passenger .load . |
でバックアップし
1 | sudo rm /etc/apache2/mods-enabled/passenger .load |
で
ファイルを削除して
1 | sudo ln -s /etc/apache2/mods-available/passenger .load /etc/apache2/mods-enabled/passenger .load |
でシンボリックリンクを作成し
1 | sudo service apache2 restart |
とすると
ようやく redmine が起動しました