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 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

