(まだできてません)
[背景]
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;
(適用!)
- exit;
- 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
- 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
できなかった。エラーが出た。
そこで,Raspberry Pi自体を再起動したところ,
自動でmysqlがスタートされたらしく,
MySQLにrootでログインできた。
そこで,Raspberry Pi自体を再起動したところ,
自動でmysqlがスタートされたらしく,
MySQLにrootでログインできた。
- sudo reboot
(再起動) - mysql -u root -p
(rootでログイン)
[参考URL]
- Redmineインストールまで(基本ここを参照)
https://blog.smallserver.jp/raspberry-pi-3-%E3%81%AB-redmine-3-3-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/ - ↑のMySQLのインストールコマンドが通らなかったため参照
https://qiita.com/yusuke0511/items/d096865c3426d812ca19 - SQLのパスワード設定
(SSHでRaspiと繋いでインストールする場合,SQLのインストール中にrootのパスワード設定とか聞いてくれないので,自分で設定する必要あり)
https://blog.codecamp.jp/root-password - MySQLの起動/停止/再起動
https://qiita.com/macer_fkm/items/7013655da212b0efae6f - ファイルのリンク先を教える方法
http://jsapachehtml.hatenablog.com/entry/2015/01/09/210255