they can be served off the same box with the same IP address.
I do this myself using web/2 ([link|http://dink.org|http://dink.org]) on warp, let alone apache on (presumably) linux. You have to configure the server to recognise different sites, and typically you'll have a file tree for each site, with a pointer in the config files tying together name and folder.
I can tell you how to do this in web/2 in thirty seconds, but I'm not so up on my apache-fu. Still, it shouldn't be too hard to find out how to do this in the docs. It may even be that a quick perusal of the actual config files might have all the info you need to set it up.