Passenger + Apache + Mysql @ Fedora

Witam,

Końcem konców postanowiłem porzucić środowisko Windowsowskie i Instant Railsy na rzecz Linuxa, ale pojawil sie problem, ktory odbiera mi wszelkie sily witalne :slight_smile:
Postawilem sobie serwer na developke, koniecznie uzywajac do tego Passengera.

Wszystko ladnie sie zainstalowalo, lacznie z Passengerem, strona startowa rubiego po utworzeniu nowego projektu sie pokazuje. Ale gdy tylko staram sie odlowac do jakiego kolwiek kontrolera(nie wazne czy istniejacego czy nie) to pojawia sie komunikat “We’re sorry, but something went wrong(500)”. Chetnie bym pokazal logi, ale w ogole sie nie generuja.

Nawet nie mam pewnosci czy Passanger dobrze dziala. Jak to sprawdzic? Bo wkoncu strona startowa nowego projektu to zwykly .html.

Bardzo prosze o wskazowki. Jak w ogole podejsc do tematu, skoro zadne logi nie leca?

Ps. Przejrzalem podobne tematy, ale tam ludzie mecza Webricka/Mongrela, a mi zalezy tylko i wylacznie na powyzszym zestawieniu… Jestem sklonny nawet zaplacic jakas symboliczna kwote za pomoc w rozwiazaniu problemu…

To jest strona: public/500.html.
Skonfigurowałeś VirtualHost dla tej aplikacji? tam powinieneś mieć wpis ErrorLog i CustomLog. Masz te wpisy? Sprawdzałeś te logi?

pozdrawiam

Jak są jakieś dziwne błędy z passengerem, to najlepiej spróbować odpalić aplikację w mongrelu i sprawdzić jakie wyrzuci błędy.

sudo gem install mongrel cd /path/to/app mongrel_rails start
Wklej też tutaj to co masz w w apachu dla tej aplikacji.

W httpd.conf mam dopisane:

<VirtualHost *:80>
ServerName www.yourhost.com
DocumentRoot /home/www/testapp/public

I dokladnie takie mam polozenie katalogow. Wszystkie prawa nadane dobrze, na wszelki wypadek wylaczylem SELinux.

I teraz logi Apache - Error_log:
[Sun May 17 22:54:09 2009] [notice] Apache/2.2.11 (Unix) DAV/2 Phusion_Passenger/2.2.2 PHP/5.2.6 configured – resuming normal operations

I Acces_log:
127.0.0.1 - - [17/May/2009:22:54:45 +0200] “GET /home/index HTTP/1.1” 500 948 “-” “Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042708 Fedora/3.0.10-1.fc10 Firefox/3.0.10”


Pod Mongrelem smiga wszystko wysmienicie :<

Aplikacja Ci startuje, w każdym razie zwraca stronę 500-ki (gdyby nie wystartowała, dostałbyś kolorową stronę z błędem Passengera).

Wklej loga /home/www/testapp/log/development.log albo /home/www/testapp/log/production.log (zależnie w jakim środowisku odpalasz)

No wlasnie tak jak pisalem, uzywajac Passengera logi w ogole sie nie generuja.

Jedyne co mi sie wygenerowaly to logi od Mongrela jak testowalem przed chwila:

[code]^[[4;36;1mSQL (0.4ms)^[[0m ^[[0;1mSET NAMES ‘utf8’^[[0m
^[[4;35;1mSQL (0.2ms)^[[0m ^[[0mSET SQL_AUTO_IS_NULL=0^[[0m

Processing HomeController#index (for 127.0.0.1 at 2009-05-17 23:04:55) [GET]
Rendering home/index
Completed in 22ms (View: 15, DB: 1) | 200 OK [http://0.0.0.0/home]
^[[4;36;1mSQL (0.2ms)^[[0m ^[[0;1mSET NAMES ‘utf8’^[[0m
^[[4;35;1mSQL (0.1ms)^[[0m ^[[0mSET SQL_AUTO_IS_NULL=0^[[0m

Processing HomeController#say (for 127.0.0.1 at 2009-05-17 23:05:04) [GET]

ActionController::UnknownAction (No action responded to say. Actions: index):

Rendering rescues/layout (not_found)[/code]
Ale to wiadomo. Nie wiadomo, czemu natomiast nie generuja mi sie logi od Passengera? Gdzies sie wlacza jakas opcje? Cos dodatkowo konfiguruje?

Pokaż no kod HomeControllera, bo tu jakiś srogi fakap według tych logów jest :wink:

Tego kontrolera nie ma, byle jaki wpisalem przy testach w Mongrelu - przeciez nie w tym jest problem.
I tak jak powinno wyswietlila sie strona pod Mongrelem, ze nie mozna znalesc takiej akcji/kontrolera, a pod Passengerem mam ta 500tke nieszczesna, ktora nawet logow nie generuje…

No to zobacz co dostaniesz z mongrela jak uruchomisz go w trybie produkcyjnym ( script/server -e production ) ;).

No watpie zeby pod Mongrelem byl jaki kolwiek problem, ale mimo wszystko sprawdze wieczorem jak bede w domu.

a spróbuj:

<VirtualHost *:80> ServerName www.yourhost.com DocumentRoot /home/www/testapp/public ErrorLog /home/www/testapp/log/error.log </VirtualHost>
i zobacz co Ci wyrzuci

obadaj tez logi w katalogu (/private/var/log)/apache2/error.log

Problemu ciąg dalszy…

Przerzuciłem Mongrela na production jak radzil Swistaczek z nadzieją, ze chociaz tam sie beda generowaly logi, ale niestety nic z tego. Blad ten sam(500) i wszystkie logi puste.

Idac dalej, zmienilem VirtualHosta jak radzil Wojciech. Sam error.log w testapp sie stworzyl, natomiast jego zawartosc jest pusta…

Chcialem dojsc do logow apache2/error.log, ale:

find: `apache2': No such file or directory

Jedyne logi do apacha mam w /etc/httpd/logs - ale tam w error_log nie ma zadnych errorow, tylko notice ktory cytowalem kilka postow wyzej…

Wiec problem dalej nierozwiazany - stoje w miejscu…

Yyyy, ale jak odpaliłeś mongrela na konkretnym porcie (domyslnie 3000), to musisz po prostu wbić na serwer poprzez dany port (albo użyć apacza jako zaledwie proxy) bezposrednio.

Rails 2.3.2 application starting on http://0.0.0.0:3000

No i dokladnie po tym adresie wchodze. To chyba dobrze, nie?

A ustaw sobie w “enironment.rb” srodowisko jako produkcyjne i zobacz.

ENV['RAILS_ENV'] = 'production'

Dodałeś odpowiednie linie do httpd.conf ? Czasem się to zdarzy pominąć z rozpędu.

Logi mongrela MUSZĄ się generować chociażby ze startu aplikacji… może coś z pozwoleniami jest nie-teges?

Dodalem linijke w testapp/config/environment.rb o ktorej pisales…
I kolejne kompletne zero progresu…

A w httpd.conf mam dodane zaraz pod innymi “LoadModule” linijki ktore kazano dodac podczas instalacji, ktora zreszta przebiegla bezproblemowo…

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.2/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.2 PassengerRuby /usr/bin/ruby
Czy ktos ma jaki kolwiek pomysl, jak rozwiazac ten problem? Albo jakies wskazowki czemu mam takie pustki w logach( jedyne jakie sie generuja to od Mongrela ustawionego na developke ) ?

Mongrel w produkcji też generuje logi, jesteś na 100% pewien, że mongrel działa Ci jak należy w produkcji? Czy stworzyłeś bazy produkcyjne etc.?
Tą moją linijkę dodaj najlepiej na samej górze environment.rb. Właśnie odkryłem, że też mam pustki w logach z passengera.
Ustaw sobie w hosts odnośnik do www.yourdomain.com na localhosta. W Twoich logach masz daty z 17 maja, wczoraj był 18, restartujesz apache i aplikacje?

ps. poprawka, ja już żyje jutrem :smiley:

dobre z tym 18 :slight_smile:

@caprico zrób tak:
dodaj tej kontroler Home, stwórz tam jakąś akcję hey czy też index i widok (a w nim standardowe hasło dupa.8), żeby pokazywał Ci jakąś działającą stronę. Uruchom na mongrelu i potwierdz, że działa. Później spróbuj przez apacha.

spróbuj whereis apache2, ale ogólnie logi powinieneś mieć w /var/log/apache2
tam powinien być error.log, do którego dopisano by info o passenger w razie problemów.

no i kolejna sprawa, czy apache (zapewne user www-data) ma dostęp do twojej aplikacji? Może chown pomoże.

pozdrawiam

Sukces jest taki, ze pod Mongrelem script/server -d production - juz mi smiga, a jedyne co zrobilem to dodalem nowego uzytkownika i z jego poziomu stworzylem nowy projekt, a nie z poziomu roota…

To juz na jutro na wieczor wroce z pracy bede meczyl temat Passengera dalej i dam znac…
Co do logow to mam je tak jak mowilem dokladnie: /var/log/httpd/error_log i tam nie ma bledow, sa tylko notice ze wystartowal/zakonczyl prace serwer.