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.
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.
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)?
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.