Snow LeopardにRedmineを導入まとめ
前回、前々回では非常に手こずりながらSnow LeopardにRedmineを導入しました。
と、トライアンドエラーの大量の文章を見ても気が滅入るだけなので、今回はSnow LeopardにRedmineを導入するまでの手順をまとめてみようと思います。
XCodeのインストール
必須…なのかな?僕はiPhoneアプリの開発が目的なので、ここからXCodeの最新版(iPhone SDK)をダウンロード。別にiPhoneアプリ開発しない方は、ここからXCodeダウンロード。インストールは特に問題なくできると思います。
MacPortsのインストール
これも必須かどうか微妙だけど、とりあえず。ここのとおり、The MacPorts Projectからダウンロード、インストールする。次に、MacPorts自身のアップデート。
$ sudo port -d selfupdate $ sudo port -d sync
MySQLのインストール
http://dev.mysql.com/downloads/mysql/5.1.html こちらから、「Mac OS X 10.5 (x86_64)」のパッケージ(拡張子は.dmg)をダウンロード、インストールする。MacPortsのではダメらしい。
の順にインストールする。インストール後は、システム環境設定からMySQLを自動起動するよう設定できる。
my.cnfの記述
/usr/local/mysql//support-files/my-small.cnf を/etc/my.cnfとしてコピーし、/etc/my.cnfを編集する。「mysqld」ディレクティブに、以下の設定を追記。
$ sudo cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf $ sudo vi /etc/my.cnf … [mysqld] … ## USER-SETTINGS default-character-set = utf8 default-storage-engine=innodb skip-character-set-client-handshake ## …
MySQLデータベースのインストール
$ sudo /usr/local/mysql/scripts/mysql_install_db --user=mysql
MySQLの起動、パスワードの設定
システム環境設定から「MySQL」をクリックしてMySQLの設定画面を表示する。「Start MySQL Server」ボタンをクリックするとMySQLが起動する。MySQLが起動した状態で、パスワードを設定する。
2行目のコマンドは失敗するので実行しなくてもよい。*1
$ sudo /usr/local/mysql/bin/mysqladmin -u root password '(MySQLパスワード)' $ sudo /usr/local/mysql/bin/mysqladmin -u root -h macmini.local password '(MySQLパスワード)' ./bin/mysqladmin: connect to server at 'macmini.local' failed error: 'Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server'
Redmine用のデータベースユーザーの作成
mysqlコマンドにPATHを通しておく。
$ sudo mkdir /usr/local/bin $ sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
データベースredmineを作成して、さらにユーザーredmineを作成、redmineユーザーはデータベースredmineに対して全ての権限を持つようにする。
$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. … mysql> grant all privileges on redmine.* to redmine identified by '(Redmine用パスワード)';
RubyGemsでMySQL用データベースドライバをインストール
おまじないみたいなもの。強制的に64bitでバイナリを作るらしい。「No definition for next_result」なんかのメッセージが出るが、特に問題は無かった。
$ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Redmineのインストール
http://redmine.jp/ から最新版をダウンロードし、インストールする。.tar.gzファイルを展開してできるディレクトリを「redmine」とし、仮に、redmineをホームディレクトリ/Library/redmine に配置しておく。*2
$ mv redmine /Users/<ユーザー名>/Library/
database.ymlの編集
database.yml.exampleをコピーして作る。ここでは、「production」を使うものとして設定する。
$ cp redmine/config/database.yml.example redmine/config/database.yml $ vi redmine/config/database.yml … production: adapter: mysql database: redmine host: localhost username: root password: (MySQLでredmine用に設定したパスワード) encoding: utf8 …以下略
email.ymlの編集
パス。
Redmineデータベースの初期化
Redmineデータベースの初期化を行い、デフォルトのトラッカー、ロール、ワークフローなどの初期データを投入する。2行目の「sudo rake redmine:load_default_data RAILS_ENV=production」の方は、「Select language」と聞かれるので「ja」と入力する。
$ sudo rake db:migrate RAILS_ENV=production $ sudo rake redmine:load_default_data RAILS_ENV=production
Passengerのインストール
ここからは、Apache+PassengerでRedmineを動作させるための設定になる。
$ sudo gem install -r passenger
次に、Apacheモジュールのビルドを行う。対話的に進んでいく。途中の質問では、Apacheモジュールをインストールするため「1」を選択する。
また、httpd.confへ追記すべき内容が表示されるので、表示内容は保存するなり残しておくこと。
$ sudo passenger-install-apache2-module Welcome to the Phusion Passenger Apache 2 module installer, v2.2.5. This installer will guide you through the entire installation process. It shouldn't take more than 3 minutes in total. Here's what you can expect from the installation process: 1. The Apache 2 module will be installed for you. 2. You'll learn how to configure Apache. 3. You'll learn how to deploy a Ruby on Rails application. Don't worry if anything goes wrong. This installer will advise you on how to solve any problems. Press Enter to continue, or Ctrl-C to abort. 1 ←1を入力し、エンターキーを入力。 (省略) -------------------------------------------- The Apache 2 module was successfully installed. Please edit your Apache configuration file, and add these lines: LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-2.2.5 PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/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! Press ENTER to continue.
httpd.confの編集
Passengerのインストール時に表示された内容を、httpd.confに追記する。追記位置は、LoadModuleが大量に書かれているあたりで良い。
また、今回はサブディレクトリで使用することを想定しているので、RailsAutoDetectとRailsBaseURIも記述する。
あと「RailsEnv production」を追記してもよい。*3
$ sudo vi /etc/apache2/httpd.conf … ## USER SETTINGS LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-2.2.5 PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby RailsAutoDetect off RailsBaseURI /redmine ## …以下略
シンボリックリンクの作成
「http://<ホスト名>/redmine/」という具合に、Redmineをサブディレクトリで動かしたいので、シンボリックリンクを作成する。
$ sudo ln -s /Users/<ユーザー名>/Library/redmine/public /Library/WebServer/Documents/redmine
追記:ハマったところ
一応、ハマったところも書いておく。上記の内容をきちんと行っても、ブラウザでアクセスすると500 Internal Server Errorになってしまう場合がある。
Leopard、Snow Leopardの場合の話だけど、ホスト名に「macmini」と名づけた場合、そのネットワーク内で他のコンピュータからアクセスする場合は、「macmini.local」とブラウザに打ち込まなければならない。*4 *5 *6
あと、「http://<IPアドレス>/redmine/」でもRedmineにアクセスできる。
*1:MySQLのインストールログに、「issue the following commands」とか言われるけど
*3:デフォルトでは、RailsEnvはproductionになっているため
*4:僕は、ずっとブラウザで「http://macmini/redmine/」にアクセスしようとしていて、「なんでできないんだろ?」と数時間ハマった。。
*5:hostsファイルを編集してmacminiのIPアドレスを「macmini」でアクセスできるように設定した場合、「http://macmini/redmine/」にアクセスしてもRedmineにはアクセスできない
*6:でもまぁ、apacheでhttpd.confにNameVirtualHostを指定してたりすると、こういうことは起こらない。。