EMLauncherをVagrant/CentOS環境で試してみる(未完成)


## きっかけ
アプリを作る機会は全くありませんが、仕事で「インフラ」を扱っているので、
様々な環境の構築知識は取得しておきたい。

ということで、KLab様が公開されているAndroid/iOS向けテストアプリ配信ツール「EMLauncher」を構築してみる。

## EMLauncherとは...?
Android/iOS向けテストアプリ配信ツール。
PHP製、MIT Licenseのオープンソース・ソフトウェアで、アップロードAPIも完備とのこと。

ネタ元：MOBILE TOUCH / [EMLauncher - 速攻レビュー！Testflight代替なiOS/Androidアプリ配信プラットフォーム](http://mobiletou.ch/2014/03/emlauncher-%E9%80%9F%E6%94%BB%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%EF%BC%81testflight%E4%BB%A3%E6%9B%BF%E3%81%AAiosandroid%E3%82%A2%E3%83%97%E3%83%AA%E9%85%8D%E4%BF%A1%E3%83%97%E3%83%A9%E3%83%83)

・KLab様プレスリリース / [KLab、Android/iOS向けテストアプリ配信ツール「EMLauncher」のソースコードを公開](http://www.klab.com/jp/press/140304.html)
・Githubレポジトリ / [KLab/emlauncher](https://github.com/KLab/emlauncher)


## インストール
テスト用アプリもないので、GithubのREADMEを見ながら構築のみ確認します。
環境：Mac OSX 10.9.2 / Vagrant 1.5.4 / CentOS release 6.5

1.各種パッケージのインストール

```
$ sudo yum install php php-pdo php-mysql httpd memcached php-pecl-memcache php-mbstring php-pecl-imagick git

// READMEでは、mysql55-serverと記載されていますが、
// CentOS6.5では入らないので、epelとremiレポジトリを追加。
$ sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
$ sudo yum install mysql-server --enablerepo=remi

$ sudo git clone https://github.com/KLab/emlauncher.git
$ cd emlauncher/
```

2.設定

```
// registered for pathと出てくるけど、大丈夫っぽい？
$ sudo git submodule init
Submodule 'libs/CFPropertyList' (https://github.com/rodneyrehm/CFPropertyList.git) registered for path 'libs/CFPropertyList'
Submodule 'mfw' (https://github.com/makiuchi-d/mfw.git) registered for path 'mfw'

$ sudo git submodule update

// Apacheがファイルにアクセスできるようにパーミッションを変更。
// (これで合ってるか不安w)
$ sudo chown -R apache:apache emlauncher/
$ sudo chmod -R 755 emlauncher/
```

今回は`/var/www/html/emlauncher/`と置いたので、Apacheの設定は省略。

(...すると、PHP知識がない私ではどうにもならなかったので、ログインできるよう修正。)

```httpd.conf
DocumentRoot "/path/to/emlauncher/web"
SetEnv MFW_ENV 'ec2'
<Directory "/path/to/emlauncher/web">
  AllowOverride All
</Directory>
```

```
$ sudo service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
                                                           [  OK  ]
$ sudo chkconfig httpd on
```

メッセージが出てくるけど、Vagrantでは毎回出てくる内容でテストに影響がないはずなので、省略。

DBの設定だけど、パーミッションを変更したからrootになっておく。

```
// まずdbauthというファイルを作成し、DBのユーザ名、パスワードを記述しておく。
// 今回は動くことを第一に。セキュリティはテストなので考えない。
# echo 'emlauncher:password' > /var/www/html/dbauth

// /path/to/emlauncher/data/sql/database.sql にあるパスワードを修正。
# vi data/sql/database.sql
# service mysqld start
# chkconfig mysqld on

// DB設定をMySQLに流し込む。
# mysql -uroot < /path/to/emlauncher/data/sql/database.sql
# mysql -uroot emlauncher < /path/to/emlauncher/data/sql/tables.sql
```

そして、Memcacheを立ち上げておく。

```
# service memcached start
# chkconfig memcached on
```

PHPのDBアクセス等を設定。
って(やっぱり？)EC2仕様だw ここまでやってきてローカルで動くかな...

```
# cp config/mfw_serverenv_config_sample.php config/mfw_serverenv_config.php
// /** DBの ユーザ名:パスワード が書かれたファイル */の箇所を修正。
# vi mfw_serverenv_config.php

# cp config/emlauncher_config_sample.php config/emlauncher_config.php
```

で、結局動きました！

ただログインが...できませんでした。
テストユーザもいないようですし、中途半端ですが今回はここまで。

エラーに対してはなんとか対応できるけど、新たに作り上げる力を養わなければ！