Muszę chwilowo odpadalać jeden skrypt php pod aplikacją railsową. Jak radzilibyście to zrobić?
W apache’u można to zrobić używając mod_rewrite. Ale mało to wygodne i apache zbyt szybki nie jest. W lighttpd jest już łatwiej można użyć fcgi i obsługiwać nim pliki .php. Tyle, że jzabiello pisał u siebie na blogu o problemach z lighttpd. Ktoś jeszcze miał takie problemy przy deploymencie? Ryzykować wybranie tej opcji?
Jest jeszcze trzecia opcja - nginx, o którym również pisał jzabiello. Z tego co udało mi się wyczytać z dokumentacji obsłguę plików php możnaby zrobić podobnie jak w lighttpd. Ma ktoś z tym jakieś doświadczenia?
Najprawdopodobniej będę chciał też to połączyć kilkoma mongrelami.
Na swoim serwerze używam nginxa. Odpalam PHP za pomocą spawn_fcgi (jest dostępny razem z Lighttpd). W nginx robię proxy do niego. Na stronie angielskiej dokumentacji nginxa jest opisane jak podpinać PHP. Prosta sprawa.
No bez przesady, Apache nie jest aż tak wolny. W pracy używam Apache 2.2.3, który obsługuje zarówno PHP jak i Rails.
Tak. Ale musi to być to być nowy Apache (wersja minimum 2.1) aby miał moduł mod_proxy_balancer. Starszy Apache nie ma tego modułu i nie masz jak rozłożyć ruch do kilku procesów Mongrela.
Mhm… w starszych mogę tylko mod_proxy na jednego.
Dzięki jeszcze raz za pomoc
EDIT:
Poległem
Jest tu jakiś czarodziej od mod_rewrite, który by mnie wspomógł? Chciałem napisać reguły, dzięki którym aplikacja railsowa chodzi jak gdyby nigdy nic, a jak wpiszemy nazwę pliku *.php, to uruchamia się ten właśnie skrypt. Nie wiem jak to wszystko podpiąć, żeby poprawnie parsowało php - wyskakuje mi jako zwykły tekst, albo Application Error.
Może ktoś ma już napisane gotowe rozwiązanie? Bo ja nad tym pół wieczoru spędziłem i nic.
EDIT2:
Skoro nikt nic nie pisze, to ja może powiem jak to rozwiązałem tymczasowo. Skonfigurowałem apache’u virtual host’a, z DocumentRoot w katalogu /pat/to/rails/app/public/php i ustawiłem prostą regułą rewrite, która przekierowuje wszystkie zapytania z tego katalogu php (php/*.php) na owego virtualnego hosta. Trochę to na około i nieładne, ale to tylko na czas przepisania kilku rzeczy z php na railsy.