The reason why EventMachine doesn't work in Phusion Passenger is probably because of forking. You can use the :starting_worker_process event in Phusion Passenger to reinitialize EM after forking (see the docs on spawn methods) or use conservative spawning.