我已经在我的Linux机器上为Apache安装了mod_passenger。 该模块已经正确编译,Apache似乎正在加载它(没有这方面的错误)。
当我设置一个虚拟主机指向一个Rails应用程序(Redmine项目pipe理)时,我得到了一个关于“Ruby on Rails应用程序无法启动”的呻吟声。 具体来说,“错误信息:没有这样的文件或目录 – config / environment.rb”。
我可以看到Redmine根文件夹中确实有一个config / environment.rb文件。 我的虚拟主机configuration是这样的:
<VirtualHost *:80> # server DocumentRoot, address, and admin email RailsBaseURI /redmine DocumentRoot /srv/www/htdocs </VirtualHost>
我已经在/ srv / www / htdocs / redmine(没有符号链接或任何东西,因为它呻吟)Redmine来源。
由于没有任何工作,我愤怒的适应,我recursion地设置文件的所有权和/ redmine文件夹的模式为wwwrun:www(我的Apache用户和组)和777.你认为这是问题吗?
任何想法或build议不胜感激。
PS。 有什么项目在那里重写在PHP中的Redmine? 大声笑!
我得到了同样的错误,这http://randomthoughtsgr.wordpress.com/2011/10/17/redmine-sub-uri-and-apache-configuration/帮我解决它!
当试图在一个子uri中设置Redmine时,我会遇到一个问题,尝试设置apache。 乘客将显示以下错误:尝试访问Redmine网页时没有这样的文件或目录 – config / environment.rb 。
在尝试了几个关于这个问题的build议之后,我设法让Redmine使用以下configuration:
passenger.loadconfiguration文件如下(path可能会有所不同,具体取决于安装):
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在虚拟主机configuration中,我添加了以下内容:
PassengerAppRoot /usr/local/lib/redmine-1.2/ RailsBaseURI /redmine RailsEnv productionPassengerAppRoot表示redmine的安装path。
RailsBasedURI表示表示Redmine的URL中的子目录,例如。 http://www.example.org/redmine(对于这个工作来说,在Web根文件夹中有redmine-。/ public的符号链接也是必不可less的)。
另外,我将redmine-1.2文件夹和symlink redmine文件夹的所有权更改为apache用户/组(我觉得有必要)。
乘客的sub-URI部署模式比较特殊。
你必须创build符号链接。 这些必须指向public目录(而不是RAILS_ROOT )。 乘客使用这个符号链接中的信息来查找应用程序的其余部分。 这是为了确保您永远不会在文档根目录中安装Rails应用程序(为了避免您的代码和configuration对任何人公开显示,您永远不应该这样做)。
在你的情况下,这意味着将Redmine安装到/srv/www/redmine 。 然后创build一个符号链接
ln -s /srv/www/redmine/public /srv/www/htdocs/redmine
有了这个,你可以保持你的虚拟主机,假设你的networking服务器用户有权读取/srv/www/redmine/public内的所有文件。 作为最后的提示:检查config/environment.rb文件的所有者。 它的所有者将是redmine运行的用户(只要它不是root)。
有关更多信息,请查看出色的Passenger文档 。