Déployer Radiant sur Debian avec Apache 2 et fastcgi


#1

Bonjour,

J’essaye de déployer mon application Radiant application avec Apache 2
et fastcgi sur Debian.

J’ai modifié le fichier public/.htaccess, en ajoutant:

AddHandler fcgid-script .fcgi
et
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

et créé un virtual host comme ceci:

[code]<VirtualHost *>
ServerAdmin webmaster@localhost
ServerName ruby.cms01.uperto.int
DocumentRoot /var/www/test/public/
ErrorLog /var/www/test/log/apache.log

<Directory /var/www/test/public/>
    Options Indexes FollowSymLinks MultiViews ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

[/code]

Ca marche, quand je vais sur ruby.cms01.uperto.int, le chemin
/var/www/test/public/ est suivi et la page de login apparait, mais je
n’ai aucune image, ni stylesheets ou javascript.

Il semblerait que les images, css et javascript ne soient pas “trouvés”.
Si je regarde les log, je vois que les images et stylesheets sont
récupérés avec l’adresse exacte:

[…]

Processing SiteController#show_page (for 192.168.30.63 at 2007-07-06
10:14:42) [GET]
Parameters: {“1183563136”=>nil, “action”=>“show_page”,
“url”=>[“stylesheets”, “admin”, “main.css”], “controller”=>“site”}
Redirected to http://ruby.cms01.uperto.int/admin/welcome
Completed in 0.00555 (180 reqs/sec) | DB: 0.00288 (51%) | 302 Found
[http://ruby.cms01.uperto.int/stylesheets/admin/main.css?1183563136]

[…]

Processing SiteController#show_page (for 192.168.30.63 at 2007-07-06
10:14:45) [GET]
Parameters: {“1183563136”=>nil, “action”=>“show_page”,
“url”=>[“images”, “admin”, “view-site.gif”], “controller”=>“site”}
Redirected to http://ruby.cms01.uperto.int/admin/welcome
Completed in 0.00538 (185 reqs/sec) | DB: 0.00283 (52%) | 302 Found
[http://ruby.cms01.uperto.int/images/admin/view-site.gif?1183563136]

[…]

Les images sont récupérées ici: http://ruby.cms01.uperto.int/images
et le css ici: http://ruby.cms01.uperto.int/stylesheets
L’adresse devrait être remplacée par le chemin réel, donc les images et
css devraient être récupérés…

Cela ne viendrait-il pas du fait que la règle de réécriture (
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] ) redirige tout vers la page
actuelle? En effet, si je tape dans ma barre d’adresse
http://ruby.cms01.uperto.int/images/admin/view-site.gif?1183563136”, je
suis redirigé vers “http://ruby.cms01.uperto.int/admin/login” (si je ne
suis pas logué)…

Si vous voyez où est mon erreur…

Merci beaucoup d’avance :wink:


#2

Bonjour,

Cela ne viendrait-il pas du fait que la règle de réécriture (

RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] ) redirige tout vers la page
actuelle? En effet, si je tape dans ma barre d’adresse
http://ruby.cms01.uperto.int/images/admin/view-site.gif?1183563136”, je
suis redirigé vers “http://ruby.cms01.uperto.int/admin/login” (si je ne
suis pas logué)…

Tu renvoies tout vers fcgi or rails ne sait pas afficher tes images car
il
essaye d’executer ca en tant que controller/action

Bref il ne faut renvoyer vers fcgi qu’en dernier recourt quand le
fichier
n’existe pas sur le serveur:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

Si tu veux rajouter la gestion du cache static pour rails tu dois
rajouter
deux règles

RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

Mais c’est très facile à trouver sur google comme info…


#3

En effet ça marche comme ça… merci beaucoup :wink:

J’avais en fait pas bien compris comment marchaient ces règles…c’est
plus clair maintenant :wink: