2018年10月18日木曜日

Raspberry Pi3 Redmine導入(諦めました)

Raspberry Pi3 Raspbian Stretch redmineインストール覚書
(まだできてません)

[背景]
Raspberry Piをサーバー化してみたい
なんとなくredmineを使いたい

[目的]
Raspberry Pi でRedmineの設定を行う

[内容]
以下のコマンドを順番に実行する。

■ソフトウェアアップデート
  • sudo apt-get update
  • sudo apt-get upgrade 


■Apache, Imagemagick, Ruby, Gitをインストール
  • sudo apt-get install apache2 libapache2-mod-passenger
  • sudo apt-get install imagemagick libmagick++-dev
  • sudo apt-get install ruby-dev bundler
  • sudo apt-get install git subversion

■MySQLをインストール
  • sudo apt-get install mysql-server default-libmysqlclient-dev 



MySQLのパスワード設定
SSHでインストールとかしてると,rootパスワード設定しろとか言ってくれないから,コマンドを叩いて設定する。

MySQLにログイン。

  • sudo mysql -u root

rootでログインしたら,「MariaDB [(none)]> 」みたいのが表示される。
その状態で,以下のコマンドを実行してrootのパスワードを変更する。
  • update mysql.user set password=password('XXXXXXXX') where user = 'root';
  • (XXXXXXXXは,パスワード。)
つぎに,パスワードの変更を適用して,MySQLのrootからログアウト。
  • flush privileges;
  • exit;
最後に,パスワードが反映されているかどうかをチェックする。
  • sudo mysql -u root -p
  • (この後,パスワードの入力が求められるので,XXXXXXXX(自分が設定したパスワード)を入力する)
多分,rootだけでなく,piについても,同様に設定するのが良いのだと思う。


■MySQLにRedmine用のデータベースを作成

MySQLにログイン。

  • sudo mysql -u root -p

MySQLにログイン後,以下のコマンドを実行。
  • create database redmine default character set utf8;
  • (redmineという名前のデータベースを作成)
  • grant all on redmine.* to redmine@localhost identified by 'redmine';
    (ユーザ名 : redmine, Pass : redmine のユーザを作成)
  • flush privileges;
    (適用!)
redmine用のデータベースが作成されるので,ログアウト。

  • exit;


■Redmineのインストール
  • sudo mkdir -p /var/www/redmine
  • sudo chown www-data /var/www/redmine
  • sudo -u www-data svn co http://svn.redmine.org/redmine/branches/3.3-stable /var/www/redmine
  • (Enter押した記憶ないけど,突然のチェックアウト開始だった)
チェックアウト成功の確認は,以下のコマンドで,なんか色々入ってたらOKだと思う。
  • ls /var/www/redmine

■RedmineとMySQLのRedmine用データベースの紐付け
ファイルを作成。
  • sudo nano /var/www/redmine/config/database.yml
nanoで,以下を入力して,保存。


production:
  adapter: mysql2
  host: localhost
# Redmine用のMySQLデータベース名
  databese: redmine
# Redmine用のMySQLユーザ名
  username: redmine
# Redmine用のMySQLパスワード
  password: redmine
  encoding: utf8


設定ファイルを作成(コピー)。
  • sudo cp /var/www/redmine/config/configuration.yml.example /var/www/redmine/config/configuration.yml


■gemパッケージインストール
  • cd /var/www/redmine
  • sudo -u www-data bundle install --without development test --path vendor/bundle

■gemパッケージの初期設定?
  • sudo -u www-data bundle exec rake generate_secret_token
  • 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

■Apacheの設定
  • cd /etc/apache2/sites-enabled
  • sudo nano 000-default.conf
nanoで,以下のように変更して,保存。

DocumentRoot /var/www/html
DocumentRoot /var/www/html
DocumentRoot /var/www/redmine/public


■Raspberry Piの再起動

  • sudo reboot


■Redmineへアクセス

ブラウザから,Raspberry PiのIPアドレスを叩いて,アクセスしてみた。

We're sorry, but something went wrong.

We've been notified about this issue and we'll take a look at it shortly.

とか出てログインはおろか,ページすら表示されないぞ!

■Redmineへアクセスできない問題の調査

●MySQLへログインができなくなってる!
色々調べてみたら,Rubuy on RAILS の問題とか,MySQLとRedmineのリンクができてないとか書いてた。
RubyやMySQLの再インストールをやったりしてるうちに,
MySQLにログインできなくなってることに気付いた。

pi@raspberrypi:/ $ sudo mysql -u root -p

mysql: error while loading shared libraries: /lib/arm-linux-gnueabihf/libreadline.so.5: invalid ELF header

このエラーは,対象のファイルがリンクされてないのが原因らしい。
再インストールしたら治るとか書いてあったが,治らなかった。
そこで,とりあえず,MySQLを再起動しようとしても,失敗する。

pi@raspberrypi:/var/log/mysql $ sudo service mysqld restart
Job for mariadb.service failed because the control process exited with error code.

See "systemctl status mariadb.service" and "journalctl -xe" for details.

で,ステータスをみてみると,


pi@raspberrypi:/var/log/mysql $ systemctl status mariadb.service
・・・(略)・・・
10月 22 00:01:17 raspberrypi systemd[1]: Starting MariaDB database server...
10月 22 00:01:18 raspberrypi systemd[1]: mariadb.service: Main process exited, code=exited, status=127/n/a
10月 22 00:01:18 raspberrypi systemd[1]: Failed to start MariaDB database server.
10月 22 00:01:18 raspberrypi systemd[1]: mariadb.service: Unit entered failed state.

10月 22 00:01:18 raspberrypi systemd[1]: mariadb.service: Failed with result 'exit-code'.

そもそもスタートしてないっぽい。
そこで,とりあえず,スタートさせようとしても,できない。

pi@raspberrypi:/var/log/mysql $ sudo service mysqld start
Job for mariadb.service failed because the control process exited with error code.

See "systemctl status mariadb.service" and "journalctl -xe" for details.

そこで,エラーの詳細を表示する。

pi@raspberrypi:/var/log/mysql $ journalctl -xe
10月 22 00:01:17 raspberrypi sudo[1249]: pam_unix(sudo:session): session opened for user root by pi(uid=0)
10月 22 00:01:17 raspberrypi systemd[1]: Starting MariaDB database server...
-- Subject: Unit mariadb.service has begun start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- Unit mariadb.service has begun starting up.
10月 22 00:01:18 raspberrypi mysqld[1356]: /usr/sbin/mysqld: error while loading shared libraries: /lib/arm-linux-gnueabihf/libaio.so.1: invalid ELF head
10月 22 00:01:18 raspberrypi systemd[1]: mariadb.service: Main process exited, code=exited, status=127/n/a
10月 22 00:01:18 raspberrypi systemd[1]: Failed to start MariaDB database server.
-- Subject: Unit mariadb.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- Unit mariadb.service has failed.
-- 
-- The result is failed.

ここでも,リンクに失敗しているらしい。
/usr/sbin/mysqld: error while loading shared libraries: /lib/arm-linux-gnueabihf/libaio.so.1: invalid ELF head」が,リンク失敗のところ。

解決法は,リンクを教えてやればいいとのこと。
以下のコマンドを実行し,.cfgファイルを編集する。

  • sudo vi /etc/ld.so.conf
以下の文を追記する。


/lib/arm-linux-gnueabihf


ld.so.confには,「include /etc/ld.so.conf.d/*.conf」が書かれている。
includeされるファイルの中に,同じ文が書かれているので,リンクされそうなものだが,されていないっぽい。

この後に,以下のコマンドを実行して,MySqlを実行する。

  • service mysql start
すると,問題なく,MySqlを開始することができた。
できなかった。エラーが出た。
そこで,Raspberry Pi自体を再起動したところ,
自動でmysqlがスタートされたらしく,
MySQLにrootでログインできた。

  • sudo reboot
    (再起動)
  • mysql -u root -p
    (rootでログイン)




[参考URL]







0 件のコメント:

コメントを投稿