FileMakerServer19をLinuxのCLI 環境のみで稼働

# はじめに
## 対象読者
* 本稿の前編にあたる、以下の記事を読んでから来られた方
  * [FileMakerServer19をLinuxのCLI 環境のみでインストール](https://qiita.com/Hi_Noguchi/items/c841d3bd0e9858ffd665)
* CentOS と Ubuntu いずれかでインストールしたい方、違いを確認したい方

### Claris FileMaker Server 19 リリースノート
* https://support.claris.com/s/article/FileMaker-Server-19-release-notes?language=ja

## 追記
- 2021/12/06 Ubuntu 18.04 環境における 19.4.1 稼働
  - 前提として 19.4.1 以後は Ubuntu のみのサポートへ変更されました
    - 逆に 19.2 までは CentOS のみ
  - やや煩雑になりますが、以下の記述では両パターンについてのインストール方法を記しておきます

## 前提
* 先述の前編記事で環境構築が済んでいること


# 前準備
## apache の ver. 確認

* 知っておかないと個人的にすわりが悪いので……

### コマンド
* Ubuntu の場合

```sh
apache2 -v
```

```sh
Server version: Apache/2.4.29 (Ubuntu)
Server built:   2021-09-28T22:27:27
```

* CentOS の場合

```sh
httpd -v
```

```sh
Server version: Apache/2.4.6 (CentOS)
Server built:   Apr  2 2020 13:13:23
```

## インストール先ディレクトリの確認
### path

```sh
/opt/FileMaker/
```

## apache 設定ファイルの確認
### path

```sh
/opt/FileMaker/FileMaker Server/HTTPServer/conf/httpd.conf
```

## ファイアウォールの設定
### 前提
* GCP 環境の場合は GCP 側でファイアウォールを設定することが多いと思うので、以下はスルーで構いませんので、初期設定の項まで飛ばしてしまってください

### 確認
* 前編記事で設定している場合は、以下のように結果が表示されると思います
    * zonename = active な zone の名前
    * xxx.xxx.xxx.xxx = 許可元の ip address

```sh
sudo firewall-cmd --list-all
```

```sh
zonename (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client
  ports: 80/tcp 443/tcp 2399/tcp 5003/tcp 16000/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
        rule family="ipv4" source address="xxx.xxx.xxx.xxx" port port="22" protocol="tcp" accept
```

### すべての通信について許可元 ip address からのみの接続とする
* セキュリティポリシーや運用方法次第ですが、すべての通信について許可元 ip address からのみの接続とした方が、安全と思いますので、そうします
    * 今後の自動アップデートの時、どうするかはまた考える……

* コマンドを一つずつ打って対応するのも面倒なので、設定ファイルを直接編集します
    * zonename = くどいようですが active な zone の名前を指定
    * xxx.xxx.xxx.xxx = こちらもくどいようですが、許可元 ip address を指定

```sh
sudo vim /etc/firewalld/zones/zonename.xml
```

```xml:/etc/firewalld/zones/zonename.xml--before
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="dhcpv6-client"/>
  <port protocol="tcp" port="80"/>
  <port protocol="tcp" port="443"/>
  <port protocol="tcp" port="2399"/>
  <port protocol="tcp" port="5003"/>
  <port protocol="tcp" port="16000"/>
  <rule family="ipv4">
    <source address="xxx.xxx.xxx.xxx"/>
    <port protocol="tcp" port="22"/>
    <accept/>
  </rule>
</zone>
```

```xml:/etc/firewalld/zones/zonename.xml--after
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="dhcpv6-client"/>
  <rule family="ipv4">
    <source address="xxx.xxx.xxx.xxx"/>
    <port protocol="tcp" port="22"/>
    <accept/>
  </rule>
  <rule family="ipv4">
    <source address="xxx.xxx.xxx.xxx"/>
    <port protocol="tcp" port="80"/>
    <accept/>
  </rule>
  <rule family="ipv4">
    <source address="xxx.xxx.xxx.xxx"/>
    <port protocol="tcp" port="443"/>
    <accept/>
  </rule>
  <rule family="ipv4">
    <source address="xxx.xxx.xxx.xxx"/>
    <port protocol="tcp" port="2399"/>
    <accept/>
  </rule>
  <rule family="ipv4">
    <source address="xxx.xxx.xxx.xxx"/>
    <port protocol="tcp" port="5003"/>
    <accept/>
  </rule>
  <rule family="ipv4">
    <source address="xxx.xxx.xxx.xxx"/>
    <port protocol="tcp" port="16000"/>
    <accept/>
  </rule>
</zone>
```

### 設定リロードと反映確認
* 設定リロード

```sh
sudo firewall-cmd --reload
```

* 反映されていること確認

```sh
sudo firewall-cmd --list-all
```

```sh
zonename (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
        rule family="ipv4" source address="xxx.xxx.xxx.xxx" port port="22" protocol="tcp" accept
        rule family="ipv4" source address="xxx.xxx.xxx.xxx" port port="80" protocol="tcp" accept
        rule family="ipv4" source address="xxx.xxx.xxx.xxx" port port="443" protocol="tcp" accept
        rule family="ipv4" source address="xxx.xxx.xxx.xxx" port port="2399" protocol="tcp" accept
        rule family="ipv4" source address="xxx.xxx.xxx.xxx" port port="5003" protocol="tcp" accept
        rule family="ipv4" source address="xxx.xxx.xxx.xxx" port port="16000" protocol="tcp" accept
```


# 初期設定
## サインイン画面
### 開く
* https://xxx.xxx.xxx.xxx/admin-console/signin
    * 接続許可した ip address 環境から上記 url へアクセスして、以下の画面が表示されれば OK です
    * 許可していない ip address 環境からのアクセスが遮断されていることも確認しましょう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37739/17a64ca5-08a4-0c1b-ba3f-a56eef0065f9.png)

### ユーザー名／パスワード入力
* インストール時に自身で設定した username / password を入力

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37739/80f599c5-02f1-d5d2-ca0c-202e4942940a.png)

## セキュリティ設定
### 証明書
* ひとまずテストサーバということで Claris デフォルト証明書を使用

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37739/208d6f71-63e4-79e2-1333-b145ba1b8746.png)

* リスクを受け入れる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37739/a2a063ea-02d9-dc5d-d16e-c5cca8f66ac8.png)

## ダッシュボードの表示
* まずは無事に表示されることが確認できました

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37739/7db5cdad-1977-2bd6-3762-2bed0d73c09d.png)


# FileMaker Pro 19 からのアクセス
## サンプルファイルを開いてみる
* FileMaker Pro 19 を起動
* ホストへ FileMaker Server の ip address を指定してみると、以下のようなアラートが出るけれど、分かっていることなので接続する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37739/5ab8af37-2dab-adad-a5df-23d5eec62c74.png)

* サンプルファイルが表示される

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37739/808c654a-818b-b6d8-ab39-5018a841040b.png)

* サンプルファイルを開く。問題なく開けました！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37739/f805c39d-4bc0-fd9f-2a73-6787a726c963.png)


## 自作したローカルファイルをホストさせる
### ファイルの用意
* 適当に starter で指定したファイルを用意
    * ホストにアップロードをする際に詰まらないよう、パスワード設定する
    * ファイルは閉じる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37739/9e4618e4-acce-ee0b-7769-a9ddc1d1523b.png)

### ホストにアップロードを用いるやり方
* ホストにアップロードを実行

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37739/dd827d59-bbd5-3c05-85c4-548b0bb73a73.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37739/aec75eda-d138-f606-da6d-7fa32cbf44ca.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37739/21a917d6-2131-ceeb-4dd6-930aa3b8e712.png)

* ホスティングされていることを AdminConsole で確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37739/07407765-25bf-8382-6eb4-5a90487b89bb.png)

* 初期設定では以下のディレクトリに格納される
    * /opt/FileMaker/FileMaker Server/Data/Databases/

### ファイルを直接設置して AdminConsole で開くやり方
* データベースファイルの置き場にディレクトリにファイルを置く。以下は初期設定
    * /opt/FileMaker/FileMaker Server/Data/Databases/

* AdminConsole でファイルを開く


# おわりに
## 感想
* 特に問題なく Linux CLI 環境で運用できます！