Konfiguracja aplikacji Ruby On Rails w podkatalogu pod Apache

Mam apache2.2 na windows. Staram się obsługiwać zarówno subversion (/svn), jak i redmine (/redmine). Mam svn działa dobrze z tym config:

<Location /svn>
  DAV svn
  SVNParentPath C:/svn_repository
  ...
</Location>

To działa świetnie--moi użytkownicy svn mogą trafić http://mybox/svn w porządku.

Teraz chcę dodać kolejny katalog dla aplikacji rails (RedMine):

Zastosowałem się do Rady w to pytanie aby skonfigurować serwer Kundel i mieć do niego klientów proxy apache. Działa dobrze, jeśli zrobię z niego korzeń-ale Mam problem z zrobieniem go w podkatalogu:

<Location /redmine>
  ProxyPass http://localhost:3000/
  ProxyPassReverse http://localhost:3000/
</Location>
Jakieś sugestie?
Author: Community, 2009-01-23

4 answers

Oto co musiałem zmienić:

Usunąłem Slash:

<Location /redmine>
  ProxyPass http://localhost:3000
  ProxyPassReverse http://localhost:3000/
</Location>

I w mojej aplikacji rails:

# added to end of file C:\redmine\config\environment.rb
ActionController::AbstractRequest.relative_url_root = "/redmine"
Teraz to działa!

Nie byłem całkowicie zadowolony z tego podejścia-napotkałem pewne problemy z przekierowaniem. Jest to kolejna próba, która wydaje się działać dobrze do tej pory.

To drugie podejście wydaje się lepiej.


UPDATE:

Jak wspomniano w komentarzach, dla nowszych aplikacji działających na Rails 2.3.2+ użyj tego zamiast:

config.action_controller.relative_url_root = '/redmine'

Umieściłem go w Nowym pliku additional_environment.rb.

 15
Author: Michael Haren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-23 16:57:55

W przypadku, gdy nadal chcesz używać Mongrel + Apache za pomocą odwrotnego proxy oto jak rozwiązałem ten sam problem w naszym systemie (Win2k3, Apache 2.2, trunk of Redmine). Sekretem jest zainstalowanie usługi kundel za pomocą --prefix /redmine, która mówi, że ma obsługiwać ją z http://localhost:port/redmine

W Apache httpd.conf (lub odpowiedni plik dołączony):

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<IfModule mod_proxy.c>
ProxyRequests Off
#No need to forward on static content - let apache do it faster
ProxyPass /redmine/images ! 
ProxyPass /redmine/stylesheets ! 
ProxyPass /redmine/javascript ! 
# Remove the following entry on public sites as this is insecure
ProxyPass /redmine/plugin_assets !
ProxyPass /redmine/help ! 
ProxyPass /redmine http://localhost:4000/redmine
ProxyPassReverse /redmine http://localhost:4000/redmine
ProxyPreserveHost On
#continue with other static files that should be served by apache
Alias /redmine/images C:/Repositories/redmine/public/images/
Alias /redmine/stylesheets C:/Repositories/redmine/public/stylesheets/
Alias /redmine/javascript C:/Repositories/redmine/public/javascript/
# Remove the following on public sites as this is insecure
Alias /redmine/plugin_assets C:/Repositories/redmine/public/plugin_assets/
Alias /redmine/help C:/Repositories/redmine/public/help/
</IfModule>

# Make sure apache can see public and all subfolders - not suitable for public sites
<Directory "C:/Repositories/redmine/public/">
    Allow from all
    Order allow,deny
</Directory>

Kundel jest zainstalowany jako taki:

mongrel_rails service::install --prefix /redmine -N redmine_prod -p 4000 -e production -c C:\Repositories\redmine
Mam nadzieję, że to komuś pomoże. Początkowo próbowałem skonfigurować Apache + fastcgi itp ale straciłem cenniejsze włosy - nie jest przyjazny dla systemu Windows.

P. s. uznałem ten PDF za bardzo przydatny: http://www.napcsweb.com/howto/rails/deployment/RailsWithApacheAndMongrel.pdf

/Damien

 1
Author: Damien,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-09 16:46:44

Passenger ( http://modrails.com) jest lepszą alternatywą dla fastcgi, ponieważ jest bardzo łatwy w konfiguracji, zalecałbym używanie tego do hostowania aplikacji rails przy użyciu podobnej konfiguracji do tej, którą masz teraz

 0
Author: Ryan Bigg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-23 01:59:38
 0
Author: Aram Verstegen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-09 17:37:48