A partir da descrição atual, não vejo por que uma configuração de host virtual padrão no Apache (ou, de fato, qualquer que seja seu servidor HTTP favorito), não funcionaria.
Comece lendo sobre hosts virtuais baseados em nomes aqui: link que deve fornecer os "três hosts com domínios distintos" parte.
A execução do PHP e do Ruby pode ser configurada em um host virtual, mas a configuração exata dependerá da instalação e do aplicativo.