You can run FileMaker Server on Mac OS X or Windows, but not Linux. But you can have a Linux based web server accessing either OS and it is quite simple to setup and run. The bonus is that because you’re following a standard FileMaker Server install it should still be a supported configuration.
To start with, choose your FileMaker Server OS, and install FMS as a Single Server option. You can then use firewalls if required to block this machine from unwanted access. You still need a web server on this box, so in our case this is IIS, but it’s firewalled off from public access and limited to access only from our Linux Web Server.
We chose Ubuntu 10 for our Linux box. Anyone with some Linux experience could replicate these steps on other platforms though.
The FileMaker API
First get a copy of the FileMaker API files, they’re already provided in the FileMaker Server install at :
FileMaker Server\Web Publishing\FM_API_for_PHP_Standalone.zip
Take these zip files and move them to the Linux box, and unpack them somewhere that’s NOT in the web root folder, for example in :
/home/myname/FileMaker
You then need to add this folder into the php.ini file, in the include_path option. So our new include_path was now :
include_path = '.:/home/myname/FileMaker:/usr/share/php:/usr/share/pear'
Also our default PHP install needs a couple of extra packages to work. PEAR Date.php and curl are required, so install those:
apt-get install php-date
apt-get install php5-curl
Finally edit the conf files inside the unpacked API to point to the actual FMS host. This file is located at :
FileMaker/conf/filemaker-api.php
in whatever folder you unzipped the API files previously. There is an option in there for $__FM_CONFIG[‘hostspec’]. You need to change the hostspec setting to be the IP or domain name of the FMS box.
And finally restart Apache and you should be all good to go.
Troubleshooting
If it’s not working, check your firewalls. The two web servers ( Apache on Linux and IIS on Windows ) need to be talking to each other via port 80. Also, check the web and PHP logs on both machines for other clues or issues.
Using IWP
This works perfectly well with Instant Web Publishing as well. You need to add another step whereby you use a Reverse Proxy to direct just those urls to the internal FileMaker Server address. So this would be something like :
ProxyPass /fmi/iwp/ http://your.fms.domain/fmi/iwp/
ProxyPassReverse /fmi/iwp/ http://your.fms.domain/fmi/iwp/
This can go in your .htaccess file if you’re using those or in a VirtualHost section for multiple domains as well.