fragen stichworte

Passagierfehler: Keine solche Datei oder Verzeichnis - config / environment.rb

Ich habe Redmine unter MacOSX Server 10.6.8 gemäß dieser Installationsbeschreibung installiert. Bisher funktioniert alles gut: Wenn ich webrick starte, bedient der Server die Redmine-Seiten. Die Edelsteine ​​und die Redmine werden unter dem Benutzer "Redmine" installiert.

Danach zielte ich darauf ab, apache2 mit dem Passagier wie hier zu konfigurieren. Wie in der Beschreibung vorgeschlagen, habe ich auch den Passagierbereich installiert, in dem die Konfigurationsdateien des virtuellen Hosts in /private/etc/apache2/passenger_pane_vhosts gespeichert sind. Dies ist, was ich nach viel manuellem Ausprobieren herausgefunden habe. Zumindest kann ich jetzt eine Beifahrer-Fehlerseite erreichen.

//redmine.vhost.conf
<VirtualHost *:80>    
  ServerName myserver
  ServerAlias localhost
  DocumentRoot "/Users/redmine/Sites/redmine"
# RackEnv production
# RackBaseURI/
  RailsEnv production
  RailsBaseURI/
# PassengerUser www-data
# PassengerGroup www-data
  <Directory "/Users/redmine/Sites/redmine">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

Das Beifahrermodul weist jedoch weiterhin folgende Fehler auf.

Error message: No such file or directory - config/environment.rb

Screenshot of the passenger error page

Der /var/log/apache2/error_log des Webservers hat Folgendes angegeben:

[warn] NameVirtualHost *:80 has no VirtualHosts
[notice] Apache/2.2.21 (Unix) Phusion_Passenger/3.0.12 configured -- 
  resuming normal operations
[ pid=21824 thr=2151905620 file=utils.rb:176 time=2012-06-01 18:22:07.126 ]: *** 
  Exception Errno::ENOENT in PhusionPassenger::ClassicRails::ApplicationSpawner 
  (No such file or directory - config/environment.rb) (process 21824, 
  thread #<Thread:0x0000010086f2a8>):

Ich habe mit der Benutzer-Switch-Funktionalität von Passagier experimentiert, wie in der Dokumentation beschrieben. Dies können Sie meiner Konfigurationsdatei entnehmen. Trotzdem war ich nicht erfolgreich.


UPDATE: (04.06.2012)

Nachdem ich den Pfad DocumentRoot und Directory in /Users/redmine/Sites/redmine/public geändert habe, wie von Holger vorgeschlagen, ist die Redmine-Site unter http://myserver erreichbar. Es ist jedoch nicht unter http://myserver/redmine erreichbar. Der 404.html des Ordners public/ wird bereitgestellt.
Ich vermute, Redmine ist unter http://myserver erreichbar, weil ich den DocumentRoot für den gesamten Apache-Server (?) Überschreibe. Das will ich aber nicht. Ohne die Einstellung von DocumentRoot in redmine.vhost.conf erhalte ich die folgende Fehlerseite.

Forbidden
You don't have permission to access/on this server.
Additionally, a 403 Forbidden error was encountered while trying to 
use an ErrorDocument to handle the request.
Apache/2.2.21 (Unix) Phusion_Passenger/3.0.12 Server at myserver Port 80

Frage: Wie muss ich den Server konfigurieren, um die gewünschte http://myserver/redmine -URL zu erhalten?

antworten

Nach der Passenger-Dokumentation müssen Sie das Verzeichnis public als Dokumentenstammverzeichnis verwenden. In Ihrem Fall wäre das /Users/redmine/Sites/redmine/public.

Auf diese Weise befinden sich nur wirklich öffentliche Dateien im Stammverzeichnis des Dokuments und Passenger findet den richtigen Anwendungsstammordner. Sie sollten niemals tatsächliche Code-Dateien (oder noch schlimmer: Konfigurationsdateien) in den Dokumentenstamm legen, da sie für jeden frei lesbar sind.

Nur für Benutzer, die Redmine mit dem Bitnami-Stack installiert haben:

Ich frage mich wirklich, warum ich den gleichen Fehler bekommen habe, der den ThreadOpener nach dem Upgrade beschrieben hat und mein Betriebssystem neu starte. Die Distribution hatte auch Apache und MySQL installiert und starte diesen. BitNami hat seine eigene Apache- & Amp; Mysql-Server innerhalb des Bundles.

Lösung: stoppe Apache & amp; mysql, und starte den BitNami mit:

cd/opt/redmine-2.3.1-3
ctlscript.sh start mysql
ctlscript.sh start apache

Das löst mein Problem!

Um als URL/redmine einzubinden, versuchen Sie es mit

RewriteBase/redmine/

in Ihrem VirtualHost