Jakiś czas temu sporo namęczyłem się z odpaleniem jednej aplikacji RoR tak by działała na wielu domenach równocześnie (i dla każdej z nich troszkę inaczej się zachowywała.
Całość to sieć sklepów internetowych sprzedających różne systemy antywirusowe z jedną bazą danych i jednym panelem administracyjnym).
Niestety nie posiadam własnej maszyny a tylko współdzielony hosting na DreamHost.com więc uciec się musiałem do kilku prostych sztuczek. Po pierwsze uruchomić mod_rails na każdej subdomenie, po drugie utworzyć symlinki z katalogów subdomen na katalog z aplikacją.
Wystarczyło na katalog "public" - jednak nie wiem czy to najlepszy pomysł gdyż podczas prób mod_rails kilka razy się wywalił… jeśli ktoś wymyśli lepszy pomysł to bardzo proszę o maila :) - może było by zsymlinkować cały katalog z aplikacją?.
Wykrywanie domeny przez którą klient łączy się ze sklepem również do trudnych nie należało, w app/application.rb mam funkcję która inicjalizuje zmienną @strona (którą później używam do wczytania odpowiedniej konfiguracji)
@strona = Site.find_by_host(request.host)
- Site - moja tabela w bazie danych gdzie trzymane są ustawienia dla różnych domen
- find_by_host - szukanie po odpowiedniej kolumnie gdzie są zapisane domeny
- request.host - zmienna w której zapisany jest host przez który się łączymy ze stroną
Dodaj komentarz!