乘客错误:没有这样的文件或目录 - config/environment.rb

乘客错误:没有这样的文件或目录 - config/environment.rb

我安装了Redmine在 MacOSX Server 10.6.8 上根据此安装说明到目前为止一切正常:当我启动 webrick 时,服务器会提供 Redmine 页面。gems 和 redmine 安装在用户“redmine”下。

之后我按照描述配置了 apache2 和 Passenger这里。根据描述,我还安装了乘客玻璃它将虚拟主机配置文件存储在 中/private/etc/apache2/passenger_pane_vhosts。这是我在多次手动尝试和错误后得出的结论。至少,现在我可以访问乘客错误页面。

// redmine.vhost.conf
<VirtualHost *:80>    
  ServerName myserver
  ServerAlias localhost
  DocumentRoot "/Users/redmine/Sites/redmine"
# RackEnv production
# RackBaseURI /
  RailsEnv production
  RailsBaseURI /
# PassengerUser www-data
# PassengerGroup www-data
  <Directory "/Users/redmine/Sites/redmine">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

然而,乘客模块仍然会遇到以下错误。

Error message: No such file or directory - config/environment.rb

乘客错误页面截图

网络服务器的/var/log/apache2/error_log说明如下。

[warn] NameVirtualHost *:80 has no VirtualHosts
[notice] Apache/2.2.21 (Unix) Phusion_Passenger/3.0.12 configured -- 
  resuming normal operations
[ pid=21824 thr=2151905620 file=utils.rb:176 time=2012-06-01 18:22:07.126 ]: *** 
  Exception Errno::ENOENT in PhusionPassenger::ClassicRails::ApplicationSpawner 
  (No such file or directory - config/environment.rb) (process 21824, 
  thread #<Thread:0x0000010086f2a8>):

我尝试了乘客用户切换功能正如文档中所述 - 从我的配置文件中可以看出。不过,我没有成功。


更新:(2012 年 6 月 4 日)

在我改变了文档根目录目录路径为/Users/redmine/Sites/redmine/publicHolger 建议的 Redmine 网站可以在 下访问http://myserver。但是,无法在 下访问http://myserver/redmine;文件夹404.htmlpublic/已提供服务。
我猜 Redmine 可以在 下访问,http://myserver因为我覆盖了文档根目录整个 Apache 服务器 (?)。但这不是我想要的。如果不设置文档根目录redmine.vhost.conf我遇到以下错误页面。

Forbidden
You don't have permission to access / on this server.
Additionally, a 403 Forbidden error was encountered while trying to 
use an ErrorDocument to handle the request.
Apache/2.2.21 (Unix) Phusion_Passenger/3.0.12 Server at myserver Port 80

问题:我必须怎样配置服务器才能获取所需的http://myserver/redmineURL?

答案1

根据乘客文件您必须使用public目录作为文档根目录。在您的例子中,该目录为/Users/redmine/Sites/redmine/public

这样,只有真正公开的文件才会位于文档根目录中,Passenger 才能找到正确的应用程序根目录。您永远不应该将任何实际的代码文件(甚至更糟:配置文件)放入文档根目录中,因为任何人都可以自由读取它们。

答案2

仅适用于使用 Bitnami-Stack 安装 Redmine 的用户:

我真的很好奇,为什么我在升级并重新启动操作系统后会得到与 ThreadOpener 相同的错误。发行版还安装了 apache 和 mysql,并启动了这个。BitNami 在 Bundle 中有自己的 apache- 和 Mysql-Server。

解决方案:停止 Apache 和 mysql,然后使用以下命令启动 BitNami:

cd /opt/redmine-2.3.1-3
ctlscript.sh start mysql
ctlscript.sh start apache

这解决了我的问题!

答案3

要挂载为 /redmine URL,请尝试

RewriteBase /redmine/

在您的 VirtualHost 中

相关内容