我有一个 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/
仅供参考,在我当前正在设置的新服务器上,我计划通过 nginx 服务器运行我的 rails 和 PHP 应用程序。