Typo/Rails przez FCGI na dzielonym hostingu (site5)
Typo to, oparty o Rails 2.0, engine blogowy. Wśród głównych cech wylicza się:
Jako, że nie posiadam swojego VPSa – a tylko dzielony hosting (pewnie jak większość ludzi mających swoje miejsce w sieci), postanowiłem odpalić aplikację Typo przez FastCGI. Całość poniższych kroków przeprowadziłem na swoim hostingu u Site5.
Instalacja Typo
Lokacja gemów
Przede wszystkim trzeba ustawić miejsce do instalacji prywatnych gemów. Choćby dlatego, że nie ma dostępu do globalnego repo (a nawet gdyby był to i tak lepiej instalować gemy dla siebie).
Dostęp i kolejność wyszukiwania gemów kontrolują dwie zmienne systemowe: GEM_HOME i GEM_PATH. W zasadzie wszystko co potrzebne w tym kroku opisane jest w Wiki Rails, ale dla przypomnienia: GEM_HOME jest dla zapisu gemów, GEM_PATH jest dla odczytu gemów.
- Sprawdzić aktualne ustawienie
GEM_PATH:gem env
- Stworzyć katalog na repo i dodać do ścieżki wyszukiwania oraz instalacji:
mkdir -p ~/lib/ruby/gems/1.8 export GEM_PATH=~/lib/ruby/gems/1.8:/usr/lib/ruby/gems/1.8 export GEM_HOME=~/lib/ruby/gems/1.81
- Sprawdzić nowe ustawienia:
gem env
Po tym kroku jako
INSTALLATION DIRECTORYpowinien widnieć „domowy” katalog gemów, natomiastGEM PATHpowinno zawierać min. dwa wpisy — przy czym jako pierwszy powinien być znów „domowy” katalog gemów. - Ustawić ścieżkę dostępu do skryptów gemów:
export PATH=$PATH:~/lib/ruby/gems/1.8/bin1
Instalacja gemów dla Typo (Rails 2.0!)
Tutaj w zasadzie jest już prosto. Wystarczy wpisać:
gem install typo -y --no-rdoc --no-ri2
Tworzenie i konfiguracja podstawowej aplikacji
Tworzenie aplikacji
Żeby nie tworzyć aplikacji w głównym katalogu domowym ~/ można stworzyć sobie podkatalog na aplikacje (zarówno Typo, aplikacje Merba, czy inne aplikacje Rails).
mkdir -p ~/apps
typo install typo
Konfiguracja bazy danych
Na początek trzeba ustawić właściwą konfigurację Typo. Domyślnie Typo zakłada bazę danych w sqlite, ja chciałem mieć MySQL.
typo config ~/apps/typo database=mysql web-server=external
Parametr web-server=external informuje typo, że będzie działało przy pomocy zewnętrznego serwera WWW (apache) zamiast mongrel/mongrel_cluster.
Potem modyfikacja ~/apps/typo/config/database.yml:
login: &login
adapter: mysql
username: database_user
password: "funkysh1t"
socket: /tmp/mysql.sock
development:
<<: *login
database: database_name
production:
<<: *login
database: database_name
Trzeba też nadać poprawne uprawnienia do pliku konfiguracyjnego bazy:
chmod 644 ~/apps/typo/config/database.yml
Konfiguracja środowiska uruchomieniowego
Środowisko
Trzeba wyedytować plik ~/apps/typo/config/environment.rb i odkomentować linię
ENV['RAILS_ENV'] ||= 'production'
i najlepiej tuż pod spodem dopisać:
RAILS_ENV = ENV['RAILS_ENV']
Przekierowanie w .htaccess
Jedną z najważniejszych linii jest linia pierwsza (sic!):
SetEnv RAILS_ENV production
a potem
Options +FollowSymLinks +ExecCGI
RewriteEngine on
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
ErrorDocument 500 "Typo failed"
A sam plik przekierowania dispatch.fcgi już powinien być na miejscu.
Jeśli nie to pewnie jest to dispatch.fcgi.example — wtedy wystarczy zmienić mu nazwę.
Link w subdomenie
I teraz najważniejsze: robimy punkt dostępu do naszego bloga w domenie/subdomenie
ln -s ~/apps/typo/public ~/public_html/subdomena/blog
Ważne: linkujemy do katalogu public, bez ukośnika na końcu!
Uruchomienie
Po wpisanie URLa subdomena.domena.tld/blog/ (zwróć uwagę na ukośnik!) wszystko powinno zabanglać.
Jeśli nie to mamy kilka sposobów na zdiagnozowanie problemu. Od najłatwiejszego:
1. Spojrzeć co siedzi w logach aplikacji (~/apps/typo/log) i plikach błędów serwera
2. Odpalić dispatch.fcgi ręcznie z katalogu public (i zajrzeć w logi)
3. Odpalić z katalogu głównego aplikacji ruby ./script/console
Przypisy
#1 Dobrym pomysłem jest dopisanie obu eksportów do .bashrc czy .zshrc.
#2 Dzielony hosting to nie najlepszy pomysł na środowisko deweloperskie, więc dokumentacja nie jest na tutaj potrzebna.
±
Komentarze do wpisu "Typo/Rails przez FCGI na dzielonym hostingu (site5)":
Jeszcze nie ma żadnych komentarzy. Twój może być pierwszy.
Dodaj komentarz: