2010-11-20 2 views
5

Ich versuche, eine reine Rails-App unter Apache, Passenger 3.0.0 und Rails 3.0.3 bereitgestellt. Ich bekomme alle möglichen seltsamen Fehler. meistens dreht es sich um was ich denke, ist mit Bundler oder RAILS_ENV verwandt.Welcher Benutzer führt meine Rails App aus?

Nur Nicht-Standard-Sache über die App ist, dass Entwicklung & Testumgebungen SQLite3 verwenden und Produktion verwendet MySQL.

Beim Drücken der App aus dem Webbrowser wirft Passenger Fehler in Bezug auf Edelsteine ​​(sqlite3), die speziell (in der Gemfile UND in der Datenbank.yml) als NICHT Teil der Produktionsumgebung deklariert sind.

Wie kann ich feststellen, auf welchen Benutzer der Server versucht, meine Rails App auszuführen? Ich möchte sicherstellen, dass die RAILS_ENV für diesen Benutzer richtig eingestellt ist, da ich glaube, dass Passen versucht, diese App aus irgendeinem Grund im Entwicklungsmodus auszuführen.

Edit: addierten Ergebnisse der ps aux | grep httpd

myserver:current elvis$ ps aux | grep httpd 
elvis  4424 0.4 0.0 66152 192 s000 S+ 11:03AM 0:00.00 grep httpd 
_www  1950 0.0 0.2 93024 2544 ?? S 11:40PM 0:01.23 /usr/sbin/httpd -D FOREGROUND 
root  1918 0.0 1.0 93024 10244 ?? Ss 11:39PM 0:02.75 /usr/sbin/httpd -D FOREGROUND 
_www  4084 0.0 0.2 93024 2536 ?? S  9:41AM 0:00.15 /usr/sbin/httpd -D FOREGROUND 

und ls -l ...

myserver:current elvis$ ls -l config 
total 48 
-rw-rw-r-- 1 aaron admin 1923 Nov 19 21:40 application.rb 
-rw-rw-r-- 1 aaron admin 326 Nov 19 21:40 boot.rb 
-rw-rw-r-- 1 aaron admin 741 Nov 19 21:40 database.yml 
-rw-rw-r-- 1 aaron admin 1257 Nov 19 21:40 deploy.rb 
-rw-rw-r-- 1 aaron admin 149 Nov 19 21:40 environment.rb 
drwxrwxr-x 5 aaron admin 170 Nov 19 21:40 environments 
drwxrwxr-x 7 aaron admin 238 Nov 19 21:40 initializers 
drwxrwxr-x 3 aaron admin 102 Nov 19 21:40 locales 
-rw-rw-r-- 1 aaron admin 1808 Nov 19 21:40 routes.rb 
+0

Können Sie uns einige der Fehler zeigen? –

Antwort

9

wird standardmäßig Passagier Ihre App als Benutzer ausführen, die config/environment.rb oder config.ru Datei besitzt, siehe http://www.modrails.com/documentation/Users%20guide%20Apache.html#user_switching

Passagier in der production Umgebung standardmäßig ausgeführt wird, wenn Sie es sagen, sonst mit dem RailsEnv finden http://www.modrails.com/documentation/Users%20guide%20Apache.html#rails_env

+0

OK. Lies einfach den user_switching Link. versuchen, dies zur Arbeit zu bringen ... irgendwelche Ideen, was der Besitzer/Erlaubnis "sollte" auf "config/environment.rb" sein? wie auf dem Website-Verzeichnis selbst? Ich habe eine Website von Apache und eine Symlink von w/in diesem Haupt 'statische' Sicht namens 'Schienen', die auf meine Rails App-Verzeichnis verweist, wo die App ist. – Meltemi

+1

Ich denke, der Benutzer, der die App ausführt, ist in Ihrem Fall wahrscheinlich ein Ablenkungsmanöver. Wahrscheinlich ein Problem mit der Konfiguration von Schienen. Können Sie './script/console production' aus dem App-Verzeichnis auf dem Server ausführen? Wenn derselbe Fehler auftritt, wäre es einfacher zu debuggen. – malclocke

+0

Der Besitzer Ihrer config.ru/environment.rb sollte der Benutzer sein, mit dem Sie 'bundle install' ausgeführt haben. 'bundle install' installiert entweder nach $ HOME/.bundle oder nach ./help, abhängig von den Bundler-Einstellungen; Im Falle des ersten hängt $ HOME von dem Benutzer ab, der 'Paket installieren' aufgerufen hat. Wenn Sie "bundle install" als "foobar" ausführen, müssen Sie außerdem sicherstellen, dass Ihre Rails-App als "foobar" ausgeführt wird, andernfalls kann sie nicht auf die von Bundler aufgrund von Berechtigungsproblemen installierten Edelsteine ​​zugreifen. – Hongli

3

Sie ps aux | grep httpd laufen konnte, um zu sehen, welche Benutzer Ihre Apache-Prozess ausgeführt wird.

+0

hinzugefügt Ergebnisse von 'ps aux | grep httpd' oben. unter den vorherigen Fragen ... Warum würden zwei verschiedene Benutzer httpd-Prozesse ausführen?!? – Meltemi

+0

Ich bin mir nicht sicher. Das ist auf deiner Produktionskiste, oder? – jergason

+0

yup. Produktion. hatte zuvor eine Rails 2.3.5 App laufen. Der Versuch 3.0.3 zu rennen und die Hölle bricht los. – Meltemi

0
RAILS_USER=$(stat -c '%U' /YOUR_PATH/environment.rb) 

echo "Detected rails user: $RAILS_USER"