Is there a general purpose framework that can accomplish this or do they become specific per coin?
Not that i am aware of. There are payment processors which do accept several altcoins for you.
But this costs a fee for each payment.
If I did this myself, I'd just have a wallet on the server (sounds horrible though) and then interact with it's cli while processing server requests?
You don't need a wallet on your server.
You just need a node (or several nodes; one for each crypto). You don't need to keep your wallet (private keys) on the server.
Simply create a HD wallet offline and import the xpub to your server. This will allow your server to generate receiving addresses on demand, without having the private keys on the server.
You could also pre-generate a bunch of addresses offline (e.g. 10.000) and import them into your database. Then simply use the addresses 'as needed'. This requires you to 'fill' the address pool mannually.
Communicating with the node can be done via RPC. Quite a few libaries are available (at least for bitcoin, not sure how much is available for 'less-known' alts).