Come usare Rails con Apache?

Come usare Rails con Apache?
In sostanzsa non so come fare per modificare i file di configurazione di
Apache per usare il rewrite con Ruby (su localhost).
Spero esista qualche anima buona disposta ad aiutarmi finché non
risolvo.
Viene detto che la comunità nata intorno a Ruby è composto da
entusiasti, mi auguro di risolvere questo problema pena il non usare né
rails né altri framework (tipo cakephp) per lo sviluppo. :frowning:
Sbatto la testa da un po’ senza ottenere risultati. :frowning:

Ad es. una volta che ho caricato il modulo per ruby su Apache è
necessario per forza caricare pure l’estensione Fastcgi?
Come faccio a reindirizzare (in Apache) la pagina
/var/www/myrubyapplication/public
in modo che possa lanciarla in questo modo:
http://localhost/myrubyapplication
Vorrei evitare l’uso di un servername per l’applicazione, tanto non li
userò.
E’ necessario fare un virtualserver separato?
In che modo?
Nel mio sistema Linux Ubuntu (poi farò la stessa cosa su Windows) ho
un’istruzione del tipo:
<VirtualHost *.80>

Se qualcuno riuscirà a spiegarmi per bene come risolvere questo problema
potrò finalmente fare parte di questa comunità , dopo tanti sbattimenti
di testa al muro. :frowning:

Ciao Ale :frowning:

Nota:
Ho già letto di tutto senza venire a capo di questo problema. :frowning:
Ho postato qui perché pur capendo bene l’inglese, non lo parlo e non lo
scrivo bene. :frowning:

On 2/21/07, Alex R. [email protected] wrote:

Come usare Rails con Apache?
In sostanzsa non so come fare per modificare i file di configurazione di
Apache per usare il rewrite con Ruby (su localhost).
Spero esista qualche anima buona disposta ad aiutarmi finché non
risolvo.
Viene detto che la comunità nata intorno a Ruby è composto da
entusiasti, mi auguro di risolvere questo problema pena il non usare né
rails né altri framework (tipo cakephp) per lo sviluppo. :frowning:
Sbatto la testa da un po’ senza ottenere risultati. :frowning:

Ad es. una volta che ho caricato il modulo per ruby su Apache è
necessario per forza caricare pure l’estensione Fastcgi?

E’ sconsigliato usare il modulo mod_ruby. Ti consiglio come prima
cosa di fare funzionare la tua applicazione con il metodo CGI, che non
è un fulmine ma è sufficiente.

Come faccio a reindirizzare (in Apache) la pagina
/var/www/myrubyapplication/public
in modo che possa lanciarla in questo modo:
http://localhost/myrubyapplication

Due maniere: o crei un soft link da /var/www/htdocs/myrubyapplication
a /home/testesso/myrubyapplication/public, oppure definisci un
name-based virtual host in httpd.conf, e poi metti questa riga

127.0.0.1 myrubyapplication

nel tuo file /etc/hosts

In bocca al lupo…

M

Matteo V. wrote:

E’ sconsigliato usare il modulo mod_ruby. Ti consiglio come prima
cosa di fare funzionare la tua applicazione con il metodo CGI, che non
� un fulmine ma � sufficiente.
Questa cosa non mi torna … nella documentazione The Pragmatic
Programmer’s Guide viene specificato che presenta molti vantaggi
rispetto alla soluzione CGI.

Come faccio a reindirizzare (in Apache) la pagina
/var/www/myrubyapplication/public
in modo che possa lanciarla in questo modo:
http://localhost/myrubyapplication

Due maniere: o crei un soft link da /var/www/htdocs/myrubyapplication
a /home/testesso/myrubyapplication/public, oppure definisci un
name-based virtual host in httpd.conf, e poi metti questa riga

127.0.0.1 myrubyapplication

nel tuo file /etc/hosts

In bocca al lupo…

M
Creando un soft link è possibile risolvere problemi di sicurezza,
essendo i file in una locazione non direttamente accessibile al web,
senza dover per forza toccare httpd.conf?
Wow!
Mi avresti risolto molti problemi già con questa indicazione (certo io
fino adesso ho tutto in locale però è un’ottimo sistema!).
Nelle distribuzioni debian-based, i file di configurazione sono
separati, non so se magari qualcuno può pubblicare i file che usa nel
suo sistema …, intendo per accedere ai suoi progetti in localhost.

Attualmente riesco ad eseguire ror con il suo web server oppure con
mongrel.

Ciao Ale

Nota:
Cerco di fare sapere prima possibile come è andata a finire, non so se
riuscirò subito … :-/

Sto usando mod_fcgid con successo.


David N. Welton

Linux, Open Source Consulting

David W. wrote:

Sto usando mod_fcgid con successo.

Nell’eventualità che utilizzi un sistema debian-based tu, o altri, mi
dareste un esempio funzionante, di file di configurazione da usarsi con
Apache 2?
Penso sia sufficiente il virtualhost che usate, sto parlando sempre di
applicazioni residenti in localhost.

Questo è il file, di default, presente nel mio sistema:
/etc/apache2/sites-available/default
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www

Options FollowSymLinks
AllowOverride None

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews

AllowOverride None
Order allow,deny
allow from all
# Uncomment this directive is you want to see apache2's
# default start page (in /apache2-default) when you go to /
#RedirectMatch ^/$ /apache2-default/

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all

ErrorLog /var/log/apache2/error.log

Possible values include: debug, info, notice, warn, error, crit,

alert, emerg.

LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

Occorre crearne un’altro per rails?
Come si integra con il default?
Come crearlo?

Ciao Ale

Nota:
Per adesso, comunque, non ho ottenuto nessun risultato.
Usando webbrick o mongrel, senza integrazione con Apache 2, mi va bene
in qualsiasi parte metta il progetto, ma per il resto, niente da fare.
:frowning:

In /etc/hosts
127.0.0.1 localhost www.prova5minuti.it

Ho creato un nuovo virtualhost.
/etc/apache2/sites-available/prova5minuti

NameVirtualHost *:3000
<VirtualHost *:3000>
DocumentRoot /var/www/rails/hello/public
# Server name
ServerName www.prova5minuti.it

# Proxy ACL
<Proxy *>
    Order allow,deny
    Allow from all
</Proxy>

# Proxy directives
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/

ProxyPass /images !
ProxyPass /stylesheets !

Alias /images /var/www/rails/hello/public/images
Alias /stylesheets /var/www/rails/hello/public/stylesheets

ProxyPreserveHost on

# Logfiles
ErrorLog  /var/log/apache2/prova5minuti.error.log
CustomLog /var/log/apache2/prova5minuti.access.log combined

Adesso, specificando:
http://www.prova5minuti.it/rails/hello/public/
arrivo alla pagina di benvenuto ma dell’applicazione, che si limita a
visualizzare la scritta hello, nessuna traccia!
Inoltre cliccando su :
About your application’s environment
compare:
The requested URL /rails/hello/public/rails/info/properties was not
found on this server.

Naturalmente, ho avviato in precedenza mongrel.

Dove sto ancora sbagliando?

Ciao Ale :frowning:

Nota:
Usando
NameVirtualHost *:80
<VirtualHost *:80>
Apache2 segnalava:
[warn] NameVirtualHost *:80 has no VirtualHosts
[warn] NameVirtualHost *:80 has no VirtualHosts
quindi ho messo 3000 (che è la porta di default in cui sta in ascolto
mongrel e pure webbrick.

Specificando soltanto:
www.prova5minuti.it
invece vado in /var/www.

:frowning:

Lanciando l’applicazione direttamente da mongrel invece tutto ok.
http://localhost:3000/
Pagina di benvenuto.
About your application’s environment
Ruby version 1.8.4 (i486-linux)
RubyGems version 0.9.2
Rails version 1.2.2
Active Record version 1.15.2
Action Pack version 1.13.2
Action Web Service version 1.2.2
Action Mailer version 1.3.2
Active Support version 1.4.1
Application root /var/www/rails/hello
Environment development
Database adapter mysql

Digitando:
http://localhost:3000/ciao
tutto ok.

Come ottenere lo stesso risultato usando Apache 2 e mongrel?

Ciao Ale :frowning:

On 2/27/07, Alex R. [email protected] wrote:

David W. wrote:

Sto usando mod_fcgid con successo.

Nell’eventualità che utilizzi un sistema debian-based tu, o altri, mi
dareste un esempio funzionante, di file di configurazione da usarsi con
Apache 2?

Uso sistemi debian da 10 anni:-)

AddHandler fcgid-script .fcgi SocketPath /var/lib/apache2/fcgid/sock

IPCCommTimeout 20
IPCConnectTimeout 20

ProcessLifeTime 6000
IdleTimeout 600

/etc/apache2/mods-enabled/fcgid.conf
    DocumentRoot .../mysite/public

    <Directory .../mysite/public>
            AddHandler fcgid-script .fcgi
            Options +FollowSymLinks +ExecCGI
            RewriteEngine On
            RewriteRule ^$ index.html [QSA]
            RewriteRule ^([^.]+)$ $1.html [QSA]
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
            ErrorDocument 500 "<h2>Application error</h2>Rails 

application f
ailed to start properly"


David N. Welton

Linux, Open Source Consulting

Scusa la mia ignoranza ma questi dati, nel mio file default, dove vanno
inseriti? Mi potresti riscrivere i tuoi dati, dentro il mio file
default, così me lo copio e lo provo?

Non ho proprio tempo, mi dispiace. Comunque, e facilissimo, basta fare apt-get mod_fcgid, o comesichiama, e hai piu o meno tutto.


David N. Welton

Linux, Open Source Consulting

David W. wrote:

On 2/27/07, Alex R. [email protected] wrote:

David W. wrote:

Sto usando mod_fcgid con successo.

Nell’eventualit� che utilizzi un sistema debian-based tu, o altri, mi
dareste un esempio funzionante, di file di configurazione da usarsi con
Apache 2?

Uso sistemi debian da 10 anni:-)

AddHandler fcgid-script .fcgi SocketPath /var/lib/apache2/fcgid/sock

IPCCommTimeout 20
IPCConnectTimeout 20

ProcessLifeTime 6000
IdleTimeout 600

/etc/apache2/mods-enabled/fcgid.conf
    DocumentRoot .../mysite/public

    <Directory .../mysite/public>
            AddHandler fcgid-script .fcgi
            Options +FollowSymLinks +ExecCGI
            RewriteEngine On
            RewriteRule ^$ index.html [QSA]
            RewriteRule ^([^.]+)$ $1.html [QSA]
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
            ErrorDocument 500 "<h2>Application error</h2>Rails 

application f
ailed to start properly"


David N. Welton

Linux, Open Source Consulting

Scusa la mia ignoranza ma questi dati, nel mio file default, dove vanno
inseriti? Mi potresti riscrivere i tuoi dati, dentro il mio file
default, così me lo copio e lo provo?

Ciao Ale :slight_smile:

Nota:
Scusa ancora ma sulla configurazione di Apache, nonostante abbia letto
la documentazione di Apache, non ci capisco molto, magari per te sarÃ
chiarissima, per me ancora no …