Могу ли я запустить Rails и PHP-серверы с одного компьютера?
У меня есть Ubuntu box 10.04, на котором уже настроен стек LAMP.
Я также хотел бы поиграть с Rails на этой машине. Есть ли способ, которым я могу установить Rails, не испортив вещи PHP? Может быть, по умолчанию на сервере PHP и переключиться на сервер Rails, когда я использую определенный порт?
4 ответа
Вы неправильно понимаете, как rails
а также php
Работа.
Когда ты бежишь rails server
в проекте rails он запускает его в порту 3000
по умолчанию (для разработки).
ЛАМПА традиционно работает в порту 80
, так что вы можете запустить оба рельса и LAMP одновременно.
Для получения инструкций по правильной установке rails на Ubuntu взгляните на этот ответ.
Да! если вы запускаете их в разных портах... например, localhost:3000 для Rails и 8888 для PHP будут работать нормально!
В производственной среде вы должны рассмотреть возможность использования Apache для обслуживания ваших проектов Rails.
Самый простой способ - использовать Apache mod-fcgid и запускать железнодорожные проекты через fcgid.
http://gabrito.com/post/running-ruby-on-rails-with-apache-2-and-mod_fcgid
Для лучшей производительности, мод-пассажир, как правило, предпочтительнее. Но для начинающих это может быть сложнее, поскольку Ubuntu по умолчанию устанавливает apache2-mpm-prefork + mod-php5. mod-messenger зависит от apache2-mpm-worker, но mod-php5 несовместим с apache2-mpm-worker.
Я использую mod-passenger с apache2-mpm-worker и запускаю скрипт php с помощью mod-fcgid.
На более старом виртуальном облачном сервере у меня было около 10 небольших веб-приложений, и я использовал Nginx для моих веб-приложений на Rails и Apache для моих PHP-приложений на одном сервере (также обратите внимание на Phusion Passenger для приложений rails). Nginx был установлен в качестве основного сервера. В разделе виртуальных хостов файла конфигурации nginx, если запрошенный URL-адрес был для приложения PHP, тогда nginx будет служить обратным прокси-сервером и передавать запрос на сервер Apache. Это работает хорошо, потому что снаружи кажется, что все приложения работают через один и тот же порт 80. У меня нет ссылки на исходную статью по установке, за которой я следовал, но вот несколько похожих.
http://kbeezie.com/apache-with-nginx/
К вашему сведению, на новом сервере, который я сейчас настраиваю, я планирую запускать как свои rails, так и PHP-приложения через сервер nginx.