Windowsマシンにデータベースサーバを入れて外部からアクセスしようとして二日ほど苦労しましたので、メモとして残して置きます。
いくつか検索して見ましたが、NAT変換で「5003」を指定するということは分かりましたが、それ以外にWindows上で必要な設定については見つかりませんでした。
そもそも、FileMaker serverを入れたとき、ファイアウォールの設定が自動で行われなかったため、手動にてプロファイルを作ることになりました。
これについては以前にも書いたと思いますが、受信設定にTCPとUDPの2つの設定を作ります。
以前書いた記事はこちらです。→FileMakerの覚え書き
コントロール パネル>システムとセキュリティ>Windows ファイアウォール
と進んで、右側にある「詳細設定」をクリック。画面が表示されるので「受信の規則」を確認します。
ポート番号は設定せず、プロファイルの3つの項目を全部チェックします。エッジトラバーサルは「ユーザーに従う」にしました。
フレッツ光を使っているので、CTUの設定を開いて、NAT変換の設定をします。
その前に、ファイアウォール設定を「低」にしました。ウェルノンポート以外の通信はすべて許可されます。
次に静的アドレス変換設定(ポート指定)にサーバのIPアドレスと転送の対象となるポート番号「5003」を追加します。プロトコルは「TCP・UDP」としました。
設定した日はうまくいかなかったのですが、翌日になって正しく動作することが確認できました。
また、ぷららを使っていたので、ぷららが提供するダイナミックDNSサービスを使ってドメインを割り当てることもできましたので、固定アドレスも必要なし、毎回IPアドレスを調べる必要もありません。
PCから、またiPadに入れたFileMaker Goからもアクセスに成功しました。
【パスワードの設定】
外部に公開すると、共有ファイルとして許可されたファイルが一覧で表示されてしまうので、全てのファイルにパスワードの設定が必要です。
一度ログインするとアプリを終了するまではログインしたままとなります。
しかし、PCからローカル接続している場合にはアカウントの入力を省略したいと思います。
そこで、ローカルにログイン用のファイルを1つ作成します。
パスワードを掛けたファイルを「メインメニュー」として、ログイン用のファイルを「ログインメニュー」とします。
ログインメニューを開くとメインメニューに飛ぶだけの仕組みにします。ログインメニューには「ファイル>ファイルオプション」でアカウントとパスワードを設定しておきます。そうすると自動ログインするので続けてメインメニューが開きます。
メインメニューなどネットワーク共有するファイルのすべてに「ファイル>管理>セキュリティ」でアカウントとパスワードを設定しておきます。
「[共有ファイルで開く]ダイアログに表示しない」にチェックを入れておくと、そもそも一覧で表示されません。ただし、この設定は共有中には変更できません。
【データベースファイルの転送】
iPad(iPhone)にデータベースファイルを転送する場合、メールに添付して送ります。あとはそれをFileMaker Goで開くと自動的にデバイス上のファイルに追加されます。
【自動ログインファイルの作り方】
パスワード入力を省略するには、ローカル上にログイン用のデータベースファイルを1つ作ります。
そこから呼び出される共用のメニューをここではガイドメニューと呼びます。ガイドメニューにはパスワードを設定しておきます。
まず最初に別のデータベースファイルを呼び出すために、そのファイルがどこにあるのか登録する必要があります。
外部データソース管理で、新規に「ガイドメニュー」を作成します。
LAN上にあるサーバを指し示す場合は、そのサーバのIPアドレスとファイル名を記述します。
固定IPであれば外部からアクセスすることも可能ですが、ダイナミックDNSを使っている場合は、転送用のドメインも追記します。
外部データソース:
fmnet:/192.168.24.x/ガイドメニュー
fmnet:/sample.domain.jp/ガイドメニュー
このように併記しておけば、順次ファイルを探してアクセスしてくれます。
次に、起動時に実行してガイドメニューを開くスクリプトを用意します。
起動スクリプト:
エラー処理 [オン]
ファイルを開く [「ガイドメニュー」]
If (Get(最終エラー) > 0)
カスタムダイアログを表示 ["メッセージ";"サーバのメニューを開くことができません"]
Else
ウィンドウの調整 [隠す]
End If
起動時にこのスクリプトを実行するには、ファイルオプションでスクリプトトリガの「OnFirstWindowOpen」にスクリプトを指定します。
また、ファイルの呼出に失敗したときのために、スクリプトを呼び出すボタンを配置して置くと良いでしょう。
あとはファイルオプションで、ログイン用のアカウントとパスワードを設定しておけば、自動ログインファイルの完成です。