環境
- CentOS-7-x86_64-Minimal (GUIなし)
- bitnami-redmine-3.2.0-2-linux-x64
現象
インストール成功…と思ったら、Redmineが起動してくれませんでした。。。
インストール手順
bitnami-redmineのインストーラを実行し、インストールプロセスを進めていく。
# cd
# chmod +x bitnami-redmine-3.2.0-2-linux-x64-installer.run
# ./bitnami-redmine-3.2.0-2-linux-x64-installer.run
(略)
エラー: 実行中にエラーが起きました /opt/redmine-3.2.0-2/mysql/scripts/myscript.sh
/opt/redmine-3.2.0-2/mysql **** :
/opt/redmine-3.2.0-2/mysql/scripts/myscript.sh: scripts/mysql_install_db:
/usr/bin/perl: 誤ったインタプリタです: そのようなファイルやディレクトリはありません
(略)
----------------------------------------------------------------------------
セットアップウィザードによる Bitnami Redmine Stack のインストールが完了しました。
(略)
情報: Bitnami Redmine Stack については、ブラウザで
http://127.0.0.1:80 にアクセスしてください。
なんかmysqlセットアップでエラーが発生したっぽい。が、インストールは進行していく。この後、ブラウザからRedmineにアクセスしたところ(http://server-ip/redmine
)、404エラー。apacheは立ち上がっているが、Redmineが稼働していない。。。
解決方法
インストールは不完全ながらも、/opt/redmine-3.2.0-2/
以下にモジュール(ruby, mysqlなど)はコピーされていた。この中にperlもあったので、これを/tmp
にコピーして/usr/bin/perl
のシンボリックリンクを貼り、bitnami-redmineのアンインストーラ実行後、再度インストールした。
# cd /tmp
# cp -r /opt/redmine-3.2.0-2/perl ./
# ln -s /tmp/perl/bin/perl /usr/bin/perl
# /opt/redmine-3.2.0-2/uninstall
# cd
# ./bitnami-redmine-3.2.0-2-linux-x64-installer.run
これでインストールはエラーなしで成功し、Redmineも無事に起動した。あとは不要になったファイル/リンクを削除。
# unlink /usr/bin/perl
# rm -rf /tmp/perl
解説
今回発生した問題は、恐らく下記の通り。
- mysqlのセットアップにperlが必要
- Bitnami Redmine にはmysqlセットアップの為(多分)のperlが同梱されているが、インストールプロセスでは当該perlではなく
/usr/bin/perl
を見に行ってしまう - CentOS7 Minimal にはperlが入っておらず、mysqlセットアップに失敗。
そこで、ちょっと強引にBitnami Redmine同梱のperlを取り出し、インストーラに/usr/bin/perl
と認識させてmysqlのセットアップをさせました。あまりスマートなやり方とは言えませんが。。。
さらにエラー解析
最初にインストーラを実行した際に表示されたエラーメッセージを見なおしてみると、/opt/redmine-3.2.0-2/mysql/scripts/myscript.sh
実行時にエラーが発生していることが分かります。
エラー: 実行中にエラーが起きました /opt/redmine-3.2.0-2/mysql/scripts/myscript.sh
/opt/redmine-3.2.0-2/mysql **** :
/opt/redmine-3.2.0-2/mysql/scripts/myscript.sh: scripts/mysql_install_db:
/usr/bin/perl: 誤ったインタプリタです: そのようなファイルやディレクトリはありません
このmyscript.sh
から、同じディレクトリにあるmysql_install_db
を呼び出しています。こいつの実態はperlスクリプトなのですが、中身を見てみると…
#!/usr/bin/perl
そりゃ失敗するだろ。。。perl同梱するなら、この辺もちゃんとやっといて欲しい。。。
追記
MySQL5.6より、mysql_install_dbがシェルスクリプト→Perlスクリプトになったようです
MySQL 5.6.8 では、mysql_install_db は Perl スクリプトで、Perl がインストールされた任意のシステムで使用できます。5.6.8 より前ではシェルスクリプトで、Unix プラットフォームでのみ使用可能です。
この変更にBitnamiが対処しきれてなかったのかな?
Bitnami側でも既知の問題だと認識しているようです
Mysql error when installing Lamp 5.6.18-0 on Centos 7
That is a known issue on Centos 7. Were you be able to install it after running sudo yum install perl-data-dumper ?
ということで、正しい対処法はBitnami Redmineインストール前にperl-data-dumperをインストールする、という事のようです。。。