Phusion Passenger na MacOSX Leopard do developmentu Rails

Jedną z pierwszych komend który poznaje każdy programista Ruby on Rails, jest komenda script/server która uruchamia nam mały podręczny serwer Railsów. Domyślnie w obecnej wersji Rails jest to serwer Mongrel autorstwa kontrowersyjnego prowokatora i programisty Zeda Shaw’a. Do tego servera zdążyliśmy się już dość mocno przyzwyczaić jako że długo służył nam ten “kundelek” za środowisko produkcyjne w połączeniu z mod balancerami. Wszystko się zmienia i przyszedł również czas na zmiany w deploymencie, doczekaliśmy się porządnego modułu apacha o nazwie Phusion Passenger, który sprawił że uruchomienie Railsów powinno być równie proste co uruchomienie PHP.

Szybko ktoś wpadł na pomysł by wykorzystać Passenger’a jako serwer developerski(nie cierpie tego określenia;) rozwojowy (dziękuje Jacku za podpowiedź), a oto jak można tego dokonać:

W pierwszej kolejności instalujemy Passengera:

$ sudo gem install passenger
$ sudo passenger-install-apache2-module

Następnie modyfikujemy konfiguracje pliku httpd.conf:

$ sudo mate /etc/apache2/httpd.conf

dodając na końcu pliku:

...
LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-2.0.6/ext/apache2/mod_passenger.so
PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-2.0.6
PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

W tym momencie sciągamy sobie gotowy panel sterowania dla Passengera o nazwie Passenger Preference Pane w wersji 1.1 z stąd.

W tym momecie możemy zainstalowac w/w panel i po odblokowaniu (kłódeczka) możemy wygodnie dodawać nasze aplikacje w raz z lokalnymi adresami (np myapp.local).

passenger Passenger Pref Pane

Na koniec został nam jeden szczegół a mianowicie łatwy restart naszej aplikacji w wygodny sposób. W tym celu dodajemy taki o to alias do naszego pliku ~/.profile:

alias restart=' > log/development.log; touch tmp/restart.txt; tail -f log/development.log; '

W tym momencie możemy z poziomu katalogu naszej aplikacji (dodanej w panelu wspomnianym wyżej) wykonać polecenie:

$ restart

które będzie od dzisiaj dla nas poleceniem analogicznym do script/server.

Możemy ustawić Passengera w tryb permanetnego restartu w ramach nowego requestu

$ touch tmp/always_restart.txt
blog comments powered by Disqus