Phusion Passenger 上的 Rails 应用程序(Redmine)

Phusion Passenger 上的 Rails 应用程序(Redmine)

我已经在 Linux 机器上为 Apache 安装了 mod_passenger。模块已正确编译,Apache 似乎正在正确加载它(这方面没有错误)。

但是当我设置一个 vhost 指向 Rails 应用程序(Redmine 项目管理)时,我收到一个页面,提示“无法启动 Ruby on Rails 应用程序”。具体来说,“错误消息:没有这样的文件或目录 - config/environment.rb”。

我可以看到 Redmine 根文件夹中确实有一个 config/environment.rb。我的 vhost 配置如下:

<VirtualHost *:80>
# server DocumentRoot, address, and admin email

RailsBaseURI /redmine
DocumentRoot /srv/www/htdocs

</VirtualHost>

我已经在 /srv/www/htdocs/redmine 获得了 Redmine 源代码(没有符号链接或任何东西,因为它对此感到抱怨)。

由于什么都没有起作用,我一怒之下以递归方式将 /redmine 文件夹的文件所有权和模式设置为 wwwrun:www(我的 Apache 用户和组)和 777。您认为这是问题所在吗?

非常感谢任何想法或建议。

附言:有没有用 PHP 重写 Redmine 的项目?哈哈!

答案1

我遇到了同样的错误,并且这个http://randomthoughtsgr.wordpress.com/2011/10/17/redmine-sub-uri-and-apache-configuration/帮我解决了!

在尝试在子 uri 中设置 Redmine 时,我遇到了一个问题,即尝试设置 apache。Passenger 将显示以下错误: 没有这样的文件或目录 – config/environment.rb尝试访问Redmine网页时。

在尝试了一些关于该问题的建议后,我设法让Redmine使用以下配置工作:

Passenger.load 配置文件如下(路径可能因安装不同而有所不同):

LoadModule passenger_module /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
PassengerRoot /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/passenger-3.0.9
PassengerRuby /opt/ruby-enterprise-1.8.7-2011.03/bin/ruby
PassengerDefaultUser www-data

在虚拟主机配置中我添加了以下内容:

PassengerAppRoot /usr/local/lib/redmine-1.2/
RailsBaseURI /redmine
RailsEnv production

乘客应用根目录代表redmine的安装路径。
RailsBasedURI表示 URL 中代表 Redmine 的子目录,例如。http://www.example.org/redmine

(要使此功能正常工作,还需要有 redmine 的符号链接-/public 位于 Web 根文件夹内)。

我也改变了redmine-1.2文件夹和符号链接 redmine 文件夹到 apache 用户/组(我认为这是必要的)。

答案2

乘客子URI部署的部署模式比较具体。

创建符号链接。这些必须指向public目录(而不是RAILS_ROOT)。Passenger 使用此符号链接中的信息来查找应用程序的其余部分。这是为了确保您永远不会在文档根目录中安装 Rails 应用程序(您永远不应该这样做,以避免您的代码和配置被任何人公开看到。)

在你的情况下,这意味着将 Redmine 安装到类似的地方/srv/www/redmine。然后创建一个符号链接

ln -s /srv/www/redmine/public /srv/www/htdocs/redmine

有了这些,您就可以保持虚拟主机原样,假设您的 Web 服务器用户有权读取其中的所有文件/srv/www/redmine/public。最后一条提示:检查文件的所有者config/environment.rb。它的所有者将是运行 redmine 的用户(只要它不是 root 用户)。

欲了解更多信息,请查看优秀的乘客文件

相关内容