For me, two possibilities:
A)
A possible way could be to create virtual machines with VirtulBox, VmWare,... with each installation: Tomcat, Apache, MySql.
For each user, a Virtual Machine.
The virtual machine can be run on user computer or in server computer.
If virtual machine is run in server, each Virtual machine can run in a different IP (create your own net): Ej: 192.168.1.101, 192.168.1.102, ....
Using Apache on main server, you can redirect each http request to each virtual server (
http://server.domain/server1 --> 192.168.1.101).
Also, you can access each machine console with vnc: http://server.domain/vnc1--> 192.168.1.101.
B)
Create installations for each user in the sever: Then you create first installation (ej: for user1) an copy it to user2, user3, ... reconfiguring ports:
Ej:
/opt/user1/
apache/... Port: 1080
tomcat/... Port: 1081
mysql/... Port: 1082
/opt/user2/
apache/... Port: 2080
tomcat/... Port: 2081
mysql/... Port: 2082
...
Also, you can use a main apache,
ex: /opt/apache
which rewrites url to each apache user:
Ex:
http://server.domain/user1 --> send request to Apache or tomcat of user1.
Not sure if that can help you.
Regards