FileMakerServer 19 / 2023 (20) を Linux の CLI 環境のみでインストール

# はじめに
## 対象読者
- Claris FileMaker Server 19 / 2023 (20) Ubuntu の CLI 環境でインストールしたい方
- ギリギリまで CentOS でもインストールしたい方、違いを確認したい方

### Claris FileMaker Server リリースノート
* https://help.claris.com/ja/server-release-notes/content/index.html


## 追記
- 2023/08/15 FileMaker Server 20.1.x / Ubuntu 22.04 への対応
- 2022/12/09 Ubuntu 20.04 に FileMaker Server 19.6.1 をインストールできるように
- 2021/11/29 Ubuntu 18.04 環境における 19.4.1 インストール
  - 残念ながら Ubuntu 20.04 だと関連パッケージがインストールできずに詰む
  - 前提として 19.4.1 以後は Ubuntu のみのサポートへ変更されました
    - 逆に 19.2 までは CentOS のみ
  - やや煩雑になりますが、以下の記述では両パターンについてのインストール方法を記しておきます
- 2020/10/29 正式リリース版にて試行したものとして記事を更新
- 2020/05/22 更新において、成功レポートとして大幅に再編集いたしました
- 2020/05/21 Developer Preview 版にて試行。記事公開時点では、失敗レポートとしていました


# 前準備
## Ubuntu サーバの用意
* 何でも構いませんが私は GCE ( Google Compute Engine ) で新規に用意しました
* スペックは以下のもの ( 約 32 ドル / month )
    * CPU 2 core
    * メモリ 4 GB
    * 永続 SSD 20 GB
* FileMaker Server 19 より 20 の方が、要求されるスペックが高くなっています。そのため、上記スペックだと動かないかもしれません。その場合、`CPU 4 core` にしてみてください。 `CPU 4 core`, `メモリ 4 GB` の構成で動作確認はとれています
* とりあえずパッケージの更新

```sh
apt update
apt upgrade
apt autoremove
```

* GCE であればユーザーは root 以外がデフォルトになっているはずなので、特に記しませんが、ユーザー追加が必要であれば、以下コマンドでおこなってください

```sh
adduser fmuser
```

* `sudo` グループへの登録は以下のように

```sh
gpasswd -a fmuser sudo
```


### ファイアウォール設定
* GCP ( Google Cloud Platform ) 環境であれば GCP 側のファイアウォール設定を使うことになると思うので、ここでは記述を割愛
* もし Ubuntu 側でおこなうのであれば `ufw` を用いるとよいです


## CentOS サーバの用意
- ここから先は CentOS のお話なので Ubuntu ユーザの場合は [インストーラの用意](#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%A9%E3%83%BC%E3%81%AE%E7%94%A8%E6%84%8F) まで飛んでください
- 何でも構いませんが私は ConoHa で新規に用意しました
- スペックは以下のもの ( 880 円 / month )
    - CPU 2 core
    - メモリ 1 GB
    - SSD 50GB
- とりあえずパッケージの更新

```sh
yum update
```

- ユーザー追加
    - ユーザーが root のままだと後で詰まることになるのでユーザーを作っておく
    - ここではユーザー名を fmuser とする

``` sh
useradd fmuser
passwd fmuser
# enter password
```

- sudo 許可
    - visudo コマンド打って、以下の記述がコメントインされていることを確認

```sh
visudo
```

```vim
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
```

- ユーザーを sudo グループ入り

``` sh
usermod -G wheel fmuser
```

- ここまできたら root でログアウトして fmuser でログインし直す

### ファイアウォール設定
* 状態確認
    * active (runnning) になっているはず

```sh
systemctl status firewalld.service
```

* zone の確認

```sh
firewall-cmd --get-active-zones
```

* ssh 接続をいったん不許可にする
    * これをした後ですぐに ssh 接続を切らないようにしてください
    * もし切っちゃったら、サービス提供元のコンソールからアクセスするなど試みてください

```sh
sudo firewall-cmd --permanent --remove-service=ssh
```

* 接続元 IP address の許可
    * xxx.xxx.xxx.xxx のところを具体的な IP address にしてください
    * zonename のところを上記で出力された zone 名にしてください
    * 結果が success となればよし

```sh
sudo firewall-cmd --permanent --zone=zonename --add-rich-rule="rule family="ipv4" source address="xxx.xxx.xxx.xxx" port protocol="tcp" port="22" accept"
```

* 設定の reload

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


## インストーラーの用意
- Claris から送られてきた案内メールにしたがって Linux 用のインストーラーファイルを手元にダウンロードしてくる
    - 2023/08/15 時点だと filemaker-server-20.1.2.207-amd64.deb というファイル名
      - ただし ARM 版だと別のファイルです
      - また Ubuntu 20.04 / 22.04 とそれぞれで別のファイルが必要になります
        - ただ、圧縮されている zip ファイルでは別名になっているものの、解凍すると同じ名前の `.deb` ファイルになっているので、そこも要注意！
    - 2022/12/09 時点だと filemaker-server-19.6.1.52-amd64.deb というファイル名
      - 2021/11/29 時点だと filemaker-server_19.4.1.41_amd64.deb というファイル名。Ubuntu はコレ
      - 2020/10/29 時点だと filemaker_server-19.1.2-234.x86_64.rpm というファイル名
      - 2020/05/21 時点だと filemaker_server-19.0.1-22.x86_64.rmp というファイル名
- SFTP など何でも良いので CentOS / Ubuntu サーバへ持っていく
    - 今回は /home/fmuser/fms/ に置いた
    - あるいは最初から wget などで Linux 側でダウンロードしても構わない。やりやすいように


# インストール
## インストーラーの確認
### path
- 以下のような感じになる。自身の環境にあわせて任意で
  - /home/fmuser/fms/filemaker-server-20.1.2.207-amd64.deb
  - /home/fmuser/fms/filemaker_server-19.1.2-234.x86_64.rpm

### パーミッション設定
- Ubuntu 22.04 + FileMaker Server 20.1.2.x において、以下コマンドでインストーラのパーミッションを設定しておかないとエラーになったので、事前にしておく

```sh
sudo chmod 644 /home/fmuser/fms/filemaker-server-20.1.2.207-amd64.deb
```

## インストールを試す
### Ubuntu
* 以下コマンドでインストール開始。フルパスで指定

```sh
sudo apt install /home/fmuser/fms/filemaker-server-20.1.2.207-amd64.deb
```

* 依存パッケージのインストール確認をされるので `y` で進めます
  * Ubuntu 20.04 + FileMaker Server 19.6.1 だと、ここの確認がなくインストールがすすんでいました
  * Ubuntu 22.04 + FileMaker Server 20.1.2.x だと、確認が出てきたので、インストール先の環境依存かもしれない

```sh
Hit:1 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:3 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:4 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [8570 kB]
Get:5 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]        
Get:6 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic/universe Translation-en [4941 kB]
Get:7 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [151 kB]
Get:8 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic/multiverse Translation-en [108 kB]
Get:9 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [2303 kB]
Get:10 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1767 kB]
Get:11 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic-updates/universe Translation-en [381 kB]
Get:12 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [27.3 kB]
Get:13 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic-updates/multiverse Translation-en [6808 B]
Get:14 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages [10.0 kB]
Get:15 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic-backports/main Translation-en [4764 B]
Get:16 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [10.3 kB]
Get:17 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic-backports/universe Translation-en [4588 B]
Get:18 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [1958 kB]     
Get:19 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1150 kB]
  libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1
  libxcomposite1 libxdamage1 libxfixes3 libxft2 libxi6 libxinerama1 libxmu6 libxpm4
  libxrandr2 libxrender1 libxshmfence1 libxt6 libxtst6 libxv1 libxxf86dga1 libxxf86vm1
  odbcinst odbcinst1debian2 openjdk-11-jre openjdk-11-jre-headless policycoreutils
  python3-decorator python3-selinux python3-slip python3-slip-dbus selinux-utils sysstat
  unzip x11-common x11-utils zip
Suggested packages:
  www-browser apache2-doc apache2-suexec-pristine | apache2-suexec-custom avahi-autoipd
  fonts-noto-cjk-extra default-jre libasound2-plugins alsa-utils cups-common liblcms2-utils
  avahi-autoipd | zeroconf libmyodbc odbc-postgresql tdsodbc unixodbc-bin pcscd lm-sensors
  fonts-ipafont-gothic fonts-ipafont-mincho fonts-indic isag mesa-utils
The following NEW packages will be installed:
  apache2-bin apache2-utils at-spi2-core avahi-daemon ca-certificates-java filemaker-server
  firewalld fontconfig fontconfig-config fonts-baekmuk fonts-dejavu-core fonts-dejavu-extra
  fonts-liberation2 fonts-noto fonts-noto-cjk fonts-noto-hinted fonts-noto-mono
  fonts-noto-unhinted fonts-takao fonts-takao-gothic fonts-takao-mincho fonts-takao-pgothic
  fonts-wqy-zenhei ipset java-common libaio1 libapr1 libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-ldap libasound2 libasound2-data libatk-bridge2.0-0 libatk-wrapper-java
  libatk-wrapper-java-jni libatk1.0-0 libatk1.0-data libatspi2.0-0 libavahi-client3
  libavahi-common-data libavahi-common3 libavahi-core7 libcups2 libdaemon0
  libdjvulibre-text libdjvulibre21 libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2
  libdrm-radeon1 libfontconfig1 libfontenc1 libgif7 libgl1 libgl1-mesa-dri libglapi-mesa
  libglvnd0 libglx-mesa0 libglx0 libgomp1 libgraphite2-3 libharfbuzz0b libice6 libilmbase12
  libipset3 libjbig0 libjpeg-turbo8 libjpeg8 liblcms2-2 libllvm10 liblqr-1-0 libltdl7
  liblua5.2-0 libnss-mdns libodbc1 libopenexr22 libpciaccess0 libpcsclite1 libsensors4
  libsm6 libtiff5 libvpx5 libwebp6 libwebpdemux2 libwebpmux3 libx11-xcb1 libxaw7
  libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1
  libxcomposite1 libxdamage1 libxfixes3 libxft2 libxi6 libxinerama1 libxmu6 libxpm4
  libxrandr2 libxrender1 libxshmfence1 libxt6 libxtst6 libxv1 libxxf86dga1 libxxf86vm1
  odbcinst odbcinst1debian2 openjdk-11-jre openjdk-11-jre-headless policycoreutils
  python3-decorator python3-selinux python3-slip python3-slip-dbus selinux-utils sysstat
  unzip x11-common x11-utils zip
0 upgraded, 124 newly installed, 0 to remove and 0 not upgraded.
Need to get 168 MB/512 MB of archives.
After this operation, 2466 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
```

* 依存パッケージのインストール進捗については省略
* 途中で FileMaker Server について訊かれるので、そこも `y` で進める

```sh
Selecting previously unselected package filemaker-server.
Preparing to unpack .../102-filemaker-server_19.4.1.41_amd64.deb ...
=== Perform pre-installation of filemaker-server_19.4.1.41 (install)
    I confirm that I have read and agree to the terms of the Claris FileMaker Server Software License Agreement included with the software.
    Agree(y)        Decline(n) [y/n] 
```

* プライマリ / セカンダリどちらか訊かれるので、任意で。たいていはプライマリのはずなので、ここでは `0` で進めます

```sh
    0) Claris FileMaker Server primary machine
    1) Claris FileMaker WebDirect secondary machine
    Choose 0 to install Claris FileMaker Server primary machine,
    or 1 to install Claris FileMaker WebDirect secondary machine. [0/1] 
```

* AdminConsole へのログインユーザ名を求められるので、入力。何でも構いません

```sh
    Set up the Claris FileMaker Server Admin Console account for Claris FileMaker Server primary machine.
    Use this account when you sign into Claris FileMaker Server Admin Console.
    Enter User Name: 
```

* 次にパスワード入力を二度求められるので、入力。こちらも任意で

```sh
    Create a password to sign into Claris FileMaker Server Admin Console.
    Enter Password: 
    Confirm Password: 
```

* 今度は数字 4 桁の PIN を二度求められるので、こちらも任意で入力

```sh
    Create a 4-digit PIN needed to reset Claris FileMaker Server Admin Console account password via the command line interface.
    Enter PIN: 
    Confirm PIN: 
```

* あとは最後まで進んでいって完了となります。途中のログは消えてしまって読めませんでしたが、最後に残っているものを転記しておきます

```sh
    /opt/FileMaker/FileMaker Server/Database Server/Extensions/OpenSSL/RootCA/apple_corporate_root_ca.pem not existed.
    Set up core dump location at /var/crash.
    Configure Claris FileMaker Server primary machine installation...
    Install default license certificate.
    Create a default Claris FileMaker Server primary machine configuration with English locale.
    Set up WebDirect preferences.
    Set up Web Publishing Engine preferences.
    Open HTTP connection port 80...
    Open HTTPS connection port 443...
    Open Claris FileMaker Server primary machine connection port 5003...
    Open ODBC connection port 2399...
    Open Claris FileMaker Server primary machine connection port 16002...
    Enable and start HTTP server service.
    Enable Claris FileMaker Server primary machine service.
    Start Claris FileMaker Server primary machine service.
    Claris FileMaker Server primary machine service has started.
    Register Claris FileMaker Server Admin Console account information with Claris FileMaker Server primary machine.
    Claris FileMaker Server Admin Console account is set up successfully.
Processing triggers for libc-bin (2.27-3ubuntu1.4) ...
Processing triggers for systemd (237-3ubuntu10.52) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for dbus (1.12.2-1ubuntu1.2) ...
Processing triggers for ca-certificates (20210119~18.04.2) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

done.
done.
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for ureadahead (0.100.0-21) ...
```

* うん、GCE に作るとデフォルトで English になるのは嫌だな……

> Create a default Claris FileMaker Server primary machine configuration with English locale.


### CentOS
* 古い情報ですがアーカイヴ的に残しておきます。Ubuntu 環境であれば関係ないので、次の [fmsadmin コマンドの確認](#fmsadmin-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E7%A2%BA%E8%AA%8D) まで飛ばしてしまってください

```sh
sudo yum install /home/fmuser/fms/filemaker_server-19.1.2-234.x86_64.rpm
```

* まず、以下のようにディスク領域の確保は大丈夫かと訊かれるので y を押して進めてください
    * 領域が確保されていなかったら進めずに、確保してから出直してきましょう

```sh
Loaded plugins: fastestmirror, langpacks
Examining filemaker_server-19.1.2-234.x86_64.rpm: filemaker_server-19.1.2-234.x86_64
Marking filemaker_server-19.1.2-234.x86_64.rpm as an update to filemaker_server-19.0.1-22.x86_64
Resolving Dependencies
--> Running transaction check
---> Package filemaker_server.x86_64 0:19.0.1-22 will be updated
---> Package filemaker_server.x86_64 0:19.1.2-234 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package          Arch   Version      Repository                           Size
================================================================================
Updating:
 filemaker_server x86_64 19.1.2-234   /filemaker_server-19.1.2-234.x86_64 1.5 G

Transaction Summary
================================================================================
Upgrade  1 Package

Total size: 1.5 G
Is this ok [y/d/N]:
```

* y を入力して進めると、以下のようになりますので、また y を入力して進めてください

```sh
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
=== Perform pre-installation...
  A copy of Claris FileMaker Server 19.0.1-22.x86_64 is already installed in this system...
  Stop Claris FileMaker Server process...
  Claris FileMaker Server process is stopped...
  Stop HTTP server services...
  Disable Claris FileMaker Server service...
  Disable HTTP server services...
  Remove Claris FileMaker Server service...
  Remove HTTP server service...
  I confirm that I have read and agree to the terms of the Claris FileMaker Server Software License Agreement included with the software.
        Agree (y)       Decline (n)  [y/n]
```

* FileMaker Server をインストールするか WebDirect の Worker をインストールするか、と訊かれますので、おそらく大半の人は 0 を選んで進めてください

```sh
  0 ) Claris FileMaker Server
  1 ) Claris FileMaker WebDirect Worker
  Choose 0 to install Claris FileMaker Server or 1 to install Claris FileMaker WebDirect Worker. [0/1]
```

* AdminConsole のユーザー名／パスワード／PIN コードの入力が求められるので、任意に入力して進めてください

```sh
  Perform installation for Claris FileMaker Server...
  Set up the Claris FileMaker Server Admin Console account for Claris FileMaker Server.
  Use this account when you sign into Claris FileMaker Server Admin Console.
  Enter User Name: username
  Create a password to sign into Claris FileMaker Server Admin Console.
  Enter password:
  Confirm password:
  Create a 4-digit PIN needed to reset Claris FileMaker Server Admin Console account password via the command line interface.
  Enter PIN:
  Confirm PIN:
```

* 最後にはエラーっぽいメッセージが表示されますが、問題ありません。以下については、 SELinux が disabled なために表示されていますが、セキュリティポリシー上どうしても enabled にしておきたいという方以外は、このままで大丈夫です

> chcon: can't apply partial context to unlabeled file ...


```sh
  Installing : filemaker_server-19.1.2-234.x86_64                           1/1
=== Perform post-installation...
  Set up core dump location at /var/crash...
  Deployment type: Claris FileMaker Server
  Retrieved Claris FileMaker Server Admin Console account information from cache.
  Install default license certificate.
  Create a default Claris FileMaker Server configuration with English locale.
  Open HTTP connection port 80...
  Open HTTPS connection port 443...
  Open Claris FileMaker Server connection port 5003...
  Open ODBC connection port 2399...
  Open Claris FileMaker Server Admin Console connection port 16000...
  Enable and start HTTP server service...
  Enable Claris FileMaker Server service...
  Reload system daemons...
  Check for Avahi daemon...
  Avahi daemon is up...
  Start Claris FileMaker Server service...
  Claris FileMaker Server service has started...
  Waiting for connection session...
  Sending Claris FileMaker Server Admin Console account information to Claris FileMaker Server...
  Claris FileMaker Server Admin Console account is set up successfully.
chcon: can't apply partial context to unlabeled file ‘fmwebd_home.html’
chcon: can't apply partial context to unlabeled file ‘index.html.cloud’
chcon: can't apply partial context to unlabeled file ‘index.html’
chcon: can't apply partial context to unlabeled file ‘fmwebd_home.html’
chcon: can't apply partial context to unlabeled file ‘index.html.cloud’
chcon: can't apply partial context to unlabeled file ‘index.html’
chcon: can't apply partial context to unlabeled file ‘fmwebd_home.js’
chcon: can't apply partial context to unlabeled file ‘TestPage.png’
chcon: can't apply partial context to unlabeled file ‘favicon.ico’
chcon: can't apply partial context to unlabeled file ‘httpsRoot’
chcon: can't apply partial context to unlabeled file ‘fmwebd_home.js’
chcon: can't apply partial context to unlabeled file ‘TestPage.png’
chcon: can't apply partial context to unlabeled file ‘favicon.ico’
chcon: can't apply partial context to unlabeled file ‘htdocs’
chcon: can't apply partial context to unlabeled file ‘logs’
chcon: can't apply partial context to unlabeled file ‘httpdctl’
chcon: can't apply partial context to unlabeled file ‘bin’
chcon: can't apply partial context to unlabeled file ‘mime.types’
chcon: can't apply partial context to unlabeled file ‘httpd.conf’
chcon: can't apply partial context to unlabeled file ‘magic’
chcon: can't apply partial context to unlabeled file ‘httpd-ssl.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-proxy.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-proxy-fmiwebd.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-languages.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-default.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-rewrite.conf.cloud’
chcon: can't apply partial context to unlabeled file ‘rest_disable_mod_proxy.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-mpm.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-fmsadminserver.conf’
chcon: can't apply partial context to unlabeled file ‘https-ss.conf’
chcon: can't apply partial context to unlabeled file ‘http-ss.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-rewrite.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-vhosts.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-rewrite-fmiwebd.conf’
chcon: can't apply partial context to unlabeled file ‘mod_proxy.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-hsts.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-proxy-ssl.conf’
chcon: can't apply partial context to unlabeled file ‘extra’
chcon: can't apply partial context to unlabeled file ‘conf’
chcon: can't apply partial context to unlabeled file ‘httpd.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-ssl.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-proxy.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-proxy-ssl.conf’
chcon: can't apply partial context to unlabeled file ‘worker’
chcon: can't apply partial context to unlabeled file ‘httpd-fmsadminserver.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-rewrite.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-rewrite-fmiwebd.conf’
chcon: can't apply partial context to unlabeled file ‘extra’
chcon: can't apply partial context to unlabeled file ‘.conf’
chcon: can't apply partial context to unlabeled file ‘/opt/FileMaker/FileMaker Server/HTTPServer’
setsebool:  SELinux is disabled.
  Verifying  : filemaker_server-19.1.2-234.x86_64                           1/1

Installed:
  filemaker_server.x86_64 0:19.1.2-234

Complete!
```


## fmsadmin コマンドの確認
### コマンド
* 以下コマンドを打って fmsadmin で使えるコマンド一覧が表示されれば、インストールは無事完了されています

```sh
fmsadmin help commands
```

## 管理画面の表示
### 手元のブラウザで
* FMS 19.4 以後  ( 2023 含む ) で Ubuntu 環境の場合は、以下の通り 443 アクセスでログイン画面が表示されるようになります
  * 証明書入っていないのでブラウザ側で怒られるとは思いますが、強制突破してください

```
https://xxx.xxx.xxx.xxx/admin-console/
```


* CentOS の場合、以下のように 80 ポートで直接アクセスしてください。リダイレクトされて、起動画面が表示されるようになります
    * ここがハマッたポイントでして、いきなり 16000 ポートでアクセスしても、エラーで何も表示されません……一度、 80 ポートでアクセスすることで、次回からは 16000 ポートでアクセスして通じるようになります
    * 証明書をまだ入れていないので、ひとまず http で……

```
http://xxx.xxx.xxx.xxx/admin-console
```


## アンインストールしたくなったら
### Ubuntu

```sh
sudo apt remove filemaker-server
```

### CentOS

```sh
sudo yum remove filemaker_server-19.1.2-234.x86_64
```


# おわりに
## 感想
* GUI 環境のない Linux サーバへ FileMaker Server をインストールして稼働させることができる、というのは、ものすごく大きなメリットです！
* メリットとして、以下のようなものがすぐに挙げられるでしょう（いずれも Windows / Mac 環境で困難なもの）
    * インフラコストの削減
    * 安定稼働
    * 再起動の高速化

## 次の記事
* 今回、起動画面の表示をするところまでおこないましたので、次は実際に、以下の範囲まで進めてみたいと思います
    * 証明書を入れて https 化する
    * 管理者ログイン
    * ファイルをホスト
    * FileMaker Pro 19 / 2023 (20) からのアクセス

* 後編記事
    * [FileMakerServer19をLinuxのCLI 環境のみで稼働](https://qiita.com/Hi_Noguchi/items/f0d0cedc81a807cedbb1)


# （記録）2023/08/15 過去の残骸
## Developer Preview 版として 19.0.1 をインストール済の場合……
* インストールは成功するものの fmsadmin コマンドが有効化されないなどの不具合が発生するので、一度アンインストールしておきましょう
* 以下のコマンドです

```sh
sudo yum remove filemaker_server-19.0.1-22.x86_64
```

* その際、以下のような感じで怒られてしまったら……

> warning: file /opt/FileMaker/lib/libz.so.1.2.11: remove failed: No such file or directory

* 以下のコマンドを打って強制的に削除してしまってください

```sh
sudo rm -r -f /opt/FileMaker/
```

## FileMaker Server 19.4 以前で Ubuntu 20.04 をインストールしようとすると詰む
* FileMaker Server 19.5 以後では Ubuntu 20.04 に対応しているので問題はない
  * しかし FileMaker Server 19.4 以前では Ubuntu 20.04 だと、関連パッケージが存在していないと以下のように依存関係を解消しないといけないと言われてしまって詰むので 18.04 でなくてはならない
    * `libicu60` など各パッケージが 18.04 でしか動かない

```sh: FileMaker Server 19.4 以前で Ubuntu 20.04 環境
The following packages have unmet dependencies:
 filemaker-server : Depends: libicu60 but it is not installable
                    Depends: libevent-2.1-6 but it is not installable
                    Depends: libvpx5 but it is not installable
                    Depends: libopenexr22 but it is not installable
                    Depends: libilmbase12 but it is not installable
```


# （記録）2020/05/21 過去の残骸
* 以下は「失敗レポート」の時の残骸です。実は最後の時点で成功もしていたのですが、管理画面の表示のさせかたが分からなくて失敗と思い込んでいました。色々と勘違い甚だしい読んでも笑いぐさにしかなりませんが、ご参考まで。

## インストールを試す_その１

### コマンド

```sh
cd /home/fmuser/fms/
sudo rpm -ivh filemaker_server-19.0.1-22.x86_64.rpm
```

### 出力エラー

```sh
error: Failed dependencies:
        aide is needed by filemaker_server-19.0.1-22.x86_64
        aspell is needed by filemaker_server-19.0.1-22.x86_64
        avahi is needed by filemaker_server-19.0.1-22.x86_64
        cyrus-sasl is needed by filemaker_server-19.0.1-22.x86_64
        cyrus-sasl-gssapi is needed by filemaker_server-19.0.1-22.x86_64
        cyrus-sasl-md5 is needed by filemaker_server-19.0.1-22.x86_64
        cyrus-sasl-ntlm is needed by filemaker_server-19.0.1-22.x86_64
        httpd is needed by filemaker_server-19.0.1-22.x86_64
        ImageMagick is needed by filemaker_server-19.0.1-22.x86_64
        java-1.8.0-openjdk is needed by filemaker_server-19.0.1-22.x86_64
        libevent is needed by filemaker_server-19.0.1-22.x86_64
        libicu is needed by filemaker_server-19.0.1-22.x86_64
        libxslt is needed by filemaker_server-19.0.1-22.x86_64
        libXpm is needed by filemaker_server-19.0.1-22.x86_64
        libvpx is needed by filemaker_server-19.0.1-22.x86_64
        mod_ssl is needed by filemaker_server-19.0.1-22.x86_64
        mysql-connector-odbc is needed by filemaker_server-19.0.1-22.x86_64
        redhat-lsb-core is needed by filemaker_server-19.0.1-22.x86_64
        t1lib is needed by filemaker_server-19.0.1-22.x86_64
        unixODBC is needed by filemaker_server-19.0.1-22.x86_64
        baekmuk-ttf-batang-fonts is needed by filemaker_server-19.0.1-22.x86_64
        ipa-pgothic-fonts is needed by filemaker_server-19.0.1-22.x86_64
        liberation-fonts-common is needed by filemaker_server-19.0.1-22.x86_64
        liberation-mono-fonts is needed by filemaker_server-19.0.1-22.x86_64
        liberation-sans-fonts is needed by filemaker_server-19.0.1-22.x86_64
        wqy-microhei-fonts is needed by filemaker_server-19.0.1-22.x86_64
        wqy-zenhei-fonts is needed by filemaker_server-19.0.1-22.x86_64
```


## 依存パッケージインストール

### コマンド

- 依存パッケージ一緒にインストールしてよ！！　と想う気持ちを抑えつつ、以下のコマンドでインストール。

```sh
sudo yum install aide aspell avahi cyrus-sasl cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-ntlm httpd ImageMagick java-1.8.0-openjdk libevent libicu libxslt libXpm libvpx mod_ssl mysql-connector-odbc redhat-lsb-core t1lib unixODBC baekmuk-ttf-batang-fonts ipa-pgothic-fonts liberation-fonts-common liberation-mono-fonts liberation-sans-fonts wqy-microhei-fonts wqy-zenhei-fonts
```

## インストールを試す_その２

### コマンド

- さて、依存解決されたはずなので、いざもう一度！

```sh
cd /home/fmuser/fms/
sudo rpm -ivh filemaker_server-19.0.1-22.x86_64.rpm
```

### 出力エラー

- こしゃくな……

```sh
=== Perform pre-installation...
  Claris FileMaker Server is being installed to run as fmserver of fmsadmin group.
  Add fmuser to 'fmsadmin' group...
Updating / installing...
   1:filemaker_server-19.0.1-22       ################################# [100%]
=== Perform post-installation...
  libMagickWand.so.5 does not exist in this system, creating a symbolic link from /usr/lib64/libMagickWand-6.Q16.so.6.0.0 to /usr/lib64/libMagickWand.so.5...
  Set up core dump configuration...
chcon: can't apply partial context to unlabeled file ‘fmwebd_home.html’
chcon: can't apply partial context to unlabeled file ‘index.html.cloud’
chcon: can't apply partial context to unlabeled file ‘index.html’
chcon: can't apply partial context to unlabeled file ‘fmwebd_home.html’
chcon: can't apply partial context to unlabeled file ‘index.html.cloud’
chcon: can't apply partial context to unlabeled file ‘index.html’
chcon: can't apply partial context to unlabeled file ‘fmwebd_home.js’
chcon: can't apply partial context to unlabeled file ‘TestPage.png’
chcon: can't apply partial context to unlabeled file ‘favicon.ico’
chcon: can't apply partial context to unlabeled file ‘httpsRoot’
chcon: can't apply partial context to unlabeled file ‘fmwebd_home.js’
chcon: can't apply partial context to unlabeled file ‘TestPage.png’
chcon: can't apply partial context to unlabeled file ‘favicon.ico’
chcon: can't apply partial context to unlabeled file ‘htdocs’
chcon: can't apply partial context to unlabeled file ‘logs’
chcon: can't apply partial context to unlabeled file ‘httpdctl’
chcon: can't apply partial context to unlabeled file ‘bin’
chcon: can't apply partial context to unlabeled file ‘server.key’
chcon: can't apply partial context to unlabeled file ‘mime.types’
chcon: can't apply partial context to unlabeled file ‘httpd.conf’
chcon: can't apply partial context to unlabeled file ‘magic’
chcon: can't apply partial context to unlabeled file ‘httpd-ssl.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-proxy.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-proxy-fmiwebd.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-languages.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-proxy.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-proxy-ssl.conf’
chcon: can't apply partial context to unlabeled file ‘worker’
chcon: can't apply partial context to unlabeled file ‘httpd-default.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-rewrite.conf.cloud’
chcon: can't apply partial context to unlabeled file ‘rest_disable_mod_proxy.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-mpm.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-fmsadminserver.conf’
chcon: can't apply partial context to unlabeled file ‘https-ss.conf’
chcon: can't apply partial context to unlabeled file ‘http-ss.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-rewrite.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-vhosts.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-rewrite-fmiwebd.conf’
chcon: can't apply partial context to unlabeled file ‘mod_proxy.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-hsts.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-proxy-ssl.conf’
chcon: can't apply partial context to unlabeled file ‘extra’
chcon: can't apply partial context to unlabeled file ‘server.pem’
chcon: can't apply partial context to unlabeled file ‘conf’
chcon: can't apply partial context to unlabeled file ‘httpd.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-ssl.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-proxy.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-proxy-ssl.conf’
chcon: can't apply partial context to unlabeled file ‘worker’
chcon: can't apply partial context to unlabeled file ‘httpd-fmsadminserver.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-rewrite.conf’
chcon: can't apply partial context to unlabeled file ‘httpd-rewrite-fmiwebd.conf’
chcon: can't apply partial context to unlabeled file ‘extra’
chcon: can't apply partial context to unlabeled file ‘.conf’
chcon: can't apply partial context to unlabeled file ‘/opt/FileMaker/FileMaker Server/HTTPServer’
setsebool:  SELinux is disabled.
  Opening port 80 for HTTP connections...
  Opening port 443 for HTTPS connections...
  Opening port 2399 for ODBC connections...
  Opening port 5003 for Claris FileMaker Server inter-process connections...
  Opening port 16000 for Claris FileMaker Server Administration Console connections...
  Enable Claris FileMaker Server service...
  Enable HTTP server service...
  Start Claris FileMaker Server service...
  Claris FileMaker Server service has started...
  HTTP Server has not started yet, wait for 2 seconds...
  HTTP Server has not started yet, wait for 2 seconds...
  Failed to start HTTP server, please reboot the system...
  To access Claris FileMaker Admin Console at a later time, double-click the Claris FileMaker Admin Console shortcut on the desktop.
```

### オマケ：( root ユーザーの場合の ) 出力エラー

- ちなみにroot ユーザーじゃダメってことね……

```sh
=== Perform pre-installation...
  Claris FileMaker Server is being installed to run as fmserver of fmsadmin group.
  Add  to 'fmsadmin' group...
usermod: user '' does not exist
error: %pre(filemaker_server-19.0.1-22.x86_64) scriptlet failed, exit status 6
error: filemaker_server-19.0.1-22.x86_64: install failed
```


## libMagickWand.so.5 の存在確認

### コマンド

- libMagickWand.so.5 が存在しないと言われているので……

```sh
find /usr/lib64/libMagickWand.so.5
```

### 結果

- いやフツーにいるじゃん……
    - （2020/05/22 追記）ここ、後から読み直して気づいたのだけれど、存在しないから作った、というメッセージでしたね。なので、存在確認して、いるのは当然のことでした。

```sh
/usr/lib64/libMagickWand.so.5
```


## インストールを試す_その３

### コマンド

- libMagickWand.so.5 が存在することは確認できたので、再度インストールを試してみる……

```sh
cd /home/fmuser/fms/
sudo rpm -ivh filemaker_server-19.0.1-22.x86_64.rpm
```

### 結果

- え、いやいや、既にインストール済、って、ダメじゃん……！？　chcon: can't apply partial context to unlabeled file っていっぱい出てましたよね……！？

```sh
Preparing...                          ################################# [100%]
        package filemaker_server-19.0.1-22.x86_64 is already installed
```


## OS 再起動してみる
### コマンド

```sh
sudo systemctl reboot
```

## 一度アンインストール……

```sh
sudo rpm -e filemaker_server-19.0.1-22.x86_64
```