CentOS6 + Apache2.4 + Redmine3を構築した時のメモ
以下の環境でRedmineを立てた時の手順を記します。
CentOS 6.6(64bit) Apache 2.4.6 Ruby 2.2.2p95 Rails 4.2.3 MariaDB 10.1 Redmine 3.0.4
Apache
インストール
centos6系はyumでインストールするとApache2.2.15になるので、2.4系を入れるためにリポジトリを追加。
# cd /etc/yum.repos.d/ # wget http://repos.fedorapeople.org/repos/jkaluza/httpd24/epel-httpd24.repo # yum install httpd24.x86_64 httpd24-httpd-devel.x86_64 httpd24-mod_ssl.x86_64 httpd24-apr-devel.x86_64 httpd24-apr-util-devel.x86_64 # /opt/rh/httpd24/root/usr/sbin/httpd -version Server version: Apache/2.4.6 (Red Hat) Server built: Sep 25 2013 05:25:46
自動起動をON
# chkconfig httpd24-httpd on # chkconfig --list |grep httpd httpd24-httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Apache2.4系はデフォルトのインストール先が/opt/rh/httpd24/root/~になるようです。 コマンドで打つ時にパスが長くなるので、シンボリックリンクを貼りました。
# ln -s /opt/rh/httpd24/root/etc/httpd /etc/ # ln -s /opt/rh/httpd24/root/var/www /var
その他モジュールをインストール
# yum -y \ gcc \ gcc-c++ \ libtool \ gcc-c++ \ net-snmp \ net-snmp-utils \ ntp \ make \ ImageMagick \ libjpeg-devel \ libpng-devel \ curl-devel \ freetype-devel \ libtool-ltdl-devel \ zlib-devel \ patch \ nkf \ telnet \ zip \ openssl-devel \ readline-devel \ curl-devel \ libyaml-devel \ libffi-devel
ImageMagic関係もインストール
# yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts
nokogiriでパース処理に必要なので以下もインストール
# yum -y install libxml2-devel libxslt-devel
httpd.confに以下のVirtualHostの設定をしました。
<VirtualHost 10.2.200.16:80> ServerName example.com DocumentRoot /var/lib/redmine/public SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)|(js)|(woff)$" no_log CustomLog "| /opt/rh/httpd24/root/usr/sbin/rotatelogs /var/log/httpd/customlog/access_log.%Y%m%d 86400 540" combined env=!no_log </VirtualHost
MariaDB
CentOS7からはMySQLの代わりにMariaDBが標準になったりredmineの3系インストール手順で使われていたりと、最近はMariaDBを使う傾向があるみたいなので使ってみました。
インストール
PGP keyをインストール。
# rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
リポジトリを追加
# vi /etc/yum.repos.d/mariadb.repo [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1.0/centos6-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 enabled=1
mysql関係のライブラリが入っていると干渉してインストールに失敗することがあるそうなので削除してからインストール。
# yum remove mysql-libs # yum -y install MariaDB-devel MariaDB-client MariaDB-server
chown: cannot access `/var/lib/mysql': No such file or directory
というメッセージが出ましたが、そのまま進みます。
起動
# /etc/init.d/mysql start Starting MySQL. SUCCESS!
初期設定
# /usr/bin/mysql_secure_installation Set root password? [Y/n] Y Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
ログイン確認
# mysql -u root -p xxx Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 8 Server version: 10.1.0-MariaDB MariaDB Server Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
起動設定とログディレクトリ作成
# vi /etc/my.cnf.d/server.cnf [mysqld] character-set-server=utf8 general_log=ON general_log_file=/var/log/mariadb/query.log log-bin=mysql-bin # mkdir /var/log/mariadb # chown -R mysql:mysql /var/log/mariadb
Redmine用データベース作成
db_redmine という名前のデータベースを作ります。 ID/PW=user_redmine / redmine
mysql -uroot -p > CREATE DATABASE db_redmine DEFAULT CHARACTER SET utf8; > GRANT ALL ON db_redmine.* TO user_redmine@localhost IDENTIFIED BY 'redmine'; > FLUSH PRIVILEGES; > EXIT;
git, rbenv, rubyのインストール
git
# yum install git
rbenv
# cd /usr/local # git clone https://github.com/sstephenson/rbenv.git # git clone https://github.com/sstephenson/ruby-build.git ./rbenv/plugins/ruby-build どのログインユーザでもrubyが使えるよう、(ログイン時に読みこせるために)/etc/profileに下記内容でシェルを作っておきます。 # vi /etc/profile.d/rbenv.sh export RBENV_ROOT="/usr/local/rbenv" export PATH="${RBENV_ROOT}/bin:${PATH}" eval "$(rbenv init --no-rehash -)"
ruby
# rbenv install 2.2.2 # rbenv global 2.2.2 # gem install bundler --no-ri --no-rdoc
Redmineのインストール
redmineのソース取得
# cd /root/install # curl -O http://www.redmine.org/releases/redmine-3.0.4.tar.gz # tar xzvf redmine-3.0.4 # mv redmine-3.0.4 /var/lib/redmine
DBの接続設定
# cp -p /var/lib/redmine/config/database.yml.example /var/lib/redmine/config/database.yml # vi /var/lib/redmine/config/database.yml production: adapter: mysql2 database: db_redmine host: localhost username: user_redmine password: redmine encoding: utf8
メールとImagemagicの設定
# cp -p /var/lib/redmine/config/configuration.yml.example /var/lib/redmine/config/configuration.yml # vi /var/lib/redmine/config/configuration.yml production: email_delivery: delivery_method: :smtp smtp_settings: address: "localhost" port: 25 domain: "example.com" rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf
gemインストール
# cd /var/lib/redmine/ # bundle install --without development test --path vendor/bundle
途中でこういうエラーが出た場合、表示される手順の通りbundel installします。
An error occurred while installing nokogiri (1.6.6.2), and Bundler cannot continue. ====================================================== gem install nokogiri -- --use-system-libraries [--with-xml2-config=/path/to/xml2-config] [--with-xslt-config=/path/to/xslt-config] If you are using Bundler, tell it to use the option: bundle config build.nokogiri --use-system-libraries bundle install ======================================================
# bundle config build.nokogiri --use-system-libraries # bundle install --without development test --path vendor/bundle
終わった後のgem listは以下のような感じになりました。
# cd /var/lib/redmine # bundle exec gem list *** LOCAL GEMS *** actionmailer (4.2.3) actionpack (4.2.3) actionpack-action_caching (1.1.1) actionpack-xml_parser (1.0.2) actionview (4.2.3) activejob (4.2.3) activemodel (4.2.3) activerecord (4.2.3) activesupport (4.2.3) arel (6.0.1) builder (3.2.2) bundler (1.10.5) coderay (1.1.0) erubis (2.7.0) globalid (0.3.5) i18n (0.7.0) jquery-rails (3.1.3) json (1.8.3) loofah (2.0.2) mail (2.6.3) mime-types (2.6.1) mini_portile (0.6.2) minitest (5.7.0) mysql2 (0.3.18) net-ldap (0.3.1) nokogiri (1.6.6.2) protected_attributes (1.1.0) rack (1.6.4) rack-openid (1.4.2) rack-test (0.6.3) rails (4.2.3) rails-deprecated_sanitizer (1.0.3) rails-dom-testing (1.0.6) rails-html-sanitizer (1.0.2) railties (4.2.3) rake (10.4.2) rbpdf (1.18.6) redcarpet (3.1.2) request_store (1.0.5) rmagick (2.13.4) ruby-openid (2.3.0) sprockets (3.2.0) sprockets-rails (2.3.2) thor (0.19.1) thread_safe (0.3.5) tzinfo (1.2.2)
Redmineセキュリティートークンの生成とマイグレーションの実行、Redmine初期データの投入。
# bundle exec rake generate_secret_token # RAILS_ENV=production bundle exec rake db:migrate # RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
Redmine用ユーザの作成
redmine用のユーザ「redmine」を作成し、ソースの権限を変更します。
# useradd redmine # passwd redmine # chown -R redmine:redmine /var/lib/redmine/
Passengerのインストール
※ここはかなりはまって、結局素直にインストール完了できなかったのでモンキーパッチ的な対応を取ることになりました。 CentOS6ではApache2.2系にしか対応してないとかあるのかな。。
# gem install passenger --no-rdoc --no-ri # export HTTPD="/opt/rh/httpd24/root/usr/sbin/httpd" # export APXS2="/opt/rh/httpd24/root/usr/bin/apxs # export APR_CONFIG="/opt/rh/httpd24/root/usr/bin/apr-1-config" # export APU_CONFIG="/opt/rh/httpd24/root/usr/bin/apu-1-config" # passenger-install-apache2-module
すると、下記のようなエラーがでます。
cannot open /httpd/build/config_vars.mk: No such file or directory at /opt/rh/httpd24/root/usr/bin/apxs
ここを参考に、直接 $installbuilddir を指定することにします。 serverfault.com
- get_config_vars("$installbuilddir/config_vars.mk",\%config_vars); + get_config_vars("/opt/rh/httpd24/root/usr/lib64/httpd/build/config_vars.mk",\%config_vars);
改めて# passenger-install-apache2-module
を実行し、最後に表示される以下のスクリプトを控え、Apacheから読み込ませます。
Apahceのhttpd.confに Include *.confとか書いてあれば、confファイルは自動で読み込まれるので、passenger.confを作ります。
# vi /opt/rh/httpd24/root/etc/httpd/conf.d/passenger.conf LoadModule passenger_module /usr/local/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/passenger-5.0.13/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/local/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/passenger-5.0.13 PassengerDefaultRuby /usr/local/rbenv/versions/2.2.2/bin/ruby </IfModule>
apacheを再起動します。
# service httpd24-httpd start
DocumentRootのパスにブラウザでアクセスし、Redmineの画面が表示されたら完了です。
感想
CentOS6に、無理にApache2.4系を入れたのはいいのか疑問(今のところ普通に動いてます)。
参考: