試しにMySQL Community Server 8をインストールした環境に
Redmineをインストールしてみましたが、
躓いたのは凡ミスばかりで
MySQL8固有の問題は発生しませんでした。
ほとんどRedmine.JPに記載のPostgreSQL用の手順通りやれば大丈夫そうでした。
##環境
VirtualBox5.2.8OS
CentOS Linux release 7.4.1708 (Core)
3.10.0-693.el7.x86_64
WEB
httpd-2.4.6-67.el7.centos.6.x86_64
DB
mysql-community-server-8.0.11-1.el7.x86_64
Ruby
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
参考URL
Redmine 3.4をCentOS 7.3にインストールする手順
Redmine インストールでつまづいた点メモ
bundle installでmysql2をインストールしようとしてエラー
$ bundle install
An error occurred while installing mysql2 (0.4.10), and Bundler cannot
continue.
Make sure thatgem install mysql2 -v '0.4.10'
succeeds before bundling.
★この後のエラーメッセージはメモ忘れ。。
エラーメッセージに従い、mkmf.logを確認すると以下の出力
/usr/bin/ld: -lmysqlclient が見つかりません
collect2: エラー: ld はステータス 1 で終了しました
ldコマンド実行時、mysqlclientが見つからないというエラーだった。
しかし、mysql-community-clientはインストール済み
mysql-community-develを追加でインストールすると正常にgem install できた。
rpm -qlの結果から、以下のあたりが足りなかった?
/usr/lib64/mysql/libmysqlclient.a
/usr/lib64/mysql/libmysqlclient.so
/usr/lib64/mysql/libmysqlservices.a
redmineにアクセスすると Permission denied
Apache のエラーログには以下の出力
Message: Cannot stat '/root/software/redmine-3.4.5/config.ru': Permission denied (errno=13)
Backtrace:
in 'void Passenger::Apache2Module::DirectoryMapper::autoDetect()' (DirectoryMapper.h:148)
in 'bool Passenger::Apache2Module::Hooks::prepareRequest(request_rec*, Passenger::Apache2Module::DirConfig*, const char*, bool)' (Hooks.cpp:444)
恥ずかしながら、Redmineを/root配下に配置しており
/var/www/html/redmineをシンボリックリンクとして設定していた。
Options FollowSymLinksは設定済みだった。
/etc/httpd/conf.d/redmine.confの抜粋
<Directory "/var/www/html/redmine">
Require all granted
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
どうやらフルパス全てのディレクトリに対してapacheユーザのアクセス権がないと
このエラーが出力される様子。
/rootの所有者をいじるのは抵抗があったため
別なディレクトリにredmineディレクトリを丸ごとコピーして
apacheユーザのアクセス権を付与して解決した。