- Why the Switch from CentOS to Ubuntu?
- Why No Desktop?
- The Installation Process
- Moving FileMaker Server Files to Your New Server
- Shutting Down and Restarting
- Next Steps
The original Linux version of FileMaker Server, released as 19.1 and updated in 19.2.1, ran on CentOS 7. With FileMaker Server 19.3.1 (released on June 23, 2021), the supported Linux Operating System is now Ubuntu 18.04 LTS.
Why the Switch from CentOS to Ubuntu?
CentOS (Community Enterprise Operating System) is derived from Red Hat Enterprise Linux (RHEL). Traditionally CentOS has prioritized stability over technical novelties; it would get updated only after the other operating systems in the Red Hat family had already applied them for a while. By receiving updates last – after they have been battle-tested in the upstream OSes: Fedora, CentOS Stream, and RHEL – there was an inherent stability and predictability that made CentOS a perfect fit for servers. That is why it was chosen for FileMaker Cloud and the original FileMaker Server 19.1.2 back in October of 2020.
A recent decision by Red Hat to reposition its two CentOS versions by dropping CentOS and only keeping CentOS stream means that the only remaining CentOS will start receiving updates ahead of its flagship Red Hat Enterprise Linux (RHEL) instead of after. That decision has created some uncertainty about its future and has taken away some of that promise of stability that comes from being conservative in adopting changes.
That change has been one of the driving factors for Claris in prioritizing Ubuntu as the main platform for FileMaker Server.
There are other considerations for possible future features such as containerized deployment that make Ubuntu the better option.
The CentOS deployment option is now officially deprecated but remains supported on FMS 19.1.2 and 19.2.1.
As always: feel free to reach out to me on community.claris.com with any questions or suggestions. My community handle is wimdecorte.
Why No Desktop?
Claris supports using either the Ubuntu Desktop version or the Ubuntu Minimal (server) version. We very strongly favor using only the Minimal (server) version: Linux servers are best run without any desktop UI installed on them.
Having fewer packages to maintain translates into more robustness, and fewer required resources (memory, disk space, etc.), and most importantly: better overall security.
Choosing the desktop version because it is more convenient in the short term is a deployment faux-pas. And insisting on a Desktop for your Linux server may just alienate the IT department you are trying to get cooperation from.
That leaves us with the command line to move around and get things done. We realize that for many, that is a daunting prospect because it is unfamiliar. But we can assure you: it is not half as scary as you may think it is. In this document, we will highlight useful commands to help you master this new operating system. And having a good set of tools helps tremendously.
Two specific tools can help you along: a good terminal emulator that lets you save hosts and settings and a text snippet/text expander tool that you can use to quickly access those useful commands without having to learn them by heart. You will see such a tool in action in the next sections.
Connections to your Linux server will be made through a Secure Shell connection (SSH) so that you can access the command line environment of your server from your machine. This is a similar concept to a remote desktop connection that you are no doubt familiar with.
A typical command line connection to your Linux server would be initiated like this:
which will prompt you for the Ubuntu password
If your Linux server is on AWS, you will need to include the path to your private key like this:
ssh -i /path/to/private-key.pem ubuntu@server_dns_name
Similarly, to move files to and from your Linux server, you will be using Secure Copy (SCP) or SSH File Transfer (SFTP, not to be confused with FTPS, which is the secure version of FTP). Do not be tempted to enable other forms of file-sharing such as the SMB protocol, as those will just add to your server’s security maintenance.
If your main workstation is macOS, then many of the command lines to do SSH and SFTP are already built into your operating system. On Windows, the go-to utilities to download and install are PuTTy and PuTTY SCP (PSCP) from https://putty.org/.
The Installation Process
This writeup uses an AWS virtual machine, which makes installing Ubuntu as easy as picking the right Amazon Machine Image (AMI).
You can also go straight to the Community AMIs section in AWS, select Ubuntu and 64-bit and further reduce the list by filtering on 18.04 minimal. The list will then still show a lot of AMIs, so pay attention to the release date at the end of the AMI name when you pick one. The selection list on the Ubuntu site itself is easier.
If you want to install Ubuntu yourself on physical hardware or in your own virtualization environment (VMware, VirtualBox, etc.), then download the Server Install Image ISO for version 18.04. Follow the links provided here.
The link will take you to the most recent ISO disk image to install from:
The ideal Ubuntu version is 18.04 Minimal, which doesn’t mean version 18.04 and up. It means the Minimal version of 18.04. The minimal version does not have all the desktop bells and whistles; it is the version of Ubuntu geared towards stable, secure, and reliable server deployments.
Every two years, Ubuntu releases a Long Term Support version. LTS releases are the ‘enterprise grade’ releases of Ubuntu and are used the most. The overwhelming majority of all Ubuntu installations are LTS releases, making perfect sense for Claris to make this the supported version. The Ubuntu release cycles are documented here.
Some Preliminary Notes
Some of the commands that you will see throughout this guide will use sudo in front of them. Sudo means “superuser do,” which allows the command that follows to be run under higher privileges than the account you are logged in with. When you try a command, and it fails because it requires those elevated rights, it will typically tell you so that you can try again with sudo in front of it.
All Linux distributions use a Package Manager to keep track of software that you can install and available upgrades. “apt” is the command line package manager that Ubuntu and other Debian-based Linux versions use. Whenever you need to install something, you will invoke apt.
Like most operating systems, Ubuntu can use a software firewall. The most common one is called firewalld. That is the one that the FileMaker Server installer will expect and configure.
Correct Version of Ubuntu
First, check the version of Ubuntu and verify that it is 18.04, the version required by FileMaker Server. One of the commands that will let you do that is:
If you do not have the required version of Ubuntu (and the latest LTS 20.04 is NOT supported), then make sure to follow the steps outlined above to grab the supported version.
Next, check to see if your machine has firewalld installed:
apt list --installed | grep firewall
If it does not, then the command will return empty, which is expected on a brand new operating system install since firewalld is not part of the default packages.
If the firewall is installed, you will see a confirmation (look for firewalld):
While not strictly necessary since the FileMaker Server installer will take care of it, I tend to install firewalld myself.
The other application that I add immediately is unzip.
This command will install both:
sudo apt -y install firewalld unzip
If you get an error that firewalld is not available, then you may need to update the available packages first on your machine and run the available upgrades:
sudo apt update && sudo apt upgrade
Also on my list of must-have tools is a text editor that I am familiar with and Ubuntu has my favorite text editor nano pre-installed.
(I know Linux aficionados will call me a wuss, but I just don’t like the built-in vi text editor.)
For a standard FileMaker Server installation, you won’t need a text editor. Still, it comes in handy to quickly review log files or for more heavy-duty work such as configuring custom OAuth providers.
Ubuntu uses the UTC time zone by default; if needed, you can adjust the time zone for your server at this time:
sudo timedatectl set-timezone America/Toronto
Getting the FileMaker Server Installer to the Server
The FileMaker Server installer will typically be a zip file that you download from your Claris Electronic Software Download page. There are a number of different ways to get the file to your server.
I use a tool called Termius since I have many Linux servers and IoT devices to connect to. It also lets me store presets for all my servers (and synchronize them across my multiple laptops and mobile devices).
Termius has support for SSH, and it has a very nice SFTP interface built into it. That makes the task of moving a file as simple as selecting “Local” on the left and my server on the right and just copying the file between the two.
By default, this would put the file in the home folder of the ubuntu user account on the Linux server.
In the Linux terminal, you can always type the following command to find out what directory you are in:
(which stands for print working directory)
From wherever you are, you can always get to the logged-in user’s home folder by using this command
One alternative way to move files around – and one that I often use – is to use Amazon S3 to store the installer. Since I will use S3 to make my FileMaker Server store some offsite backups, I tend to install the AWS S3 command line toolset immediately after installing Linux. Instructions on how to this are located here. You will need to have unzip installed already at this point.
The commands required to install AWS CLI are already a part of my library of snippets in Termius so that I don’t have to remember them or look them up: all I have to do is paste or run the snippet.
With the AWS command line tools installed, I can grab the installer from one of my S3 buckets and drop it in the folder where I am currently located, like so:
aws s3 cp s3://my_bucket_name/FMS_installer.zip ./
As an added bonus, if your FileMaker Servers are AWS EC2 instances, then moving files around between AWS services like EC2 and S3 are *very* fast.
To verify that the FileMaker Server installer made it through ok, you can ask for a list of files. I tend to use the command below since it also shows me the file sizes in a nicely readable format:
Unzip the installer to reveal the .deb file, which is the actual installer package. The unzip command below will place all the extracted files in the folder where the zip file is. If you want to have the files placed in a subfolder, use the -d command parameter and specify the name of the folder (the command will create it for you).
The README file has instructions on how to execute the deb package and how to use the Assisted Install file to limit the number of interactions with the installer. This is a good use for your favorite text editor.
To read the file:
sudo nano README_Installation_English.txt
This brings up the nano text editor, where you can navigate around with the keyboard arrows. When you are done, hit ctrl-x to quit the editor.
Installing FileMaker Server
Before you install, run this command to make sure that Ubuntu is up-to-date on all available packages:
sudo apt update
As per the README file instructions, run the following command to install FileMaker Server from the folder where you have unzipped the deb file into. Note that the deb package’s actual file name may be slightly different depending on what version and build number are current at the time you do this.
sudo apt -y install ./filemaker-server_18.104.22.168_amd64.deb
If you want to make use of the assisted installer (to preset some installation choices such as master or worker, admin console account name, password, and PIN), you can prepend the command with the folder location of that text file:
sudo FM_ASSISTED_INSTALL=/path/to/folder apt -y install ./filemaker-server_22.214.171.124_amd64.deb
The install command will download and install all the dependencies that FileMaker Server needs. Unless you are using the Assisted Install file, there are a few points during the installation that will require input from you:
Agreeing to the License Agreement:
Choosing between a single or master installation and a worker machine installation:
Setting up a username, password, and PIN for admin console access:
At the end of the install process (which typically takes no more than a minute or two), you’ll see a confirmation like this:
But do scroll up through the output to check if any errors were reported along the way. “done.” does not automatically mean that all is well. This is one of the main reasons we always capture the output in a log file.
Pay particular attention to anything in this section:
If there are any issues with starting the web server, they will be noted there.
After installation, always check to see if the FileMaker Server services are running and also if the web server is running since you’ll need that for the admin console. Ask the system for a list of running processes (ps) and search that list for three particular strings: fm for the FileMaker-related services and apache for the web server ones and fac for the admin console:
sudo ps -e | grep -e fm -e apache -e fac
If all is well, there should be several apache2 web server processes and all the relevant FileMaker Server standard processes: fmserverd for the database engine, fmshelper and fmslogtrimmer for the admin part, fmsib for incremental backups, fmsased for the server-side scripting engine (schedules and PSoS), and facstart.sh for the admin console. If you do not see this initial list, then check again after the reboot discussed below.
Note: FileMaker Server on Linux uses Avahi to allow for mDNS connectivity on your network. That is the same functionality that is provided by Bonjour on Windows and macOS FileMaker Server deployments. If you do not need Bonjour-like functionality for your FileMaker Server, then you can stop the Avahi service and disable it from starting automatically. Disabling it has no effect on FileMaker Server:
sudo service avahi-daemon
stop sudo systemctl disable avahi-daemon
During the installation process, you will have noticed that FMS suggests a reboot:
At this point, only the Sample file is being hosted, but good habits are important, so we’ll tell FileMaker Server to close the file first.
fmsadmin close -y -u -p <you admin username> -p <your admin password.
sudo reboot now
Wait a few minutes, then log back in and run the two commands to check if the FileMaker-related services are up and running with the ps command listed above.
Getting to the Admin Console
At this point, we have a working FileMaker Server installation, but FileMaker Server does not yet have an SSL certificate installed. Getting to the admin console may be different depending on your preferred brow. The trick is to get past the initial security warnings until you can get your custom SSL certificate installed.
FileMaker Server configures the Linux firewall automatically and opens these ports on the firewall: 80/tcp 443/tcp 2399/tcp 5003/tcp 16000/tcp
The server we are using for this demo is an AWS EC2 instance, so we are going to use the IP address, but we still have to use https since port 16000 only listens to https requests to complete the full admin console login url:
https://<IP address of your server>:16000/admin-console/signin
This brings us to the expected security warning page:
After telling the browser that we are ok with the risks, we can get to the admin console:
The rest of the process is the same as installing FileMaker Server on Windows or macOS, and it starts by installing a custom SSL certificate. With that certificate in place, you will then reach the admin console on the URL mentioned above but with the full DNS name covered by the SSL certificate.
Two configuration changes I make immediately and that I consider to be very important best practices:
- Turn on the Server Statistics log; it is the #1 source of baseline and troubleshooting information. I typically also enable the Top Call Statistics log – more data is better than less data.
- Turn off the auto-host feature; I do not want FileMaker Server to open files on startup. If the machine goes down, I want to have a chance to inspect the logs and possibly revert to a backup before users start accessing potentially bad files.
One thing that you will note when it comes to enabling the FileMaker Server web publishing engine: FileMaker Server already installed OpenJDK as one of its dependencies. In the install log, you will find something like this:
Get:51 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-updates/main amd64 openjdk-11-jre-headless amd64 11.0.10+9-0ubuntu1~18.04 [37.5 MB]
That means that you don’t need to download it yourself and then upload it to FileMaker Server through the admin console; you can just toggle the web publishing engine switch, and you are all set.
The server needs to be rebooted at this point for the custom SSL certificate to be recognized. Use the admin console to close the Sample file and stop the database server from the General Settings. While there is nothing crucial on that server yet, and both of these actions would normally happen when you reboot the OS anyway; manually closing the files and stopping the database server is:
- A good habit to get into
- An opportunity to verify that everything about FileMaker Server is working normally and it gives you a chance at catching any errors that may come up
After stopping the database server, go back to your server and either start and stop the FileMaker Server service:
sudo service fmshelper stop
sudo service fmshelper start
Or just reboot the server:
sudo reboot now
Moving FileMaker Server Files to Your New Server
By far, the easiest way to get your FileMaker files onto the server is by using the upload feature in FileMaker Pro:
For one thing, this makes sure that the ownership and rights are set correctly at the operating system level so that FileMaker Server can operate on them.
But there certainly are times when it is impractical to use this method. In those situations, you can use the same mechanisms as described above: SCP, SFTP, or AWS S3. But you will then have to move those files to their proper location, and – just as with macOS – you will need to use the chmod and chown command lines to set the owner and rights.
FileMaker Server is installed in this location: /opt/FileMaker/FileMaker Server/
The folder structure there is exactly the same as for the Windows and macOS versions of FileMaker Server.
Files that you want to host go in /opt/FileMaker/FileMaker Server/Data/Databases/
You can glean what the proper OS-level rights and ownership needs to be from the screenshot. The commands to set those after you move your files into the proper location are:
sudo chmod 755 -R /opt/FileMaker/FileMaker\ Server/Data/Databases/
sudo chown fmserver:fmsadmin -R /opt/FileMaker/FileMaker\ Server/Data/Databases/
((Remember that you can use the tab key to auto-complete paths as you type.)
Shutting Down and Restarting
The same best practices apply for operating the Linux machinery as with what you would do on Windows or macOS. Before doing anything else, always make sure all your files are closed.
fmsadmin close -y -u <your admin username> -p <your admin password>
If needed, you can also stop the FileMaker Server service itself:
sudo service fmshelper stop
To reboot the machine, you can use:
sudo reboot now
And to completely shut down the machine, use:
sudo shutdown now
The Admin Console in 19.3.1 brings back the ability to review the logs directly in the admin console.
Sometimes it is handier to check the logs directly while you are on the server’s terminal. And there are a few critical places where OS-level logs are kept that are not available through the Admin Console.
FileMaker Server keeps its logs in its usual logs folder, which you will find here:
As usual, we highly recommend that you enable the regular Stats.log to have relevant performance data.
You can use nano to open each of these files and look for information about what could be wrong. Since some of these files can be quite big, you can use the tail command to view the last few lines. Tail defaults to the last ten lines, but you can choose how many lines you want to see by specifying the -n parameter. This example will show the last 25 entries from the event log:
tail -n 25 /opt/FileMaker/FileMaker\ Server/Logs/Event.log
In addition to the FileMaker Server logs folder’s logs, FileMaker Server will also produce crash logs in the /var/crash/ folder if one of its processes crashes.
To list the crash logs, do:
sudo ls -alh /var/crash/
When you see files listed there with a FileMaker Server process name as part of their file name, open a support ticket with Claris.
A very useful command to see which processes are consuming the most resources is top. As with all command-line tools, you can read up on how to use this command right from the machine itself by asking for the manual:
(Press q to quit the manual.)
A command we have used before can come in handy here: the list of FileMaker Server processes, which will give us the process IDs to give to top to show us just what those processes are doing. For example, if we want to see just how the database server process (fmserverd) and the script engine process (fmsased) are doing, we give top just those two process ids like this:
top -p1499 -p1557
Ubuntu and its various services keep their own logs which you will typically find in /var/log/. These are also tremendously useful in troubleshooting your server.
Other Useful Linux Commands
Another way to check the version of Ubuntu you are dealing with, use:
sudo cat /etc/*-release
If you are uncertain what hardware the server is running under, you can use:
sudo lshw -short
and to quickly get a count of the number of processors, there are:
To see how much free disk space there is, in a readable format:
Checking FileMaker Version, Build, License Key, and Hostname
While you are on the server, you may want to check what version of FileMaker Server is installed. The obvious command is:
Unfortunately, that will only tell you the major and minor versions but not the build number unless you also know the admin console username and password.
If you do know those credentials, you can enter them (or provide them with the -u and -p command-line options). This will show you the full version, including the build number as well as the license key and hostname:
If you do not know the admin console credentials, then you can still get the version and build info from the yum package manager:
apt list --installed | grep filemaker
sudo dpkg -l | grep -i filemaker
And to get even more info about the FileMaker Server package that has been installed:
apt show filemaker-server
We hope to have given you a good head-start on setting up your first Linux FileMaker Server. Look for our other write-ups on https://www.soliantconsulting.com/blog/ that deal specifically with upgrading FileMaker Server. As always, feel free to leave comments and questions and find us on community.claris.com for follow-ups.