RESTfm を利用する前の設定を行おう
以前の記事と重複してしまう部分がありますが、RESTfm を本格的に利用する前の各種設定を行いましょう。
ここではRESTfm.ini.php
ファイルの設定に絞ります。.htaccess
やweb.config
、HTTPS まわりの設定などは省略しますので、公式ドキュメントや以前の記事などを参考にしてください。
RESTfm.ini.php ファイルを設定していく
RESTfm.ini.php
は設定ファイルの総本山です。ここに全ての設定が詰まっています。配布ファイルの状態ではRESTfm.ini.php.dist
というファイル名になっていますので、内容を適切に設定した上でこのファイルをRESTfm.ini.php
とリネーム(コピーした上でリネーム)しましょう。
では具体的に設定内容を見ていきます。
baseURI
baseURI
には、RESTfm のスクリプト一式をどこに配置したかを指定します。注意する点は、URIのルートからの位置である点と、最後のスラッシュは不要という点です。
例えば、http://hogehoge.com/fuga/RESTfm に設置したとしたならば、以下のようになります。
'baseURI' => '/fuga/RESTfm',
formats
formats
には、有効にしたいURIの拡張子を配列で連ねていきます。html
とjson
さえあれば(あと場合によってはfmpxml
)十分だと思いますが、特に不要でもないので、そのままでいいと思います。
不要な拡張子があったらコメントアウトしましょう。
formatNicely
formatNicely
では、JSON や XML をいい感じに整形して見やすくしてくれるか否かを設定します。PHP の 5.4.0 未満で JSON 対象にこれを有効にするとオーバーヘッドが起きる点もあり、本番環境では推奨されていません。あくまでデバッグ用としての活用でしょう。
有効にしたい場合はもちろん TRUE にします。
SSLOnly
SSLOnly
ではその名のとおり、アクセスを HTTPS に限定するか否かを設定します。この設定を行う際は、Apache では.htaccess
を、IIS ではweb.config
も見直しましょう。
またこちらの設定を有効にする(TRUE にする)前には必ずreport.php
にアクセスして HTTPS の状態を確かめましょう。
strictSSLCertsFMS
strictSSLCertsFMS
では、RESTfm が FileMaker Server に接続する際、HTTPS の証明書を厳格に求めるかどうかを設定します。FileMaker Server が HTTPS を用いているか場合にのみ関係する設定項目です。
詳しくは公式ドキュメントにありますが、開発環境では無効、本番環境では有効、とするのが推奨されるようです。
strictSSLCertsReport
strictSSLCertsReport
では、前出のstrictSSLCertsFMS
と似たように、report.php
にアクセスするために厳格な証明書が必要か否かを設定します。これも詳しくは公式ドキュメントを参照してください。
forbiddenOnUnauthorized
forbiddenOnUnauthorized
はその値が TRUE の際、HTTP のベーシック認証のポップアップを抑制し JavaScript での認証を用います。
ただし、HTML および TXT 形式のフォーマットへのアクセスではこの設定は無視されます。
dumpData
dumpData
を TRUE に設定すると、生成されるデータがrestfmdump.xxxxxxx
のようなサブディレクトリに保存されるようになります。ディレクトリの詳細な場所はphp.ini
の記述に従います。
なお、この設定を TRUE にすると、全ての HTTP リクエストに対して新たなサブディレクトリを生成するため、注意が必要です。
diagnostics
diagnostics
の主な目的は、report.php
を有効にするか否かを設定することです。デフォルトでは TRUE になっていますが、本番環境では FALSE に設定して、パフォーマンスのアップや不要な情報表示を防ぐようにした方がいいでしょう。
また、echo
という API の実行可否もこの設定で決まります。詳しくは公式ドキュメントを参照してください。
hostspec
hostspec
では FileMaker Server のアドレスを指定します。HTTP と HTTPS も区別されます。
FileMaker Server が localhost にある場合でも http://localhost/ と指定するのではなく、http://127.0.0.1/ と指定するほうが速度アップが見込めます。
また、localhost の場合は HTTPS を用いる必要はありません。
useDefaultAuthentication
useDefaultAuthentication
が TRUE の場合、ユーザー認証項目が明示的に設定されなければdefaultUsername
とdefaultPassword
で指定されたユーザ名とパスワードを用いて FileMaker Server にログインが行われます。
databasePDOMap
databasePDOMap
は実験的な設定項目です。PHP の DSN の設定書式(下記)で記載することで、MySQL や SQLite などのデータベースに接続することができます。
'example1' => 'mysql:host=127.0.0.1;dbname=testdb',
'example2' => 'sqlite:/export/databases/testdb.sqlite3',
keys
keys
に配列を指定することで、FileMaker Server のユーザに対して API Key を発行することができます。API Key は API の認証に用いられます。
詳しくは公式ドキュメントを参照してみてください。
allowed_origins
allowed_origins
は、クロスサイトリクエストが発生する際に発生元のドメインを指定するために必要な設定項目です。Webアプリ が RESTfm がインストールされているドメインと異なるドメインで運用される場合などに設定します。
この設定はたいていの環境において必要ではないでしょう。
設定を確認してみる
以上のRESTfm.ini.php
の設定が終わったら、実際に設定項目が正しく反映されているかの動作確認をしてみましょう。なお、リクエストの度にRESTfm.ini.php
を参照する形式ですので、Webサーバ の再起動は必要ありません。RESTfm.ini.php
を修正しては試し、修正しては試しといった設定方法でよいでしょう。