【问题标题】:Cannot start ruby on rails application on server but works locally, wrong environment path无法在服务器上启动 ruby​​ on rails 应用程序但在本地工作,错误的环境路径
【发布时间】:2021-04-26 19:51:33
【问题描述】:

我遇到了一个问题,它阻止我在生产服务器上启动我的 Ruby on Rails 应用程序,尽管它在开发和暂存环境中都能正常运行。错误信息如下:

[ E 2021-04-26 14:53:39.4216 14896/T11 age/Cor/App/Implementation.cpp:221 ]: Could not spawn process for application /path/to/application: The application encountered the following error: No such file to load -- /path/to/application/app/config/environment.rb (LoadError)

出于某种原因,Passenger 试图在 app 文件夹中找到 config/environment.rb,而它应该只是在寻找:

/path/to/application/config/environment.rb

Passenger 正在使用 Apache 进行配置,站点配置如下所示:

<VirtualHost *:80>
  # PassengerFriendlyErrorPages on
  # PassengerStartTimeout 90
  ServerAdmin email@example.com
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  DocumentRoot /path/to/application/public
  <Directory /path/to/application/public>
    AllowOverride None
    Options -Multiviews
    Require all granted
  </Directory>
</VirtualHost>

PassengerPreStart http://localhost
PassengerAppEnv production
PassengerLogFile ${APACHE_LOG_DIR}/passenger.log

服务器运行的是 Ubuntu 18.04。我已经包含了我认为是以下相关版本的内容: 红宝石 - 2.5.1 Ruby on Rails - 5.2.5 乘客 - 6.0.7

有谁知道我可能缺少什么配置导致乘客在错误的地方寻找?

【问题讨论】:

  • 可以在本地(不带Passenger)的生产环境中运行服务器吗?

标签: ruby-on-rails ruby apache ubuntu passenger


【解决方案1】:

看 .. 我阅读了有关乘客的信息,我是 ruby​​ 的初学者;“初学者”= 当我记得 ruby​​、python 时,我下载它们并尝试将它们编译为 exe 以了解它们是否改变了东西 = .exe 更小或者对于我通常使用的另一种编译器。 今天的测试是在 ruby + apache + php 8.1 中测试 http://localhost/test/ 的输出并且没有任何编译这不是您的问题的答案,但如果有人需要这种新观点并且您总是使用 php 和 ruby​​ ..)

在安装了 apache、php、.. 和 ruby​​ 的 Windows 中,在您的 htdocs 中创建测试文件夹并将其放入其中: index.php

<?php

// Highest priority
proc_nice(-20);

echo shell_exec('index.rb');
//system('index.rb');
?>

index.rb

#puts "Content-type: text/html\r\n"
puts "Hello World" + "<br>"

time1 = Time.new
puts "Current Time : " + time1.inspect + "<br>"

# Time.now is a synonym:
time2 = Time.now
puts "Current Time : " + time2.inspect + "<br>"

现在打开浏览器并转到 http://localhost/test/ 然后,如果您在第一个结果之后单击刷新或在您的 Bowser 中按 f5 键(刷新),则时间应显示刷新值

【讨论】:

    猜你喜欢
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 2019-02-17
    • 1970-01-01
    相关资源
    最近更新 更多