| blog.hoorago.com | HOORA© 2008-2010 All Rights Reserved. | Feb 06 . 2012 - Monday |
Hooraエンジニアリング部の平野です。
今回は、Hooraで使用しているサーバ環境の大部分をMac miniサーバに移すことになったので、その時の作業を書いていきます。
まずサーバの用途ですが、Hooraでは、メールやカレンダーなどは最高にクールなGoogle Appsを使用してるので、ほとんどの場合、
という4項目に集約されます。
これまでは、Slicehostの激安256MBスライス=月間2000円程度でVPSをレンタルしていました。
Slicehostは非常に使い勝手がよく、開発者としては1スライスくらい持っておいてもけして損はないと思われます。
しかし、さすがにメモリ256MBで上の4用途を全部こなすとなるとかなり重たいです。
特に、redmineはRuby on Rails製で、チーム3人で同時期にアクセスするとあっという間にメモリ使用量が100%に達して、ひどいフリーズ状態に陥っていました。
Railsは作るときは楽で楽しくてよいですが、運用面まで含めると少し大変です…
そこで、Slicehostで満足いくメモリ+ストレージを確保しようと思ったのですが、
がーん。
$130は、1万ウン千円で、これが12回で一年だといくら?と、両手の指を折りながら数えて足りないくらいコストがかかることがわかりました。
そこで、ついに、こんな出費をするくらいなら自前でサーバを作る!ということになり、晴れてMac miniをサーバ化して運用していくことになりました。
ちなみに、Hooraの考える、Mac miniのメリットは、
小さくてかわいい
ことに尽きますな。
さて、今回は、mac miniの開封から、各種のモジュールを取りそろえて、今まで稼働させてきたredmineをmac mini上へ移設するところまでの作業を長々と書いていきます。
redmineをレンタルサーバで使って苦労しているサーバ管理者のみなさまの役に立ちますように。
自宅にある古いIOデータのディスプレイにつないで、USBマウスとキーボードをさせば、電源オン!MobileMeなど、サーバ用途にそぐわないものは無視してさっくりと設定を終えます。
700MBほどダウンロード&インストール。20-30分待つ。
Mac miniをサーバとして使うことばかりを考えているhttp://www.macminiserver.com/ というありがたいサイトの中に、「どうやって設定すればおK?(原文英語)」という記事があります。
ここには、サーバとしてMac OSXを使うためのTipsがひとつの文書としてまとめられたPDFがあります。
まずは、これに従って、スクリーンセーバはオフであるとか、省電力もしないといった設定を行います。
画面共有(VNC)、SSH、FTPくらいはONにしておきました。
あと、ファイアーウォールの設定で、一番下の「特定のサービスおよびアプリケーションにアクセスを設定」を選択しておいてください。
Web(Apache2)は、MacPortsを使用することにしたいので、ここではOFFにしておいてください。
MacPortsというパッケージ管理システムを導入します。Debianのapt-get、Fedora・CentOSのyumのようなものです。
MacPortsのインストールには、XCodeが必須とのことなので、Mac miniの箱に同梱されていたインストールディスクCD2を取り出して、インストールしておきましょう。終われば、MacPortsのインストールです。(Leopard以前のOSの場合、X11環境を別にインストールする必要があるようです)
[注意]
インストールディスクからXCodeをインストールすると、3.0系が入る場合があります。その場合には、Apple Developer Connectionから、最新版である3.1系をインストールするようにしてください。
かまわずに作業を進めた僕は、あとで、portsを使ってtiffパッケージをビルドするときに、
On Mac OS X 10.5, tiff 3.8.2 requires Xcode 3.1 or later but you have Xcode 3.0.
と言われてしまい、非常に悲しい思いをしました。
Apacheは、デフォルトでもMacOSXにインストールされていますが、バージョンの変更などが容易である、最新のパッチが当たっている点などで、MacPorts版を利用することにしました。
DBMSには、redmineが公式に推奨するMySQLを使用しましょう。
また、MySQLをwebから管理するための定番ツール「phpMyAdmin」も入れておきます。
インストールには、さきほど入れたばかりのMacPortsを早速活用します(繰り返しになりますが、Xcodeは3.1.0以上であることを確認しておいてください)。
具体的な手順は、こちらのページを参照して、apache2, mysql5, php5, phpmyadminをインストールします。
## Apache2
% sudo port install apache2
% sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist## MySQL(Server)
% sudo port install mysql+server
% sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
% sudo -u mysql mysql_install_db5
% sudo chown -R mysql:mysql /opt/local/var/db/mysql5/
% sudo chown -R mysql:mysql /opt/local/var/run/mysql5/
% sudo chown -R mysql:mysql /opt/local/var/log/mysql5/
(デーモンを起動する)
% sudo /opt/local/bin/mysqld_safe5 &
(rootのパスワードを設定する)
% mysqladmin5 -u root -p password <new-password> Enter Password: <ENTER>## PHP5
% sudo port install php5 +apache2 +mysql5
(ApacheのPHPモジュールを有効にする)
% cd /opt/local/apache2/modules
% sudo /opt/local/apache2/bin/apxs -a -e -n “php5″ libphp5.so
(httpd.confにmod_php.confを含める)
% sudo nano /opt/local/apache2/conf/httpd.conf#
# Include PHP configurations
#
Include conf/extras-conf/mod_php.conf(PHP設定ファイルには、recommended版を使用する)
% cd /opt/local/etc
% sudo cp php.ini-recommended php.ini
(Apacheの再起動)
% sudo /opt/local/apache2/bin/apachectl -k restart## phpMyAdmin
% sudo port install phpmyadmin
(設定ファイルを用意してInclude)
![]()
redmineのバージョンは、2009年4月5日リリースしたての0.8.3を使用することにします。インストール先には、”/usr/local”ディレクトリを使用します。
また、redmine0.8.3を動かすためには、インストールマニュアルによると、ruby1.8.6または1.8.7、rails2.2.2が必要とのことです。
% which ruby
/usr/bin/ruby
% ruby –v
ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0]
% rails –v
Rails 1.2.6
% sudo gem install rails -v=2.2.2
(Railsのアップグレードを行う)
% rails –v
Rails 2.2.2
(Ruby MySQLバインディングを入れる)
% sudo gem install mysql — \
–with-mysql-dir=/opt/local/ \
–with-mysql-include=/opt/local/include/mysql5/ \
–with-mysql-lib=/opt/local/lib/mysql5/ \
–with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config
(RMagickを入れる : こちらを参照)
% sudo port install imagemagick +q8 +gs +wmf
(参照ページではtiffを含めていますが、すでにインストール済みなので省いた)
… ここで大量のパッケージがインストールされる。
% sudo gem install rmagick
% mysqldump –u <USER> –p <TABLENAME> > dump.sql
% tar czvf files.tar.gz /var/redmine/files/*.*
ようやく、Redmineのインストールを行える準備が整いました。
ここからは、Redmineそのものの設定、そして、Apache上でRoRアプリを快適に動かすためのモジュールpassengerの設定を行います。
まずは、Redmineのダウンロード、そして、展開。
% sudo port install wget
% cd ~/Download
% wget http://rubyforge.org/frs/download.php/54503/redmine-0.8.3.tar.gz
% tar xzvf redmine-0.8.3.tar.gz
% sudo mv redmine-0.8.3 /usr/local/
% sudo ln –s /usr/local/redmine-0.8.3 /usr/local/redmine
(パーミションの設定など)
% sudo chown -R redmine:redmine files log tmp public/plugin_assets
% sudo chmod -R 755 files log tmp public/plugin_assets
データベース設定をdatabase.ymlに書く。このとき、socketの設定も忘れずに書いておくこと!
production:
user: …
socket: /opt/local/var/run/mysql5/mysqld.sock
データのインポート
% tar xzvf files.tar.gz –C /usr/local/redmine/files
% mysql –u redmine –p redmine < original_redmine.sql
[4月13日追記]
0.8.3版ではデータベースのスキーマ定義に変更が加えられているため、このままインポートしただけでは、SVNリポジトリの閲覧など一部の機能がうまく動作しません。rakeで、dbの構成を最新にしておく必要があります。
% sudo rake db:migrate RAILS_ENV=”production”

Gmailからメールを送信するように設定
% nano config/email.conf
# Outgoing email settings
production:
delivery_method: :smtp
smtp_settings:
address: smtp.gmail.com
port: 587
domain: “hoorago.com”
authentication: :login
user_name: “redmine@hoorago.com”
password: “*******”(TLSに対応させる)
% sudo gem install tlsmail
% sudo nano config/environment.rb
# 末尾に、
require “tlsmail”
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
# を追加した
試しに起動する
% sudo ruby script/server webrick –e production
http://localhost:3000/ にアクセスして問題がなければ、passengerを導入する。
Passsenger
% gem –v
1.0.1
(gem本体のアップデートを行わないと、passengerのど導入ができない)
% sudo gem update –system
% sugo gem install passenger
(MacPorts版のApacheを環境変数で設定)
% export APXS2=/opt/local/apache2/bin/apxs
% export PATH=/opt/local/apache2/bin:$PATH
% sudo passenger-install-apache2-module
そして、httpd.confに、
LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-2.1.3/ext/apache2/mod_passenger.so
PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-2.1.3
PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
を加える。
さらに、VirtualHostのDocumentRootにredmineのpublicフォルダを指定して、Directoryへのアクセスを許可する設定ファイルを書いて、
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin admin@redmineexample.com
ServerName your.redmineexample.com
DocumentRoot /usr/local/redmine/public
<Directory “/usr/local/redmine/public”>
OPtions FollowSymLinks
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
という内容で、conf/extra/httpd-redmine.confとして、保存する。
最後に、もう一度、httpd.confを開いて、末尾に、
Include conf/extra/httpd-redmine.conf
を記述する。Apache2を再起動したら、完了です。
無事、動いています。
びっくりするくらいに、きびきびしています。redmineがこんなにできる子だとは知りませんでした!
興奮している場合ではない、チケット溜まってますよ! >自分
では、おつかれさまでした。
[...] 前のエントリで、Mac miniは場所もとらないし、かわいいすてきなやつだということを強調させていただきました。 [...]
Pingback by tomoya on April 27, 2009 at 11:59 pm