Linux版FileMaker Server 19.5.1のインストール

昨日19.5.1がリリースされたので早速EC2にUbuntu 20.04 LTSのインスタンスを作ってインストールしてみた。

## EC2
インスタンスの起動でUbuntu 20.04 LTSを選択
キーペアを作成して.pem(.cer)はローカルの.sshに保存してchmod 400 キーの名前.拡張子 を実行しておく
インスタンスが作成されて使用できるようになったら以下でSSH接続する（アドレスはEC2ダッシュボートの実行中のインスタンスを選択して表示されるIPv4 パブリック IPに記載されているもの）
```
$ ssh -i ~/.ssh/キーの名前.拡張子 ubuntu@<グローバルIPアドレス>
```
20.04 LTSに間違いない
```
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.13.0-1029-aws x86_64)

* Documentation:  https://help.ubuntu.com
* Management:     https://landscape.canonical.com
* Support:        https://ubuntu.com/advantage

 System information as of Fri Jun 17 03:47:17 UTC 2022

 System load:  0.0               Processes:             102
 Usage of /:   19.2% of 7.58GB   Users logged in:       0
 Memory usage: 21%               IPv4 address for eth0: 172.31.3.43
 Swap usage:   0%

1 update can be applied immediately.
To see these additional updates run: apt list --upgradable



The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

ubuntu@ip-172-31-3-43:~$
```
タイムゾーンを日本に設定
```
$ sudo timedatectl set-timezone Asia/Tokyo
```
確認
```
$ timedatectl
              Local time: Fri 2022-06-17 12:57:40 JST
          Universal time: Fri 2022-06-17 03:57:40 UTC
                RTC time: Fri 2022-06-17 03:57:40    
               Time zone: Asia/Tokyo (JST, +0900)    
System clock synchronized: yes                        
             NTP service: active                     
         RTC in local TZ: no 
```
アップデート
```
$ sudo apt-get update
$ sudo apt-get upgrade
```
FTP
proftpdをインストール
```
$ sudo apt-get install proftpd
```
FileZillaでプロトコルにSFTP、ログオンタイプに鍵ファイルを設定しEC2でインスタンス作成時に作成した秘密鍵を指定して接続できることを確認

## FileMaker Server
ダウンロード（以下URLやファイル名は適宜変更）
```
$ wget https://downloads.claris.com/esd/fms_19.5.1.43_Ubuntu20.zip
```
unzipがなければ
```
$ sudo apt install unzip
```
解凍してインストール
```
$ unzip fms_19.5.1.43_Ubuntu20.zip
$ sudo apt install ./filemaker-server-19.5.1.43-amd64.deb
```
詳細は以下を参照
https://community.claris.com/ja/s/article/FileMaker-Server-Linux-OnPrem-VolumeLicense

Admin Consoleにアクセス
https://＜サーバーのアドレス＞/admin-console

FTPでファイルをアップロードした後に所定の場所(/opt/FileMaker/FileMaker Server/Data/Databases/)にコピーしてパーミッションを変更
```
$ sudo cp -r WanData /opt/FileMaker/FileMaker\ Server/Data/Databases/
$ cd /opt/FileMaker/FileMaker\ Server/Data/Databases/
$ sudo chmod -R 755 WanData/
$ sudo chown -R fmserver WanData/
$ sudo chgrp -R fmsadmin WanData/
```
## SSL証明書
Elastic IPを取得してインスタンスに関連づけておく
Freenomなどでドメインを取得してAWSのRoute53のネームサーバーを登録、ElasticIPを紐付け
DNSが浸透していく様子を確認できるサイト
https://www.whatsmydns.net
Certbotクライアントをインストール
```
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
```
Let's Encrypt証明書を取得（80番ポートを使ってるのでFileMaker Serverを止めてから）
```
$ sudo service fmshelper stop
$ sudo certbot certonly --email <メールアドレス> -d <取得したドメイン> --agree-tos --standalone
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for <取得したドメイン>

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/i-wan.ga/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/i-wan.ga/privkey.pem
This certificate expires on 2022-09-15.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the 
background.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
```
証明書の情報は以下で確認できる
```
$ sudo certbot certificates
```
作成された証明書をFileMaker ServerのCStoreフォルダにコピー
```
$ sudo cp /etc/letsencrypt/live/<取得したドメイン>/cert.pem /opt/FileMaker/FileMaker\ Server/CStore/
$ sudo cp /etc/letsencrypt/live/<取得したドメイン>/chain.pem /opt/FileMaker/FileMaker\ Server/CStore/
$ sudo cp /etc/letsencrypt/live/<取得したドメイン>/privkey.pem /opt/FileMaker/FileMaker\ Server/CStore/
```
FileMaker Serverにインポート
```
$ sudo service fmshelper start
$ sudo fmsadmin certificate import /opt/FileMaker/FileMaker\ Server/CStore/cert.pem --keyfile /opt/FileMaker/FileMaker\ Server/CStore/privkey.pem --intermediateCA /opt/FileMaker/FileMaker\ Server/CStore/chain.pem
```
FileMaker Serverを再起動
```
$ sudo service fmshelper restart
```
3ヶ月後の期限がきたら
※certbot renew で「Failed to renew certificate i-wan.ga with error: Could not bind TCP port 80 because it is already in use by another process on this system (such as a web server). Please stop the program in question and then try again.」エラーが出る（FileMaker Serverのnginxが停止できていない）ときは reboot してから service fmshelper stop した後に実行してみる
```
$ sudo service fmshelper stop
$ sudo certbot renew
...
$ sudo cp /etc/letsencrypt/live/<取得したドメイン>/cert.pem /opt/FileMaker/FileMaker\ Server/CStore/
$ sudo cp /etc/letsencrypt/live/<取得したドメイン>/chain.pem /opt/FileMaker/FileMaker\ Server/CStore/
$ sudo cp /etc/letsencrypt/live/<取得したドメイン>/privkey.pem /opt/FileMaker/FileMaker\ Server/CStore/
...
$ sudo service fmshelper start
$ sudo fmsadmin certificate import /opt/FileMaker/FileMaker\ Server/CStore/cert.pem --keyfile /opt/FileMaker/FileMaker\ Server/CStore/privkey.pem --intermediateCA /opt/FileMaker/FileMaker\ Server/CStore/chain.pem
...
$ sudo service fmshelper restart
```
## おまけ
htdocs（トップページを変えるとか）
```
$ ls -l /opt/FileMaker/FileMaker\ Server/NginxServer/htdocs/httpsRoot
```
nginxの設定を変更（セキュリティとか）
```
$ sudo vim /opt/FileMaker/FileMaker\ Server/NginxServer/conf/fms_nginx.conf
```
再起動はfmshelperで
```
$ sudo service fmshelper restart
```

以上