2010-11-20 6 views
5

Próbuję uzyskać aplikację szkieletów gołych kości wdrożoną pod Apache, Passenger 3.0.0 i Rails 3.0.3. Dostaję różnego rodzaju dziwne błędy. głównie w odniesieniu do tego, co uważam za powiązane z bundlerami lub RAILS_ENV.Który użytkownik używa mojej aplikacji Rails?

Jedyną niedotrzymaną cechą aplikacji jest to, że środowiska testowe używają SQLite3, a produkcja używa MySQL.

Po naciśnięciu aplikacji z przeglądarki internetowej Pasażer rzuca błędy dotyczące klejnotów (sqlite3), które są specyficzne (w pliku Gemfile AND w bazie danych.yml) zadeklarowane jako NIE będące częścią środowiska produkcyjnego.

Jak mogę sprawdzić, na jakim serwerze serwer próbuje uruchomić aplikację Rails? Chciałbym się upewnić, że RAILS_ENV jest ustawiony poprawnie dla tego użytkownika, ponieważ myślę, że Pasażer próbuje uruchomić tę aplikację w trybie programistycznym z jakiegoś powodu.

Edit: dodane wyniki 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 

i 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

Czy możesz pokazać nam niektóre błędy? –

Odpowiedz

9

Domyślnie pasażer będzie uruchomić aplikację jako użytkownik, który posiada plik config/environment.rb lub config.ru patrz http://www.modrails.com/documentation/Users%20guide%20Apache.html#user_switching

Pasażer będzie działał w środowisku production domyślnie chyba powiedzieć to inaczej z RailsEnv patrz http://www.modrails.com/documentation/Users%20guide%20Apache.html#rails_env

+0

OK. po prostu przeczytaj link user_switching. próbując zmusić to do pracy ... wszelkie pomysły, co właściciel/uprawnienie "powinien" na "config/environment.rb"? tak samo jak w samym katalogu strony? Mam stronę obsługiwaną przez Apache i dowiązanie symboliczne z w/tym głównym "statycznym" widoku zwanym "szyną", który wskazuje na mój katalog aplikacji Rails, w którym znajduje się aplikacja. – Meltemi

+1

Myślę, że użytkownik, który uruchamia aplikację, jest prawdopodobnie czerwonym śledziem w twoim przypadku. Bardziej prawdopodobny jest problem z konfiguracją szyn. Czy możesz uruchomić './script/console production' z katalogu aplikacji na serwerze? Jeśli to spowoduje ten sam błąd, łatwiej będzie debugować. – malclocke

+0

Właściciel pliku config.ru/environment.rb powinien być niezależnie od tego, z kim użytkownik prowadził instalację pakietową. "instalacja pakietu" instaluje się do $ HOME/.bundle lub do ./help w zależności od ustawień twojego pakietu; w przypadku tego pierwszego, $ HOME zależy od użytkownika, który wywołał "instalację pakietu". Więc jeśli uruchomiłeś "instalację pakietu" jako "foobar", musisz również upewnić się, że twoja aplikacja Railsowa działa jako "foobar", w przeciwnym razie nie może uzyskać dostępu do klejnotów zainstalowanych przez program Bundler z powodu problemów z uprawnieniami. – Hongli

3

Można uruchomić ps aux | grep httpd aby zobaczyć, co użytkownik jest uruchomiony proces apache.

+0

dodano wyniki z 'ps aux | grep httpd' powyżej. wśród poprzednich pytań ... dlaczego mieliby dwóch różnych użytkowników uruchamiających procesy httpd?!? – Meltemi

+0

Nie jestem pewien. To jest na twoim polu produkcyjnym, prawda? – jergason

+0

tak. produkcja. już wcześniej korzystała z aplikacji Rails 2.3.5. Próbuje uzyskać 3.0.3 działa i całe piekło się rozpada. – Meltemi

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

echo "Detected rails user: $RAILS_USER"