● スプレッドIT!

ALMinium://正常にインストールができない問題を解決してみた!

以前の記事『ALMinium://Gitが管理できるオープンソースWEBアプリ「ALMinium」をインストールしてみた』で、怪しいエラーをいっぱい吐き出し、Apacheまで起動しなくなるという、決してオフィシャルの言う「簡単にインストールできる」わけでは無い事が多い、Linux関連のアプリケーションの憂鬱。

サーバー管理者にしか分からない苦悩がここにあるのですが、それが楽しめるのが真のサーバー職人なのかも知れません。

まずは、前回のインストール方法のおさらいからしてみましょう。

# yum install git
もしくは
# apt-get install git

# git clone https://github.com/alminium/alminium.git
# cd alminium
# bash ./smelt

※ちなみに作業は、/usr/local/src/ 内で行ってます。

で簡単にインストールできますよーというのが、オフィシャルの言い分。
実際にやってみた結果のログが下記のとおりです。

ちなみに試した環境はCentOS 6.2 64bit版です。
間違い無く要件は満たしております。

とりあえず、怪しいログを追っていってみましょうか。

Synchronizing submodule url for 'theme/gitmike'
Synchronizing submodule url for 'theme/railsgun'
which: no rake2.0 in (/usr/lib/courier-imap/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin)
Starting mysqld: [ OK ]
★★★怪しい★★★ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
/usr/local/src/alminium /usr/local/src/alminium
*** execute bundle ***
★★★怪しい★★★./smelt: line 271: bundle: command not found
★★★怪しい★★★./smelt: line 273: bundle: command not found
★★★怪しい★★★./smelt: line 274: bundle: command not found
★★★怪しい★★★./smelt: line 275: bundle: command not found
/usr/local/src/alminium
HEAD is now at 00a8494... Changes version to 0.2.1.t4. fixes #34
Already on 'master'
Your branch is up-to-date with 'origin/master'.
Already on 'master'
Your branch is up-to-date with 'origin/master'.
Already on 'backlogs-support'
Your branch is up-to-date with 'origin/backlogs-support'.
error: pathspec 'master' did not match any file(s) known to git.
Already on 'alm'
Your branch is up-to-date with 'origin/alm'.
Already on 'master'
Your branch is up-to-date with 'origin/master'.
Already on 'master'
Your branch is up-to-date with 'origin/master'.
Already on 'master'
Your branch is up-to-date with 'origin/master'.
Already on 'develop'
Your branch is up-to-date with 'origin/develop'.
Already on 'master'
Your branch is up-to-date with 'origin/master'.
Already on 'master'
Your branch is up-to-date with 'origin/master'.
/usr/local/src/alminium /usr/local/src/alminium
★★★怪しい★★★inst-script/redmine-plugins: line 86: bundle: command not found
★★★怪しい★★★inst-script/redmine-plugins: line 88: bundle: command not found
★★★怪しい★★★inst-script/redmine-plugins: line 89: bundle: command not found
★★★怪しい★★★inst-script/redmine-plugins: line 90: bundle: command not found
★★★怪しい★★★inst-script/redmine-plugins: line 91: bundle: command not found
★★★怪しい★★★inst-script/redmine-plugins: line 92: bundle: command not found
★★★怪しい★★★inst-script/redmine-plugins: line 93: bundle: command not found
★★★怪しい★★★inst-script/redmine-plugins: line 95: bundle: command not found
★★★怪しい★★★cp: cannot create directory `public/plugin_assets/open_flash_chart':
No such file or directory
/usr/local/src/alminium
*** run initialize SQL ***
★★★怪しい★★★ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
★★★怪しい★★★inst-script/rhel6/post-install: line 11: passenger-config: command not found
Stopping httpd: [ OK ]
★★★怪しい★★★Starting httpd: httpd: Syntax error on line 221 of /etc/httpd/conf/httpd.conf:
Syntax error on line 1 of /etc/httpd/conf.d/redmine.conf:
Cannot load /usr/lib64/ruby/gems/2.1.0/gems/passenger-/buildout/apache2/mod_passenger.so into server:
/usr/lib64/ruby/gems/2.1.0/gems/passenger-/buildout/apache2/mod_passenger.so:
cannot open shared object file: No such file or directory [FAILED]


最初のエラーですが、

Starting mysqld: [ OK ]
★★★怪しい★★★ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

これは、熟練のサーバー管理者であれば原因は一目瞭然ですねー。
MySQLサーバーにrootユーザーでログインしようとしたけどパスワードが間違っててログインできませんでしたというエラーです。

まあ、普通に考えたらrootユーザーのパスワードを空にしてあるわけが無いのですが、
ALMiniumはまっさらな状態のOSを想定しているのでしょうか。

とりあえず、rootユーザーのパスワードを削除して空にしましょう。

# mysql -u root -p
mysql> SET PASSWORD FOR root@localhost=PASSWORD('');
mysql> exit

とかで、消せるはず。
phpMyAdminでもいけるかな。

rootのパスワードを忘れちゃった場合は、

# /etc/init.d/mysqld stop
# mysqld_safe --skip-grant-tables &
# mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("新しいパスワード") where User='root';
mysql> flush privileges;
mysql> quit
# /etc/init.d/mysqld stop
# /etc/init.d/mysqld start

でいけると思う。

次に

★★★怪しい★★★./smelt: line 271: bundle: command not found
★★★怪しい★★★./smelt: line 273: bundle: command not found
★★★怪しい★★★./smelt: line 274: bundle: command not found
★★★怪しい★★★./smelt: line 275: bundle: command not found
:
★★★怪しい★★★inst-script/rhel6/post-install: line 11: passenger-config: command not found

を見る限り、bundleとpassenger-configってコマンドが無いと言ってらっしゃる。
ALMiniumのインストーラーでその辺も配慮してもいいんじゃないのかなー?

とりあえず、下記でインストール。

# gem install bundler --no-rdoc --no-ri
# gem install passenger
# passenger-install-apache2-module

あと、これは過去のRedmineをインストールしたときの教訓で、Rubyで動くシステムはrubyやrake、railsなんかのバージョンの組み合わせが合ってないと動いてくれない。
案の定、rakeのバージョンが異なっており、うまく動かなったので、バージョンを指定して再インストールしてみる。

# vi /opt/alminium/Gemfile

で見てみると

gem “rails”, “3.2.19”
gem “rake”, “~> 10.1.1”
gem “jquery-rails”, “~> 2.0.2”
gem “coderay”, “~> 1.1.0”
gem “fastercsv”, “~> 1.5.0”, :platforms => [:mri_18, :mingw_18, :jruby]
gem “builder”, “3.0.0”
gem “mime-types”
gem “awesome_nested_set”, “2.1.6”

となっている。

# gem update
# gem uninstall rake
# gem install rake --version 10.1.1 
# bundle update rake

これで、

# export USER=root
# ./smelt

でインストールは成功し、Apacheも正常に再起動できるはずです。
まだ、Apacheの起動でこける場合は、/etc/gttpd/conf.d/redmine.conf を見てみてください。

うちの環境だと、AliasとDirectoryディレクティブが、VirtualHostディレクティブの外側に書かれているためエラーになってました。

VirtualHostの内側に全部移動して、Apacheを起動したら起動できました。

また、下記の記述もVirtualHostディレクティブに不足しているため、ブラウザでアクセスしても表示されませんでした。

httpd.conf側に書かれていれば良いんでしょうけど、最近はデフォルトで書かれて無いんですよね。

<Directory /opt/alminium/public/>
Order allow,deny
Allow from all
</Directory>

あとは、Redmineの設定ファイルも書き換える必要がありました。
ALMiniumかなりいい加減だなー。

・ALMiniumからのメール送信設定→とりあえずsendmailで
# vi /opt/alminium/config/configuration.yml 
:
default:
  # Outgoing emails configuration (see examples above)
  email_delivery:
     delivery_method: :sendmail

MySQLのrootパスワードは必ず設定しなおしておきましょう。
これで、自社のGitサーバーを使ってソース管理とプロジェクト管理ができるようになりました!

ALMinium-Settings
このエントリーをはてなブックマークに追加