救命!使用Apache 2的Passenger的子URI不起作用!

时间:2011-05-14 14:06:57

标签: apache2 redmine passenger

我正在尝试使用Apache2和Passenger 3.0.7在我的Ubuntu 8.04上设置Redmine 1.1.3应用程序。 我已经通过运行Webrick作为Web服务器验证了我的Redmine安装是否正常。正如我读到它不是推荐的生产网络服务器,我决定使用Apache 2来托管它。

我计划将Apache网络服务器配置为支持子URI,并参考指南:http://www.modrails.org/documentation/Users%20guide%20Apache.html#deploying_rails_to_sub_uri。 但是,我在“sites-available”文件夹中配置名为“default”的Apache2配置文件时遇到了一些问题。

以下是我在“默认”文件中的配置:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName www.mydomain.com
    **DocumentRoot /var/www**
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
       <Directory /var/www/redmine>
        Options Indexes FollowSymLinks MultiViews
                AllowOverride all
        Order allow,deny
        allow from all
       </Directory>
       RailsBaseURI /redmine
       RailsEnv production

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

通过“http”// www.mydomain.com/redmine“访问Redmine后,此配置返回”没有此类文件要加载 - / var / www / config / environment“错误。

只有将“文档根目录”更改为“/usr/local/redmine-1.1.3/public”,这是Redmine应用程序代码所在的位置,才能解决此错误。< / p>

注意: 1.我已按照指南中的说明在“/ var / www / redmine”中创建了符号链接。 2.我还将“redmine-1.1.3”文件夹和文件(递归地)“chown”为“www-data”。

如果有人能帮助我正确配置我的设置,我将不胜感激,因为我真的希望利用子URI方法,以便我可以为多个应用程序维护一个公共端口“80”的使用。

提前谢谢。

干杯,

凯文

1 个答案:

答案 0 :(得分:1)

我在Mac上有类似的设置。我的设置没有虚拟主机,因为我想保持一些php应用程序正在运行而且Passenger正在干扰整个站点启用的那些。

我的apache httpd.conf文件中包含两个安装文件:

  1. passenger.conf

    LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
    PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-3.0.7
    PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
    PassengerEnabled Off
    
  2. redmine.conf

    <Location "/redmine">
        Options Indexes ExecCGI FollowSymLinks -MultiViews
        Order allow,deny
        Allow from all
        AllowOverride all
    
        PassengerEnabled On
        RailsBaseURI /redmine
        RailsEnv production
    
    </Location>
    
  3. 我的系统是Mac,所以路径可能不同,但我在docroot中设置了一个指向我的redmine公共目录的符号链接。

    也许“RailsBaseURI”将是让它为你工作的关键。