首页 > 解决方案 > 无法在服务器上启动 ruby​​ on rails 应用程序但在本地工作,错误的环境路径

问题描述

我遇到了一个问题,它阻止我在生产服务器上启动我的 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

乘客正在使用 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。我已经包括了我认为的相关版本如下:Ruby - 2.5.1 Ruby on Rails - 5.2.5 Passenger - 6.0.7

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

标签: ruby-on-railsrubyapacheubuntupassenger

解决方案


推荐阅读