Hello,
to make it short: yes it is possible.
as you wrote, you get your central server running fesl, mysql and apache.
Please dont use xampp for that, the version i'm providing in my guide is very outdated and is vulnerable to heartbleed and other leakages.
Reason for the version is the mysql integration. PHP 7 dropped mysql and makes use of mysqli or pdo_mysql.
So the fesl/apache part has to be ported over to mysqli (i had/have no time for that atm).
Its totally OK for LAN, since no public connection is being made and you dont go into the internet with it.
_____
So i can give you a quick walkthrough for the general setup.
Do change all passwords please, you dont want to get fucked up.
So you setup the masterserver (fesl,apache,mysql) on your central server. You create an .exe with the IP to this master server and must give that out to your players.
You can also create a gameserver instance here if you want, depends on the load you will get.
____
The other servers just get the gameserver and the mods, the gameservers get prepared to throw their gamespy data to your masterserver, which will happen by editing the hostfile of the vServers linux/windows OS.
Here is the hostfile from the guide again for a quick look at, your.ip will be your centralservers IP.
Also, give the gameservers a reasonable name so ppl can read what server supports what mods.
your.ip bf2142-pc.fesl.ea.com
your.ip gpcm.gamespy.com
your.ip stella.available.gamespy.com
your.ip eapusher.dise.se
127.0.0.1 stella.prod.gamespy.com #dont change this
your.ip stella.ms5.gamespy.com
your.ip ea.com
your.ip gamespy.com
your.ip messaging.ea.com
your.ip fesl.ea.com
your.ip gpsp.gamespy.com
your.ip gamestats.gamespy.com
your.ip stella.ms5.gamespy.com
your.ip eapusher.dice.se
your.ip stella.master.gamespy.com
To make your servers pop up in the server browser you need to edit the "customcommands" in ccClient.
Open ccDaemon like in the guide, open up ccLient and open the settings. Fill in this text like in the screenshot:
sv.ranked 1
sv.provider 10011
sv.region AT
sv.type 1
sv.globRank 1
sv.globUnlocks 1
_____
Then you need to add the IP of all 3 gameservers into the mysql of the masterserver, so that he will accept the incoming data and aknowledges them as valid.
Also happens in my guide, here a quick look.
Thats basicly everything.
here is the concept diagram:
I wrote down the .exe's action too.
1. Connection to masterserver, login. User chooses server via server browser.
2. Selected server from browser gets delivered to .exe
3. User gets connected to gameServer.
4.
5. Everything happening on the vServers gets passed to the central Server and gets saved.