Magento1.x開発環境をOS Xに構築する

この記事は[Magento Advent Calendar 2015](http://www.adventar.org/calendars/931)の三日目です。
前日の[kzkiq2nd](http://qiita.com/kzkiq2nd/items/9d420754db3f341fe1fd)さんに引き続き、Magento1系の記事となります。
# はじめに
今回はVM上にMagentoの開発環境を構築します。ゼロから構築するのではなく[Magento development box with Vagrant and Chef Solo](https://github.com/mike182uk/magento-dev-vagrant-chef-solo)を元に、Magentoが動作する環境をローカルに作成することを目指します。私自身がMacbookで開発しているため、OS Xでのみ動作を確認しています。

# インストールされるもの
* Ubuntu 14.04 LTS
* Magento CE 1.9.2.1
* [n98-magerun](https://github.com/netz98/n98-magerun)
Magentoをコマンドラインから操作するためのインターフェース
* [XDebug](http://xdebug.org/) PHP のデバッグ用エクステンション

# 事前準備
## Chef Development Kitのインストール
[Chef Development Kit](https://downloads.chef.io/chef-dk)は、プロビジョニングツールであるChefの開発ツールを、まとめてクライアントにインストールするためのパッケージです。
[リンク先](https://downloads.chef.io/chef-dk/mac/)から最新版のdmgファイルをダウンロードしてインストールしてください。

## Virtualboxのインストール
[Virtualbox](https://www.virtualbox.org/)は、LinuxOSやWindowsOSなどを動かすための仮想環境ソフトウェア・パッケージです。今回はOSX上でLinuxOS(Ubuntu)を動かすために使用します。
[リンク先](https://www.virtualbox.org/wiki/Downloads)から最新版のdmgファイルをダウンロードしてインストールしてください。

## Vagrantのインストール
[Vagrant](https://www.vagrantup.com/)は仮想環境構築ソフトウェアです。Vagrantfileに記述された構成を元に、仮想環境を構築することが可能になります。
[リンク先](https://www.vagrantup.com/downloads.html)から最新版のdmgファイルをダウンロードしてインストールしてください。

追加でVagrantをChefでプロビジョニングするためのプラグインなどをインストールするため、ターミナルから下記コマンドを実行します。

```sh
$ vagrant plugin install vagrant-cachier
$ vagrant plugin install vagrant-omnibus
$ vagrant plugin install vagrant-berkshelf
$ vagrant plugin install vagrant-vbguest
$ vagrant plugin install vagrant-hostsupdater
```
プラグインのインストール中にffi関連のエラーが出て失敗したときは、ffiをアップデートするか、gemコマンドでffiをインストールしてみてください。

```sh
$ vagrant plugin update ffi
```
```sh
$ brew install apple-gcc42
$ gem install ffi
```

## Composerのインストール

[Composer](https://getcomposer.org/)はPHPのパッケージ依存管理ツールです。
ターミナルから下記コマンドを実行してインストールしてください。

```sh
$ curl -sS https://getcomposer.org/installer | php
```

# Magento環境の構築
## Magento環境設定ファイルの取得
クライアントに作業ディレクトリ（例：~/workspace/vm/magento）を作成して、VagrantfileやChefのrecipeなどが含まれたファイル群を[GitHubのリポジトリ](https://github.com/mike182uk/magento-dev-vagrant-chef-solo)からcloneします。
cloneできたらVagrantfileが入っているディレクトリに移動してください。

```sh
$ mkdir ~/workspace/vm/magento
$ cd ~/workspace/vm/magento
$ git clone https://github.com/mike182uk/magento-dev-vagrant-chef-solo.git
$ cd ./magento-dev-vagrant-chef-solo
```

## 設定ファイルの変更
Magentoをインストールする前に、設定ファイルを編集します。通貨・地域・タイムゾーンを日本に変更してください。管理画面のユーザー・パスワードも変更可能です。

```sh
$ vi ./.n98-magerun.yaml
```
```
currency: JPY (<=GBPから書き換え）
locale: ja_JP (<=en_GBから書き換え）
timezone: ASIA/Tokyo (<=Europe/Londonから書き換え）
```
英語圏のサンプルデータは必要ないと思いますので、ChefのMagentoインストール設定ファイルを編集してmagerunの`installSampledata`オプションを`yes`から`no`に書き換えます。

```sh
$ vi ./chef/cookbooks/magento-dev/templates/default/install-magento.erb 
```
```
--installSampleData = no (<= yesから書き換え)
```

## Vagrantの起動
Vagrantを起動（セットアップ）します。

```sh
$ vagrant up
```
続いてComposerで依存関係のあるPHPパッケージをインストールしてください。

```sh
$ composer install --prefer-dist
```
GitHubのAPI制限に引っかかる場合は、GitHubのユーザー・パスワードを入力するか、下記記事を参考にアクセストークンをComposerに設定しておいてください。
[ComposerでGitHubのリポジトリをHTTPSで追加したときの認証設定](http://qiita.com/fivestar/items/fc15e0bb379c791ff6b2)

## Magentoのインストール
これで全ての準備が整いましたので、Magentoのインストールスクリプトを実行します。

```sh
$ vagrant ssh -c "~/install-magento.sh"
```
以上でMagentoの環境がVM上に構築されました。ブラウザからwww.magento.devにアクセスして確認してください。
MySQLデータベースの接続情報については[GitHub](https://github.com/mike182uk/magento-dev-vagrant-chef-solo)に記載されています。

[明日はHoriuchi Fumioさん](http://www.adventar.org/calendars/931)です。よろしく！