Domanda

Ho apache2.2 su Windows. Sto cercando di servire sia Subversion (/ svn) che Redmine (/ Redmine). Ho svn funzionante bene con questa configurazione:

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

Funziona benissimo: i miei utenti svn possono premere http: // mybox / svn bene.

Ora voglio aggiungere un'altra directory per un'app rails (RedMine):

Ho seguito i consigli in questa domanda per configurare un server ibrido e avere client proxy apache attraverso di esso. Funziona bene se lo faccio diventare root, ma ho problemi a farlo in una sottodirectory:

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

Qualche suggerimento?

È stato utile?

Soluzione

Ecco cosa ho dovuto cambiare:

Ho rimosso la barra finale:

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

E nella mia app rails:

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

Ora funziona!


Non ero completamente soddisfatto di questo approccio: ho riscontrato problemi di reindirizzamento. Questo è un altro tentativo che sembra funzionare bene finora.

  • CGI veloce e < a href = "http://wiki.rubyonrails.org/rails/pages/Fast+CGI+and+Apache2+for+Windows+without+VirtualHosts" rel = "noreferrer"> CGI veloce senza VirtualHosts
  • Tuning Fast CGI

Questo secondo approccio sembra migliore.


UPDATE:

Come notato nei commenti, per le app più recenti in esecuzione su Rails 2.3.2+, utilizzare invece questo:

config.action_controller.relative_url_root = '/redmine'

L'ho inserito nel nuovo file additional_environment.rb .

Altri suggerimenti

Nel caso in cui desideri ancora utilizzare Mongrel + Apache utilizzando un proxy inverso, ecco come ho risolto lo stesso problema sul nostro sistema (Win2k3, Apache 2.2, trunk di Redmine). Il segreto è installare il tuo servizio ibrido usando --prefix / redmine che gli dice di servirlo da http://localhost:port/redmine

In Apache httpd.conf (o file di inclusione adatto):

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>

Mongrel è installato come tale:

mongrel_rails service::install --prefix /redmine -N redmine_prod -p 4000 -e production -c C:\Repositories\redmine

Spero che aiuti qualcuno. Inizialmente, ho provato a configurare Apache + fastcgi ecc., Ma ho perso i capelli più preziosi - non è compatibile con Windows.

P.S. Ho trovato questo PDF un riferimento molto utile: http://www.napcsweb.com /howto/rails/deployment/RailsWithApacheAndMongrel.pdf

/ Damien

Passenger ( http://modrails.com ) è un'alternativa migliore a fastcgi perché è molto facile da configurare I consiglierei di usarlo per ospitare le tue app rails usando una configurazione simile a quella che hai ora

Sono d'accordo con Radar. Passenger è davvero facile da configurare, consente alle app Rails di condividere la memoria, elimina l'onere della gestione di un cluster di ibridi e non richiede praticamente alcuna configurazione. Tutto ciò che serve è uno speciale file 'config.ru' con un RackUp config e DocumentRoot che puntano a RAILS_ROOT / set pubblico in Apache.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top