Serversman@VPS #04 [Redmineを導入する]

ブログでやったことの記録をとっておくのって大事。 見直せるし、確認できるからねー。

ってことでRedmineの導入です。

こちらのサイトを参考に:Redmine 1.2をCentOS5.6にインストール まずは環境の確認。

Redmine Redmine 1.2
OS CentOS 5.6
データベース MySQL
webサーバ Apache (Railsの実行にはPassengerを使用)
Ruby Ruby Enterprise Edition(Passengerとの組み合わせでメモリを効率よく利用できるよう変更が加えられたRubyインタプリタ)
Ruby Gems 1.5.2(REEに同梱のもの)
Ruby on Rails 2.3.11

SELinuxを無効にする

実はServersman@VPSはそもそも無効になっている。ので、これは設定する必要がありませんですた・ω・らっきー 一応設定方法を

# vi /etc/sysconfig/selinux
#SELINUX=enforcing  ←この部分を変更する SELINUX=disabled

これでいけるみたい。へー・・・

iptablesでHTTPを許可

iptablesの設定を確認する # /sbin/iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination

Chain FORWARD (policy ACCEPT) target prot opt source destination

Chain OUTPUT (policy ACCEPT) target prot opt source destination

Serversman@VPSのデフォルトではすべての入出力のパケットが許可されているみたい。 このままではちょっとあぶないんで設定をしまする。 iptablesファイルは存在しないので新規作成になります。

# vi /etc/sysconfig/iptables
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3843 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT

/etc/init.d/iptables restart   ←再起動

参考にしていただいて、こちらをコピペする場合は"-"の部分が全角になったりとへんなことになってエラーが出る場合があるので注意です。 通常

21:FTP 22:SSH 53:DNS 80:HTTP 443:SSL

です。が、Serversman@VPSSSHの初期ポートは、申し込み時に記載されているポート番号になります。 通常は3843になってたはず。変更した場合はそちらのポート番号に。 これをまちがえてそのまま22番で設定するとログインできなくなります。注意してください。 再起動後にそのウィンドウはログインした状態で、別ウィンドウからログインを試みて、ちゃんとログインできることを確認の上、ログアウトすることをおすすめします。

これで準備おっけーb

必要なパッケージのインストール

# yum groupinstall "Development Tools"

yum install openssl-devel readline-devel zlib-devel curl-devel

yum install mysql-server mysql-devel

yum install httpd httpd-devel

これはもう書かれてる通り順番に入れました。 Development Toolsは使わないパッケージも含まれてます。が、めんどうなのでまるまるインストールしますた・ω・ 解説ページがあるって楽ちんw

Rubyのインストール

こちらも案内のホームページに従って、オリジナルのRubyではなくPassengerの開発元であるPhusionが開発しているRuby Enterprise Editionをインストールすることにしました。 注意してもらいたいのは、Redmineは必要なパッケージのバージョンを間違えると動かないということです。 新しいやつだからいけるだろーとか思ったら大間違い、エラーでまくりんぐです;; 一度これでかなり時間をとられてしまって大変でした。

Ruby Enterprise Editionのダウンロード

http://www.rubyenterpriseedition.com/download.html ここからダウンロードします。

# cd /usr/local/src

wget http://rubyenterpriseedition.googlecode.com/files/ruby-enterprise-1.8.7-2011.03.tar.gz

tar xzvf ruby-enterprise-1.8.7-2011.03.tar.gz

cd ruby-enterprise-1.8.7-2011.03

./installer --dont-install-useful-gems --no-dev-docs

Welcome to the Ruby Enterprise Edition installer This installer will help you install Ruby Enterprise Edition 1.8.7-2011.03. Don't worry, none of your system files will be touched if you don't want them to, so there is no risk that things will screw up.You can expect this from the installation process:

  1. Ruby Enterprise Edition will be compiled and optimized for speed for this system.
  2. Ruby on Rails will be installed for Ruby Enterprise Edition.
  3. You will learn how to tell Phusion Passenger to use Ruby Enterprise Edition instead of regular Ruby.

Press Enter to continue, or Ctrl-C to abort.

Checking for required software...

  • C compiler... found at /usr/bin/gcc
  • C++ compiler... found at /usr/bin/g++
  • The 'make' tool... found at /usr/bin/make
  • The 'patch' tool... found at /usr/bin/patch
  • Zlib development headers... found
  • OpenSSL development headers... found
    • GNU Readline development headers... found

Target directory

Where would you like to install Ruby Enterprise Edition to? (All Ruby Enterprise Edition files will be put inside that directory.)

[/opt/ruby-enterprise-1.8.7-2011.03] : /usr/local/

Compiling and optimizing the memory allocator for Ruby Enterprise Edition In the mean time, feel free to grab a cup of coffee. ・ ・

Ruby Enterprise Edition is successfully installed! If want to use Phusion Passenger (http://www.modrails.com) in combination with Ruby Enterprise Edition, then you must reinstall Phusion Passenger against Ruby Enterprise Edition, as follows:

/usr/local/bin/passenger-install-apache2-module

Make sure you don't forget to paste the Apache configuration directives that the installer gives you.

If you ever want to uninstall Ruby Enterprise Edition, simply remove this directory:

/usr/local

If you have any questions, feel free to visit our website:

http://www.rubyenterpriseedition.com

Enjoy Ruby Enterprise Edition, a product of Phusion (www.phusion.nl) :-)

こんな感じにインストール完了です。赤字部分は自分で入力する箇所です。 デフォルトでは/opt/ruby-enterprise-1.8.7-2011.03/などにインストールされるんですが、オリジナルのRuby/usr/local/になるそうなので、ここに。

gemパッケージのインストール

これも手順通りでいけました。 ここでも注意すべきは、バージョンの指定。これを別バージョンにすると、エラーが出てインストールできなくなってしまいます。

# gem install rack -v=1.1.1 --no-rdoc --no-ri

gem install rake -v=0.8.7 --no-rdoc --no-ri

gem install i18n -v=0.4.2 --no-rdoc --no-ri

gem install mysql --no-rdoc --no-ri

オプションはお好きに。 エラーが出る場合はバージョンの確認等を行ってください。また、MySQLを手動で最新バージョンをインストールしていた場合もエラーがでることがあるみたいです。

MySQLの設定

デフォルトのキャラクタセットをutf8に変更。

# vi /etc/my.conf
datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql

Default to using old password format for compatibility with mysql 3.x

clients (those using the mysqlclient10 compatibility package).

old_passwords=1 default-character-set=utf8

Disabling symbolic-links is recommended to prevent assorted security risks;

to do so, uncomment this line:

symbolic-links=0

[mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid

[mysql] default-character-set=utf8

/etc/init.d/mysqld start

/sbin/chkconfig mysqld on

赤字が追記部分です。MySQLにログインして確認(と、rootパスワードとか設定してない場合は設定も)

$ mysql -uroot   ログイン Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 2 Server version: 5.0.77 Source distribution

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> show variables like 'character_set%';   ←キャラクタセットの確認 +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ mysql> use mysql; mysql> update user set password=password(new_password') where user = 'root'; ←rootのパスワード設定 mysql> delete from user where user = '';  ←匿名ユーザーの削除 mysql> exit;

これで設定は完了 redmine用にデータベースとユーザーを作成

mysql -uroot -p  ←パスワードを使ってログイン

Enter password:  ←パスワード入力 mysql> create database db_redmine default character set utf8;  redmine用データベース作成 mysql> grant all on db_redmine.* to user_redmine identified by 'password';  redmine用ユーザー作成 mysql> flush privileges; mysql> exit;

これで準備完了Σ・ω・ やっと・・・!

Redmineのインストール

やっとたどり着いたw

こっからダウンロードしまする。 http://rubyforge.org/frs/?group_id=1850 バージョンはRedmine1.2.0

# cd /usr/local/src

wget http://rubyforge.org/frs/download.php/74944/redmine-1.2.0.tar.gz

tar zxvf redmine-1.2.0.tar.gz

mv redmine-1.2.0 /var/lib/redmine

次にデータベースの設定をします。

# cd /var/lib/redmine/config

cp database.yml.example database.yml

vi database.yml

# MySQL (default setup).

production: adapter: mysql database: db_redmine host: localhost username: user_redmine password: password encoding: utf8

development: adapter: mysql database: redmine_development host: localhost username: root password: encoding: utf8

Warning: The database defined as "test" will be erased and

re-generated from your development database when you run "rake".

Do not set this db to the same as development or production.

test: adapter: mysql database: redmine_test host: localhost username: root password: encoding: utf8

test_pgsql: adapter: postgresql database: redmine_test host: localhost username: postgres password: "postgres"

test_sqlite3: adapter: sqlite3 database: db/test.sqlite3

赤字部分をさっきつくったデータベースとユーザー、パスワードに変更します。

次にconfiguration.ymlの設定

# cp configuration.yml.example configuration.yml

vi configuration.yml

# ==== Simple SMTP server at localhost

  追記するか、コメントアウトを外せばおkです

production: email_delivery: delivery_method: :smtp smtp_settings: address: "localhost" port: 25 domain: 'どめいん.com'

赤字は自分んおドメインを設定

初期設定とデータベースのテーブル作成

# rake generate_session_store

rake db:migrate RAILS_ENV=production

PassengerとApache用モジュールのインストール

# gem install passenger --no-rdoc --no-ri

passenger-install-apache2-module
The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:

LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7 PassengerRuby /usr/local/bin/ruby

After you restart Apache, you are ready to deploy any number of Ruby on Rails applications on Apache, without any further Ruby on Rails-specific configuration!

こんな感じ。

Apacheを設定しろって言われているので設定します。

<

fieldset class="enna"># vi /etc/sysconfig/httpd

HTTPD=/usr/sbin/httpd.worker  コメントアウトされている部分をはずす
# vi /etc/httpd/conf.d/passnger.conf
# Passengerの基本設定。

passenger-install-apache2-module --snippet を実行して表示される設定を使用。

環境によって設定値が異なりますので以下の3行はそのまま転記しないでください。

# LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7 PassengerRuby /usr/local/bin/ruby

Passengerが追加するHTTPヘッダを削除するための設定。

# Header always unset "X-Powered-By" Header always unset "X-Rack-Cache" Header always unset "X-Content-Digest" Header always unset "X-Runtime"

必要に応じてPassengerのチューニングのための設定を追加。

# PassengerMaxPoolSize 20 PassengerMaxInstancesPerApp 4 PassengerPoolIdleTime 3600 PassengerUseGlobalQueue on PassengerHighPerformance on PassengerStatThrottleRate 10 RailsSpawnMethod smart RailsAppSpawnerIdleTime 86400 RailsFrameworkSpawnerIdleTime 0

# /etc/init.d/httpd start  起動(再起動)

chkconfig httpd on

このあたりはコピペさせてもらいますた。 以前は/etc/httpd/conf/httpd.confに直接書き込んでましたが、別ファイルにまとめた方がいいみたい。 たしかに。

# chown -R apache:apache /var/lib/redmine

ln -s /var/lib/redmine/public /var/www/html/redmine

あとはオーナー設定と、接続する為にリンクを設定してあげればおkです。

あー・・・疲れた。

※ご意見・ご指摘・つっこみどころなどがあれば遠慮なくコメントください。