Redmine configureren om te runnen vanaf een subdirectory

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
Ik probeer Redmine te draaien vanaf mijn Synology NAS. Na veel gezeur is het me uiteindelijk gelukt om een en ander draaiend te krijgen via WEBRick, Mongrel wil nog steeds niet echt. Maar goed, dat is het probleem niet.

Het probleem is dat ik graag wil dat mensen van buitenaf naar http://host/redmine kunnen gaan in plaats van naar http://host:3000/. Ik heb Apache sowieso al draaien en kan niet al te veel doen aan de config daarvan omdat Synology er zelf actief gebruik van maakt in DSM en WebStation. Wat wel kan en wat ook goed werkt is een proxy.

Anyway, het schijnt dat je kan aangeven dat alles in een subfolder draait, volgens deze pagina. Ik heb die aanwijzingen netjes opgevolgd maar het enige resultaat is vreemd genoeg precies het tegenovergestelde van wat de meeste websites zeggen: de CSS/Javascripts/enz. zijn wél goed te benaderen, maar alle interne links verwijzen naar (bijvoorbeeld) /projects in plaats van /redmine/projects. Ik heb dat uiteindelijk afgevangen met een RewriteRule in Apache (die mijn reverse proxy regelt) maar erg vrolijk word ik daar niet van.

Weet iemand wat ik hier gemist heb? Moet ik soms ook op de een of andere manier aan WEBRick vertellen dat Redmine niet in de "normale" root moet draaien? En zo ja, hoe vertel ik hem dat?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:19

Hero of Time

Moderator LNX

There is only one Legend

Kan je geen subdomeinen maken, of heb je geen DNS naar je verbinding? Op het werk heb ik Redmine draaien op een subdomein via ServerName met vhost.

Als je WEBrick niet als root wilt draaien, kan je 'm starten via 't start script als andere gebruiker, of su <gebruiker> -c "commando".

Is dat iets? Ik heb geprobeerd om met Alias /redmine wat te rommelen, maar gaf bij mij weinig sjoege. Ook RailsBaseURI /redmine deed 't niet bij mij. Misschien dat jij wat meer succes hebt. Ik kreeg iig de melding "<path> does not appear to be a valid rails application root".

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
Hero Of Time schreef op woensdag 15 augustus 2012 @ 22:01:
Kan je geen subdomeinen maken, of heb je geen DNS naar je verbinding? Op het werk heb ik Redmine draaien op een subdomein via ServerName met vhost.
Ik heb inderdaad een redmine.domein.nl. :) Hoe zou die vhost entry eruit zien dan? Ik heb eerder deze geprobeerd maar dat zorgde er alleen voor dat er geen doorverwijzing meer was en ik op de webinterface van Synology uitkwam. Ik zal wel iets heel lomp verkeerd doen. :+
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module  modules/mod_proxy_http.so

<VirtualHost *:80>
ServerName redmine.domein.nl
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
</VirtualHost>
Als je WEBrick niet als root wilt draaien, kan je 'm starten via 't start script als andere gebruiker, of su <gebruiker> -c "commando".
Die moet ik straks maar even proberen, klinkt veiliger dan draaien als root. :+ De performance van WEBRick vind ik verder geen ramp, dat overleven we wel. 't Is toch maar voor een hobbyproject.
Is dat iets? Ik heb geprobeerd om met Alias /redmine wat te rommelen, maar gaf bij mij weinig sjoege. Ook RailsBaseURI /redmine deed 't niet bij mij. Misschien dat jij wat meer succes hebt. Ik kreeg iig de melding "<path> does not appear to be a valid rails application root".
Die RailsBaseURI is onderdeel van mod_passenger, toch? Die heb ik niet en volgens mij kan ik die ook niet zomaar even installeren. Synology heeft de Apache install redelijk dichtgetimmerd en ik wil liever DSM/WebStation niet breken. :P

Overigens draai ik in de huidige situatie bovenstaande settings in Apache, maar dan zonder de beperking op vhost en natuurlijk zonder ServerName.

Overigens is wat mij betreft de huidige situatie prima op één ding na: Redmine weet voor assets wel dat hij moet linken naar /redmine/javascripts, etc. maar voor links niet. Een beetje dit idee:
HTML:
1
2
3
<script src="/redmine/javascripts/prototype.js?1338917025" type="text/javascript"></script>
<!-- snip... -->
<a href="/logout" class="logout">Sign out</a>

Als ik daar /redmine/logout van kan maken ben ik helemaal happy. :P

[ Voor 10% gewijzigd door NMe op 15-08-2012 23:18 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:19

Hero of Time

Moderator LNX

There is only one Legend

Mijn vhost ziet er zo uit:
code:
1
2
3
4
5
<VirtualHost *:80>
    ServerName redmine.domein.nl:80
    ServerAlias redmine.domein.local redmine # niet vereist
    DocumentRoot "/var/www/redmine/public"
</virtualHost>

Voor apache heb ik de modules libapache2-mod-passenger en libapache2-mod-ruby, met de bijbehorende rails en ruby modules volgens de Redmine installatie handleiding.

Commandline FTW | Tweakt met mate


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
Ik kan mod_passenger niet zomaar installeren. Zoals ik al zei: Synology heeft Apache helemaal weggewerkt in hun DSM-software. Verder, ter indicatie als ik het toch probeer:
Checking for required software...

apxs:Error: /home/slug/optware/syno-i686/staging/opt/bin/apr-1-config not found!.
apxs:Error: /home/slug/optware/syno-i686/staging/opt/bin/apr-1-config not found!.
apxs:Error: /home/slug/optware/syno-i686/staging/opt/bin/apr-1-config not found!.
apxs:Error: /home/slug/optware/syno-i686/staging/opt/bin/apr-1-config not found!.
 * GNU C++ compiler... found at /opt/bin/g++
 * Curl development headers with SSL support... found
 * OpenSSL development headers... not found
 * Zlib development headers... found
 * Ruby development headers... found
 * OpenSSL support for Ruby... not found
 * RubyGems... found
 * Rake... found at /usr/local/bin/rake
 * rack... found
 * Apache 2... found at /opt/sbin/httpd
 * Apache 2 development headers... found at /opt/sbin/apxs
 * Apache Portable Runtime (APR) development headers... not found
 * Apache Portable Runtime Utility (APU) development headers... not found

Ruby is gecompileerd met SSL-support, ondanks wat dit ding zegt... Apache is geïnstalleerd, alleen op een wat exotische locatie (/usr/syno/apache2) normaal gesproken vindt hij die niet. Bovenstaande output was na een aparte ipkg install apache. Die APR en APU heb ik ook geïnstalleerd via ipkg maar worden domweg niet gevonden...

Wat mij betreft gebruik ik mod_passenger gewoon niet (te veel gezeik, ik ben hier al drie dagen mee bezig) en stel ik voor mijn part een vhost in die verder de reverse proxy naar de WEBrick server bijhoudt. Weet je misschien hoe ik dat klaar krijg? Bovenstaande vhost-settings werken niet.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:19

Hero of Time

Moderator LNX

There is only one Legend

Ik denk dat je met iets als dit in je httpd.conf, apache2.conf of aparte conf.d bestand het wel kan laten werken. Je kan vhosts overigens hiermee negeren (met deze oplossing heb je 'm niet nodig ;))

code:
1
2
3
4
<IfModule mod_proxy>
ProxyPass /redmine http://localhost:3000/
ProxyPassReverse /redmine http://localhost:3000/
</IfModule>

Commandline FTW | Tweakt met mate


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
Jawel, dat is het probleem dus. Dat is namelijk wat ik nu al doe, maar zoals ik al zei krijg ik vervolgens in Redmine harde links naar de root van de host in plaats van naar /redmine. Daar is een setting voor, afhankelijk van je Redmine- en Rails-versies een van de volgende drie:
Redmine::Utils::relative_url_root = "/redmine"
ActionController::AbstractRequest.relative_url_root = "/redmine"
ActionController::Base.relative_url_root = "/redmine"

Die heb ik ingesteld en die doet het ook - gedeeltelijk. De javascripts en CSS-files verwijzen allemaal netjes naar /redmine/...etc. maar de interne links blijven doorverwijzen naar de root zoals in de HTML-code hierboven.

Even voor de volledigheid, de volledige huidige situatie. Onderaan de config/environment.rb-file van Redmine staat dit:
ActionController::Base.relative_url_root = "/redmine"

Verder staat dit in mijn httpd.conf:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module  modules/mod_proxy_http.so
ProxyRequests Off
ProxyPreserveHost On
ProxyPass /redmine/ http://127.0.0.1:3000/
ProxyPassReverse /redmine/ http://127.0.0.1:3000/

En tenslotte de volgende .htaccess in mijn Apache documentroot:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /redmine/$1 [L]

RedirectMatch ^/redmine$ /redmine/
RedirectMatch ^/$ /redmine/

Waarbij die laatste regel eigenlijk tijdelijk is.

Dit heeft als effect dat http://host/redmine/my/page werkt, maar er nooit naar gelinkt wordt. De applicatie linkt naar http://host/my/page en de rewriterule zorgt dat het verder alsnog gewoon werkt. Ik zit dus met een werkende situatie, maar niet met een wenselijke.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1