Deploy aplikacji na vipserv.org

Witam,

testuje sobie konto na vipserv.org i mam problem z aplikacja. Caly czas wywala error 500, gdy w gre wchodza jakiekolwiek operacje na bazie danych. Podejrzewam, ze jest to problem zwiazany z tym, ze nie potrafie zmienic srodowiska aplikacji z development na production (na serwerze jest zainstalowany rails 2.3.2, wiec zmiana RAILS_ENV w environment.rb nie skutkuje). W panelu hostingu kreujac projekt za posrednictwem rack, zawsze tworzy sie w srodowisku development, zas passenger dziala w production i mysle ze stad te bledy. Czy jest jakis sposob na zmiane srodowiska na production w tak ograniczonych warunkach jakie sa na vipservie? Moze problem tkwi w tym, ze aplikacje pisalem pod rails 2.3.3 i jedynym wyjsciem jest aktualizacja gemow przez admina na serwerze? Wskazywalby na to fakt, ze operacje na bazie w aplikacjach stworzonych przez panel z dodanym w shellu scaffoldem nie wywalaja bledu 500. Blad ten jest railsowy, nie apachowy. :slight_smile:

Z gory dziekuje za wszelkie sugestie i pomysly, bo juz nie mam polowy wlosow, a jest to moja pierwsza aplikacja w RoR, wiec doswiadczenia z wdrazaniem do srodowiska produkcyjnego u mnie brak.

Najlepiej napisz do supportu hostingu. Skoro oferują hosting rails to powinni pomóc w ustawieniu wszystkiego.

Aplikacja powinna działać niezależnie czy masz development czy production ustawione. W dev będzie trochę wolniej.

Czy restart Apache nie pomaga (czasem na Passenger’a to jedyny ratunek)? Czy w logach aplikacji lub Apacha widać jakieś komunikaty o błędach (error.log)?

Odpal konsolę. ./script/console z poziomu shella z katalogu aplikacji – wielce prawdopodobne jest że wyświetli Ci bardziej konkretny error na ekran.

Zdaje się że jakiś czas temu miałem podobny problem. Passenger odpalał railsy w production mode, a miałem tylko konfigurację zapisaną w database.yml dla development mode. Rozwiązanie dodać do pliku database.yml konfigurację dla production albo w pliku konfiguracyjnym passengera (na ubuntu to będzie: /etc/apache2/mods-available/passenger.conf") dodać linijkę:
RailsEnv “development”

Zwykle na serwerze produkcyjnym używa się środowiska production, a nie development. Także lepiej znaleźć przyczynę dlaczego nie działa w środowisku production. Zgadywanie nie ma sensu, trzeba przejrzeć logi albo uruchomić RAILS_ENV=production script/console lub RAILS_ENV=production script/server i zobaczyć jaki wyjątek pojawi się na konsoli.