gpt4 book ai didi

ruby-on-rails - 使用 Phusion Passenger 和 apache 的 Rails 3 在生产模式下不起作用

转载 作者:行者123 更新时间:2023-12-04 05:39:26 25 4
gpt4 key购买 nike

我有 Rails3、Phusion passenger 3 和 apache。我有一个相当简单的应用程序,带有一个 Controller 和一个 View 来打印 hello world。如果从虚拟主机“RailsEnv development”中删除这一行,我会收到 http 500 错误,如下所示“500内部服务器错误”。如果我放回“RailsEnv development”这一行,应用程序就可以正常工作。是否需要设置有关 passenger 的内容才能使生产正常运行?

我只需要测试我的新乘客安装是否可以在生产模式下工作。

以下是相关配置。 [usertest@test-server web_app1]$ ruby​​ -v ruby 1.9.3p327(2012-11-10 修订版 37606)

[usertest@test-server web_app1]$ which ruby
/usr/local/bin/ruby

[usertest@test-server web_app1]$ cat /etc/apache/conf.d/passenger.conf
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger- 3.0.18/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.18
PassengerRuby /usr/local/bin/ruby

<VirtualHost *:80>
ServerName siteexample.com
DocumentRoot /var/www/mysites/apps/web_app1/public
RailsEnv development
<Directory /var/www/mysites/apps/web_app1/public>
AllowOverride all
Allow from all
Options -MultiViews
Options FollowSymLinks
</Directory>
</VirtualHost>

最佳答案

为了使用 Phusion Passenger 部署到生产服务器,您需要使用 RailsEnv production 指令。

但您还需要确保相关的 Rails 环境配置正确。这些文件存储在 apps/config/environments/ 中,一个新的 Rails 项目附带 3:development(默认)、test生产。您可以通过将文件添加到此目录来添加其他内容,例如 staging

每个文件都有一些对环境有意义的设置。在开发过程中,您需要详细的日志记录、纯文本 CSS 和 JS 文件以及在浏览器中显示的错误。在生产中,您希望一切都尽可能快:简洁的日志记录、编译的 Assets 、用户友好的错误页面。

在您的情况下,Rails 使用的 Assets (尤其是所有 CSS 和 JS 文件)尚未由 Rails“ Assets 管道”处理。预编译 Assets (rake assets:precompile) 有一个 rake 任务,这是默认的 production 环境所期望的。默认开发环境将 CoffeeScript 和 SASS 文件分别即时编译为 JS 和 CSS,否则只进行最少的处理。

因此,作为部署到生产环境的一部分,您需要在添加或更改任何 Assets 时随时运行此 rake 任务。因为每次部署时都需要这个和许多其他类似的细节,所以有一个很棒的 gem,叫做 Capistrano,大多数 Rails 应用程序都使用它来进行部署。可以肯定的是,它完全是另一种野兽,但是随着您在这个过程中走得更远,您肯定会想要考虑它。即使是最低配置的 capistrano 脚本也知道预编译 Assets 并在完成后重新启动服务器,等等。

关于ruby-on-rails - 使用 Phusion Passenger 和 apache 的 Rails 3 在生产模式下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13497488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com