我可以在同一台机器运行 Rails 和 PHP 服务器吗?

我可以在同一台机器运行 Rails 和 PHP 服务器吗?

我有一个 Ubuntu 10.04,上面已经配置了 LAMP 堆栈。

我也想在这台机器上试用 Rails。有没有办法安装 Rails 而不弄乱 PHP 的东西?也许可以让它默认为 PHP 服务器,并在使用某个端口时切换到 Rails 服务器?

答案1

您误解了如何rails以及怎样php工作。

当你rails server在 rails 项目中运行时,它3000默认在端口上运行它(用于开发)。

LAMP 传统上在 port 上运行80,因此您可以运行两个都同时使用 rails 和 LAMP。

有关在 Ubuntu 上正确安装 rails 的说明,看看这个答案。

答案2

对于生产环境,您应该考虑使用 Apache 来为您的 Rails 项目提供服务。

简单的方法是使用 Apache mod-fcgid 并通过 fcgid 运行 rail 项目。

http://gabrito.com/post/running-ruby-on-rails-with-apache-2-and-mod_fcgid

为了获得更好的性能,通常首选 mod-passenger。但是对于初学者来说,安装起来可能比较困难,因为 Ubuntu 默认安装的是 apache2-mpm-prefork + mod-php5。mod-messenger 依赖于 apache2-mpm-worker,但 mod-php5 与 apache2-mpm-worker 不兼容。

我将 mod-passenger 与 apache2-mpm-worker 一起使用,并使用 mod-fcgid 运行 php 脚本。

https://help.ubuntu.com/community/RubyOnRails#Configure_Apache

答案3

是的!只要您在不同的端口运行它们...例如,Rails 使用 localhost:3000,PHP 使用 8888 就可以正常工作!

答案4

在较旧的虚拟云服务器上,我拥有大约 10 个小型 Web 应用程序,并在单个服务器上同时使用 Nginx 来运行我的 Rails Web 应用程序,使用 Apache 来运行我的 PHP 应用程序(还请注意,使用 Phusion Passenger 来运行 Rails 应用程序)。Nginx 被设置为主服务器。在 nginx 配置文件的虚拟主机部分,如果请求的 URL 是 PHP 应用程序,则 nginx 将充当反向代理并将请求交给 Apache 服务器。这很有效,因为从外部看来,所有应用程序都通过同一个端口 80 运行。我没有我所遵循的原始设置文章的链接,但这里有一些类似的文章。

http://kbeezie.com/apache-with-nginx/

https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-as-a-reverse-proxy-for-apache

仅供参考,在我当前正在设置的新服务器上,我计划通过 nginx 服务器运行我的 rails 和 PHP 应用程序。

相关内容