Totalne początki

Witam!

Zacząłem się interesować ROR z różnych względów. Jestem programistą PHP i konfigurację apache/mysql/to co trzeba mam całkiem nieźle już wyuczoną:) Czas się rozwinąć i poznać ruby. Tylko wiadomo, początki są najtrudniejsze. Mam pytanie o taką rzecz - w jaki sposób wykonać takie coś:

wpisanie:
http://dev.localhost/ror/test/ - aby traktowane było jako fcgi poprzez ruby, a natomiast:
http://dev.localhost/ror/inne/test.php - aby parsowane było przez php?

Póki co osiągnąłem coś takiego, że test.php ładnie uruchamia mi php, natomiast jeśli chodzi o aplikację ruby - ten domyślny index.html ładuje mi sie (Welcome aboard), natomiast kliknięcie na: About your application’s environment - to błąd 404. Uruchomienie
ruby script/server
uruchamia mi serwer na porcie 3000 i informuje mnie jak należy:

Ruby version 1.8.7 (i686-linux) RubyGems version 1.2.0 Rails version 2.1.1 Active Record version 2.1.1 Action Pack version 2.1.1 Active Resource version 2.1.1 Action Mailer version 2.1.1 Active Support version 2.1.1 Application root /home/omix/www/development_day/ror Environment development Database adapter sqlite3 Database schema version 0
W jaki sposób to zintegrować z apache?

dzięki wielkie za pomoc.

pozdrawiam
Mikołaj
ps. Pewnie odeślecie mnie do google, ale naprawdę szukałem tego i nadal szukam :slight_smile:

dobra - eclipse, z modułem ruby

Uruchamia mi ładnie wybrane skrypty przeze mnie, ale wciąż nie napisane przeze mnie. Nadal szukam w internecie. Do tego wciąż z portu 3000… Już rozumiem, że to po prostu jest taka konieczność w czasie pisania i debugowania skryptu, ale nadal nie znam rozwiązania, jak to połączyć z apachem :frowning:

  1. Nie baw się w FCGI, lepiej zainstaluj Passengera i odpalaj Rails’y przez niego.
  2. Z tym ror/test ror/inne to albo po prostu wrzuć aplikację do katalogu test albo będziesz się musiał pobawić po stronie apache i skonfigurować vhosty (, np. mod rewrite, albo jakiś alias czy nawet proxy do samego siebie) tak żeby requesty na ror/test/ szły do passengera a inne do php. Niestety nie mam czasu żeby Ci to dokładnie napisać teraz. Na pewno znajdziesz w dokumentacji apache, aha jeszcze jedno: Passenger rozpoznaje aplikację Railsową po strukturze katalogów więc jeśli tylko go “wpuścisz” w odpowiednie miejsce to powinien ruszyć.
  3. Możesz postawić te aplikacje na osobnych subdomenach jeśli nie dasz sobie rady z powyższym

Moim zdaniem najwygodniej skorzystac z Passengera i kolejne aplikacje dodawac jako wirtualne hosty pod lokalnymi domenami. Proponuje skorzystac z railscasts.

dzięki wielkie. Przyjrzę się tematowi, bo jeszcze nie wiem, co będzie lepsze… i po bojach w pracy z ROR chyba nie będę mieszać php i ror, tylko wszystko na całość postaram się w ruby napisać.

Acha… no i Eclipse działa z ruby, ale sprawdzam aptanę, bo u niej z kopyta działa + obsługę PHP można spokojnie włączyć

Polecam jeszcze przyjrzec sie Netbeansowi.

hmm… ściągam, aptana wiesza mi się przy próbie załadowania mozilli w okno:) Ale te eclipsowate produkty tak mają czasem.

netbeans - już szukam
dzięki wielkie

Do wdrazania aplikacji na serwer passenger jest obecnie liderem. Wszystkie inne konfiguracje, od fcgi, mongrela, thina, goda, skonczywszy na mod_ruby wymiekaja. Passenger aka mod_rails jest po prostu najprostrzy w konfgiruowaniu i najbardziej elastyczny. Jednak jesli masz zamiar pracowac na aplikacji w srodowisku developerskim, lokalnie, nadal mongrel, lub po prostu ./script/server jest imho najlepszy.

Chociaz tak gdyby sie glebiej zastanowic :slight_smile: to gdyby do listy tych komend:

passenger-config passenger-make-enterprisey passenger-spawn-server passenger-stress-test passenger-install-apache2-module passenger-memory-stats passenger-status
dodac passenger-restart [nazwa_aplikacji]/[nazwa ServerName/ServerAlias z listy vhostow apacza]
to mysle ze passenger jako server aplikacji do developmentu stal by sie duzo przyjemniejszy, tworzenie pliku restart.txt w tmp aby zrestartowac wszystkie spawn’y jest troche prymitywne gdy do dyspozycji mamy takie bajery jak passenger-status.

passengera nie instalowałem jeszcze, dzisiaj kiepski dzień na to jest u mnie:( Czy konfigurując go, tak aby działał serwer na porcie 80, aplikacje PHP też bądą współpracować?

Tak, bo aplikację na passengerze konfigurujesz jak aplikacje pehapowe, czyli per-subdomena (katalog sites-available itd.).

Ale do deweloperki koniecznie Mongrel, najwygodniejszy :slight_smile:

Co racja, to racja. Ja sobie napisalem maly skrypt, zeby bylo troche ladniej. Jakby ktos chcial, prosze bardzo:

[code=bash]#!/bin/bash

passenger-restart-app

rails_dir=/home/rafal/Projekty/rails # sciezka do katalogu z projektami rails

if [ -d pwd/tmp ]; then
touch tmp/restart.txt
elif [ ! $1 ]; then
echo “passenger-restart-app nazwa_aplikacji - probuje stworzyc plik restart.txt […]”
echo ‘passenger-restart-app - jezeli znajdujesz sie w katalogu aplikacji rails […]’
else
touch $rails_dir/$1/tmp/restart.txt
fi[/code]
Podpowiedz powinna wygladac tak:
[color=#666666]passenger-restart-app nazwa_aplikacji - probuje stworzyc plik restart.txt w katalogu /home/rafal/Projekty/rails/nazwa_aplikacji/tmp
passenger-restart-app - jezeli znajdujesz sie w katalogu aplikacji rails (w aktualnym katalogu istnieje katalog tmp), probuje stworzyc plik restart.txt w katalogu tmp, w przeciwnym razie drukuje ta podpowiedz[/color]