ラズパイ3へ Redmine インストール
RaspberryPiにRedmineをインストールする方法
を参考にインストール
まずパッケージのアップデート
sudo apt-get -y update
sudo apt-get -y upgrade
次に redmine に必要なパッケージのインストール
sudo apt-get -y install apache2 libapache2-mod-passenger imagemagick libmagick++-dev ruby-dev bundler git subversion
DBにmysql を使うのでインストールする予定だったが
libmysqlclient-dev がないため、postgresql を使う
ように変更
まずロケール設定
sudo locale-gen ja_JP.UTF-8
次に開発ツールと ruby passenger 関連インストール
sudo apt-get -y install build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev
そして postgresql のインストール
sudo apt-get -y install postgresql postgresql-server-dev-9.5
次に apache 関連インストール
sudo apt-get -y install apache2 apache2-dev libapr1-dev libaprutil1-dev
次に imagemagic と日本語フォントのインストール
sudo apt-get install -y imagemagick libmagick++-dev
sudo apt-get -y install fonts-takao
しかしメモリ不足のためインストールエラー
このため一度再起動して再度挑戦
sudo apt-get -y install fonts-taksudo
apt-get -y install fonts-takao
fc-list | grep takao
として
/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 のバージョンの確認
ruby -v
を実行したところ、現在のバージョンは
ruby 2.3.3p222
これはもともと入ってました
次に bundlerのインストール
sudo gem install bundler --no-document
–no-document
をつけるとドキュメントなしになります
次に PostgreSQL のバージョン確認
psql --version
今回は
psql (PostgreSQL) 9.6.6
でした
次に Redmine用ユーザ作成
sudo -u postgres createuser -P redmine
そして Redmine のためのDB作成
sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O redmine -T template0 redmine
次にDB設定値確認
sudo -u postgres psql -U postgres
で PostgreSQL のコンソールになるので
\l
を実行するとDB設定をみることができます
なお、この画面を抜けるには q を押せばOK
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | 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 コンソールを抜けるには
\q
で抜けれます
次にRedmine のインストール
sudo mkdir /var/lib/redmine
sudo chown www-data /var/lib/redmine/
で mkdir でディレクトリを作成し
chown で www-data に所有者変更
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接続設定
sudo vim /var/lib/redmine/config/database.yml
でファイルを作成し、中身は
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "redmineDBのパスワード"
encoding: utf8
としておく
次にRedmine の設定ファイルの作成
これはサンプルを書き換えて作成するので
cd /var/lib/redmine/config/
sudo cp configuration.yml.example configuration.yml
でファイルをコピーして
sudo vim configuration.yml
でファイルを開き
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 のインストール
cd /var/lib/redmine/
sudo -u www-data bundle install --without development test --path vendor/bundle
次にセッション改ざん防止秘密鍵作成
sudo -u www-data bundle exec rake generate_secret_token
次にDBテーブル作成
sudo -u www-data RAILS_ENV=production bundle exec rake db:migrate
次にデフォルトデータ登録
sudo -u www-data RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
次に Passenger のインストール
sudo gem install passenger --no-rdoc --no-ri
Passenger Apacheモジュールインストール
sudo passenger-install-apache2-module --auto --languages ruby
次に apache用設定ファイルの確認
passenger-install-apache2-module --snippet
内容は
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 の設定
sudo vim /etc/apache2/conf-available/redmine.conf
でファイルを作成し
<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 の設定を反映
sudo a2enconf redmine
apache2ctl configtest
を実行したときに
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
となるので
apache2再起動時にAH00558が発生する
を参考にServername を設定
hostname
でホスト名を確認
今回は
raspberrypi
だったので
cd /etc/apache2/conf-available/
sudo touch fqdn.conf
sudo vim fqdn.conf
でファイルを作成して編集
ServerName raspberrypi
として保存し
sudo a2enconf fqdn
sudo service apache2 restart
として設定を反映し
apache2 を再起動したところ
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.
となるため
journalctl -xe
で確認すると
-- 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 を実行するように設定を変更
sudo vim /etc/apache2/conf-available/redmine.conf
でファイルを開き
Alias /redmine /var/lib/redmine/public
<Location /redmine>
PassengerBaseURI /redmine
PassengerAppRoot /var/lib/redmine
</Location>
を最終行に追記し保存
sudo service apache2 reload
としたけど
apache2.service is not active, cannot reload.
となってしまう
sudo ln -s /var/lib/redmine/public /var/www/html/redmine
でシンボリックリンクを作成し
RackBaseURI /redmine
を
/etc/apache2/conf-available/redmine.conf
の最終行へ追記してもエラー
再度
apachectl configtest
を実行すると
AH01574: module passenger_module is already loaded, skipping
とエラーが変化
systemctl status apache2.service
でエラーをみたところ
(98)Address already in use: AH00072: make_sock
とあり
検索すると
エラーメッセージとその対処あれこれ
によればポートの競合が原因
おそらく GitLab で使っているポートと重複するのが
原因
このため Gitlab の ポートを変更することに
sudo vim /etc/gitlab/gitlab.rb
で設定ファイルを開き
13行目あたりの
external_url 'http://raspberrypi'
の部分を
external_url 'http://raspberrypi:7000'
として
7000版ポートを使うように変更
変更の方法については
GitLab 8.2 + HTTPS 設定メモ(CentOS7)
GitLab 8.2 + HTTPS 設定メモ(CentOS7)
を参考にしました
しかし、これでもダメなため
Gitlab Redmine 共存環境で検索し
sudo vim /etc/gitlab/gitlab.rb
で設定ファイルを開き
444行目の
#gitlab_workhorse['auth_backend'] = "http://localhost:8080"
506行目の
#unicorn['port'] = 8080
のコメントアウトを削除し
744行目の
#nginx['listen_port'] = nil
を
nginx['listen_port'] = 8080
へ変更
設定反映のため
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
としたけどダメ
このため、一度これらの設定を元に戻す
ラズパイにRedmine3をインスールする。そして地獄を見る。また。。。
を参考に設定ファイルを変更
sudo apt-get install -y libapache2-mod-passenger imagemagick libmagick++-dev libmagickcore-dev libmagickwand-dev apache2-dev libcurl4-openssl-dev libapr1-dev libaprutil1-dev
でパッケージを追加し
sudo swapon -s
でswap容量を確認
これで100Mしかないため
sudo service dphys-swapfile stop
で一度とめて
sudo vim /etc/dphys-swapfile
でファイルを開き
16行目あたりの
CONF_SWAPSIZE=100
を
CONF_SWAPSIZE=2048
へ変更し
sudo service dphys-swapfile start
で再起動
次に
sudo vim /etc/apache2/conf-available/redmine.conf
で内容が
<Directory "/var/lib/redmine/public">
Require all granted
</Directory>
RackBaseURI /redmine
であることを確認し
sudo cp /etc/apache2/conf-enabled/redmine.conf redmine.conf_bak
ですでに存在するファイルをバックアップしてから
sudo rm /etc/apache2/conf-enabled/redmine.conf
で削除し
sudo ln -s /etc/apache2/conf-available/redmine.conf /etc/apache2/conf-enabled/redmine.conf
でシンボリックリンク作成して
sudo vim /etc/apache2/mods-available/passenger.conf
を実行すると
<IfModule mod_passenger.c>
PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
PassengerDefaultRuby /usr/bin/ruby
</IfModule>
となっているので
この下へ
PassengerResolveSymlinksInDocumentRoot on
PassengerInstanceRegistryDir /var/run/passenger-instreg
を
追記し保存
sudo vim /etc/apache2/mods-available/passenger.load
でファイルを開くと
LoadModule passenger_module /usr/lib/apache2/modules/mod_passenger.so
となっていた
sudo a2enconf redmine
apache2ctl configtest
sudo service apache2 restart
でエラーはないけど
redmine へアクセスしようとしてもディレクトリ構造だけ
passenger-status
を実行すると
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.
となるため、
これで検索
[CentOS] Redmineのインストールメモ
によれば
sudo mkdir /var/run/passenger-instreg
で
httpd.conf」に以下を追加
とあったけど
sudo vim /etc/apache2/apache2.conf
で開いても項目が見当たらないため
再度コマンド履歴をみたところ
/etc/apache2/mods-enabled/passenger.load
がシンボリックリンクになっていないため
sudo cp /etc/apache2/mods-enabled/passenger.load .
でバックアップし
sudo rm /etc/apache2/mods-enabled/passenger.load
で
ファイルを削除して
sudo ln -s /etc/apache2/mods-available/passenger.load /etc/apache2/mods-enabled/passenger.load
でシンボリックリンクを作成し
sudo service apache2 restart
とすると
ようやく redmine が起動しました