RESTfm のインストール方法

# RESTfm をインストールする
[RESTfm](http://www.restfm.com/) をインストールする方法は、結論から言ってしまえば[公式ドキュメント](http://www.restfm.com/restfm-manual/install)に詳しく載っています。

# 一般的なインストール方法の説明
とはいえ「ドキュメントを読め」で終わってしまうとここで記事が終わってしまうので、ごく一般的なインストール方法についてドキュメントの訳を交えながら説明していきます。もととなっているドキュメントは「[1.3 Advanced Installations](http://www.restfm.com/restfm-manual/install/advanced-installations)」です。

## 1. RESTfm をダウンロード
まずは [GitHub のリポジトリ](https://github.com/GoyaPtyLtd/RESTfm)から RESTfm をダウンロードしましょう。[README](https://github.com/GoyaPtyLtd/RESTfm/blob/master/README.md) にもあるように、[releases から落としましょう](https://github.com/GoyaPtyLtd/RESTfm/releases)。

## 2. ダウンロードしたファイルを展開
ダウンロードしたファイルを Webサーバ の任意のディレクトリに展開しましょう。ここでは説明のために、http\://hogehoge/foo/RESTfm/ 配下に展開したとします。

## 3. 設定をするファイルやディレクトリについて
展開した後は必要な設定を行っていくわけですが、設定を行うファイルやディレクトリには接尾語として`.dist`が付いています。具体的には以下の4つです。

- `FileMaker.dist`（ディレクトリ）
- `RESTfm.ini.php.dist`（ファイル）
- `.htaccess.dist`（ファイル）
- `web.config.dist`（ファイル）

順番に設定方法を見ていきます。

## 4. FileMaker.dist
RESTfm は FileMaker API for PHP を内部的に用いています。そのため、まずは`FM_API_for_PHP_Standalone.zip` を用意します。

そして`FM_API_for_PHP_Standalone.zip`の中身を`FileMaker.dist`ディレクトリに展開しましょう。その結果、`FileMaker.dist`ディレクトリには、`FileMaker.php`というファイルと、サブフォルダとして`FileMaker`というフォルダができているはずです。サブフォルダの`FileMaker`の中には各種ライブラリのファイルが詰め込まれています。

以上のように展開ができたら、`FileMaker.dist`ディレクトリの名前を`FileMaker`に変更しましょう。このディレクトリの中に、ライブラリの方の`FileMaker`ディレクトリが存在するため、そのディレクトリは`FileMaker\FileMaker`という配置になってしまいちょっと気持ち悪いですが、まあそんなもんなので気にしないようにしましょう。

なお、展開する FileMaker API for PHP の zip ファイルは、必ず使用する FileMaker Server と同じバージョンからコピーしたものを用いてください。異なるバージョンでは互換性がないためです。

以上の内容は`FileMaker.dist`ディレクトリの中にある`README.FileMaker`というファイルにも記載があるので参考にしてみてください。

## 5. RESTfm.ini.php.dist
`RESTfm.ini.php.dist`というファイルが設定ファイルの総本山です。いくつかの設定項目がありますが、動作に必要な最低限の項目だけ説明します。詳しくはドキュメントやファイル内のコメントを参考にしてください。

設定が完了したら`RESTfm.ini.php`とリネームしてあげましょう。

#### 5-1. baseURI
`baseURI`には RESTfm のルートから見た配置場所を記します。デフォルトでは`/RESTfm`となっています。これを前述の URI に配置したと仮定した場合は`/foo/RESTfm`となります。各自の配置環境に応じて書き換えましょう。

#### 5-2. hostspec
`hostspec`は FileMaker Server のルートアドレス（URI）を記します。デフォルトでは`http://127.0.0.1`となっていますが、例えば FileMaker Server のアドレスと RESTfm の設置アドレスが異なる場合にはここを書き換える必要があります。

#### 5-3. その他
`diagnostics`については本番環境では`FALSE`にすべきとの記述があります。また、セキュリティ上は`SSLOnly`は`TRUE`が望ましいでしょう。

ローカルで閉じている環境ならば`useDefaultAuthentication`や`defaultUsername`や`defaultPassword`を設定するのもいいかもしれません。

`EXPERIMENTAL`で記載されている内容も変更してみると面白いかもしれません[^1]。

ここらへんはオプション項目であるので、利用状況を見ながら設定していくのがいいでしょう。

## 6. .htaccess.dist
`.htaccess.dist`はファイル名からも分かるように Apache 用のファイルです。Webサーバ に Apache を使っている場合はこのファイルを編集します。

とはいえ、いじる場所は一点、`RewriteBase`のところだけです。先ほどの`RESTfm.ini.php.dist`の`baseURI`で指定したように、RESTfm のルートからのアドレスを記載します。

前述の URI の例を用いれば、以下のように記述すればよいことになります。

```
    RewriteBase /foo/RESTfm
```

保存をしたら`.htaccess`にリネームしましょう。なお、.htaccess を有効にするために Apache で`AllowOverride`ディレクティブを設定する必要があります（後述）。

## 7. web.config.dist
`web.config.dist`は、これもファイル名からわかるように IIS 用のファイルです。IIS は正直まったく詳しくないのですが、`web.config`とリネームしてやれば大丈夫と思われます[^2]。

# 正しく設定できたかを確認する
以上のように設定ができたならば正しく動作しているかどうかを確認しましょう。念のため Webサーバ を再起動しましょう。

確認のために以下の URI にアクセスします。

```
http://hogehoge/foo/RESTfm/report.php
```

すると各種設定が正しく行われているかの診断結果が出てきたはずです。NG の項目については見直して、設定をし直しましょう。

# その他のドキュメント記載項目
その他にも、「[SSL/TLS の使用を強く推奨する](http://www.restfm.com/restfm-manual/install/security-considerations)」ことや、「[オレオレ証明書への対策](http://www.restfm.com/restfm-manual/install/ssl-troubleshooting)」、「[OS X のバグへの対処法](http://www.restfm.com/restfm-manual/install/ssl-troubleshooting-os-x-secure-transport-bug)」や「[Nginx へのインストール方法](http://www.restfm.com/restfm-manual/install/advanced-installations)」などもドキュメントにはあります。

一読しておくといいでしょう。

# README の日本語訳
Webサイト のドキュメントとともに、リリースファイルの中にある README も読んでおきましょう。以下、日本語に訳したものです。

（README 日本語訳 ここから）

----------------------------------------
----------------------------------------
----------------------------------------
# RESTfm
FileMaker Server 用の RESTful な Webサービス

RESTfm はあなたの FileMaker Server を RESTful な Webサービス へと変身させます。REST アーキテクチャに基づいた HTTPメソッド による平易な API を用いて FileMaker Server にアクセスすることができるのです。

**公式 Webサイト:**
http://restfm.com/

**インストールマニュアル および API マニュアル:**
http://restfm.com/manual

RESTfm の権利は Goya Pty Ltd に属します（2011年～2016年）。ライセンス形式は MIT ライセンスです。全ての権利およびライセンス関連の情報は LICENSE ファイルをご覧ください。

-----------------------------------

## RESTfm を本番環境で用いることについて
GitHub の master ブランチ上のコードは開発中のものであり、バグが潜んでいる可能性がありますので、本番環境で利用することは推奨しません。

### パッケージ版をダウンロードする
「パッケージ版」を本番環境としてご利用ください。GitHub のリポジトリのトップページから「releases」リンクをたどれば、tar および zip ファイルをダウンロードすることができます:
https://github.com/GoyaPtyLtd/RESTfm/releases

### サポート
開発への支援を頂いた方にはサポートを提供しております:
http://restfm.com/help

----------------------------------------

## 開発版を利用する
RESTfm の開発を行うことや最新の試作機能に興味がある方は、GitHub のリポジトリから直接コードをダウンロードして利用するのもいいでしょう。

### インストール方法

#### 動作環境
* 書き込み権限を備えた Webサーバ（Apache 2.2 以上 または IIS 7.0 以上）
* FileMaker Server 11 以上（RESTfm と同じマシン上にインストールされている必要はありません）
* PHP 5.3 以上
* Webサーバ に Apache を用いている場合は`.htaccess`ファイルが適用されるように、RESTfm ディレクトリに`AllowOverride All`のようにディレクティブを設定すること

#### OS X および Linux でのインストール例
    cd /<your web doc dir>
    git clone https://github.com/GoyaPtyLtd/RESTfm.git
    cd RESTfm
    cp RESTfm.ini.php.dist RESTfm.ini.php
    cp .htaccess.dist .htaccess
    cp -a FileMaker.dist FileMaker
* IIS で利用する場合は`web.config.dist`を`web.config`にリネームしてコピーしてください
* RESTfm の詳細な設定情報を確認するためには次のアドレスにアクセスしてください: http://example.com/RESTfm/report.php
* RESTfm の詳しいマニュアルを見るためには次のアドレスを参照してください: http://restfm.com/manual

### バグについて
GitHub 上の開発コードはバグを含んでいる可能性がとても高く、サポートを行っておりません。バグレポートについては GitHub の Issues にてお待ちしております。

----------------------------------------
----------------------------------------
----------------------------------------

（README 日本語訳 ここまで）

# RESTfm の API に実際にアクセスする
インストールが完了したら RESTfm の API にアクセスをしていきます。続きは明日以降の記事に譲ります。

[^1]: その名のとおりの実験的な機能なのでリスクはあります
[^2]: 誤っていたらご指摘願います