Souci cgi
PierreCh29-May-2013/17:42:56+2:00
Bonjour à tous,

J'essaye de faire tourner magic! sur mon apache. Je commence par essayer de faire tourner un cgi, pour piger comment ça marche. Vous notez au passage à quel point j'assure pas du tout côté cgi ni apache.

J'avais suivi le conseil suivant:
I had Magic 3.5 installed and running under Aapche 2.0 on my old machine. I basically followed the instructions in Olivier Auverlot's Guide du Programmeur.

I did introduce the following dir struct:

WebRoot/
 	magic/
		magic css
		html.r
		*.rhtml
		cgi-bin/
			magic.cgi


Here are the relevant lines from Olivier's book about the Apache httpd.conf file:

ScriptAlias magic/cgi-bin/ "/WebRoot/magic/cgi-bin/"
AddHandler cgi-script .cgi

AddHandler magic .rhtml 
Action magic magic/cgi-bin/magic.cgi


Après avoir bien obéi, je tombe, obstinément, sur une erreur 500:
                                                       500 Internal Server Error
                             Internal Server Error

   The server encountered an internal error or misconfiguration and was
   unable to complete your request.

   Please contact the server administrator, webmaster@localhost and inform
   them of the time the error occurred, and anything you might have done
   that may have caused the error.

   More information about this error may be available in the server error
   log.
     __________________________________________________________________


    Apache/2.2.22 (Debian) Server at 127.0.0.1 Port 80


Et le log me dit que:
[Wed May 29 17:34:05 2013] [error] [client 127.0.0.1] Premature end of script headers: test.cgi


Pourtant, je trouve mon test.cgi bien sous tous rapports:
  # pierre@autan: ~$        < 2013_05_29__17_35_22 >
dog /usr/lib/cgi-bin/test.cgi
#!/usr/bin/rebol -cs
REBOL []
print "Content-type: text/html^/"
print "coucou! (signé: Rebol)"



Je farfouine un peu, tombe sur de la doc (http://httpd.apache.org/docs/trunk/fr/howto/cgi.html), je suis les conseils qui y sont prodigués, et fais un peu de perl:
  # pierre@autan: ~$        < 2013_05_29__17_35_22 >
dog /usr/lib/cgi-bin/testpl.cgi
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "coucou! (signé: Perle)";



Et le perl marche, à ma plus grande surprise. Mais qu'ai-je donc fait de mal avec le test.cgi en rebol??

J'ai vérifié les droits d'exécution, ils sont pareils pour les deux scripts:
  # pierre@autan: ~$        < 2013_05_29__17_35_22 >
ll /usr/lib/cgi-bin/test*.cgi
-rwxr-xr-x 1 root root 97 mai   29 09:28 /usr/lib/cgi-bin/test.cgi
-rwxr-xr-x 1 root root 87 mai   29 09:26 /usr/lib/cgi-bin/testpl.cgi


Là, je sais plus... Quelqu'un aurait une idée lumineuse?
PierreCh30-May-2013/9:48:58+2:00
Je viens d'essayer de rajouter un ^/ de plus après la ligne MIME:
print "Content-type: text/html^/^/"


En vain.
PierreCh30-May-2013/9:50:14+2:00
Bon, je vais plutôt poser la question sur stackoverflow. Après tout, c'est un site de questions-réponses, et non pas un forum.
DideC30-May-2013/11:44:15+2:00
Est que ton chemin Rebol est bon (j'image que oui) et est-ce que Rebol est bien CHMODé pour être exécuté par Apache ?
DideC30-May-2013/11:46:56+2:00
Sinon pour que Magic fonctionne (une fois test.cgi OK), moi j'ai juste ça d'ajouté dans le httpd.conf :
AddHandler magic .rhtml
Action magic /cgi-bin/magic.cgi
PierreCh30-May-2013/14:12+2:00
Le chemin Rebol est bon: je peux appeler le script sans mentionner l'interpréteur, directement depuis le shell:
  # pierre@autan: ~$        < 2013_05_30__14_07_36 >
/usr/lib/cgi-bin/test.cgi 
Content-type: text/html


coucou! (signé: Rebol)


Le chmod me semble correct aussi:
  # pierre@autan: ~$        < 2013_05_30__14_07_36 >
ll /usr/bin/rebol 
-rwxr-xr-x 1 root root 1215652 déc.  30 22:50 /usr/bin/rebol
PierreCh30-May-2013/20:52:46+2:00
C'est bon, c'est résolu, merci à Ingo!

La solution était toute bête: il fallait simplement mettre un rebol/core, et non pas un rebol/view...

Pour info, voilà:

  # pierre@autan: ~$        < 2013_05_30__19_52_58 >
cd rebol/telech/

  # pierre@autan: ~/rebol/telech$        < 2013_05_30__19_52_58 >
wget http://www.rebol.com/downloads/v278/rebol-core-278-4-2.tar.gz
--2013-05-30 19:53:27--  http://www.rebol.com/downloads/v278/rebol-core-278-4-2.tar.gz
Résolution de www.rebol.com (www.rebol.com)... 205.134.252.23
Connexion vers www.rebol.com (www.rebol.com)|205.134.252.23|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 224394 (219K) [application/x-gzip]
Sauvegarde en : «rebol-core-278-4-2.tar.gz»

100%[============================================================================================================================================>] 224,394      127K/s   ds 1.7s    

2013-05-30 19:53:29 (127 KB/s) - «rebol-core-278-4-2.tar.gz» sauvegardé [224394/224394]


  # pierre@autan: ~/rebol/telech$        < 2013_05_30__19_52_58 >
tar zxf rebol-core-278-4-2.tar.gz

  # pierre@autan: ~/rebol/telech$        < 2013_05_30__19_52_58 >
su
Mot de passe : 
###ROOT### < 30/05/2013 19:55:06 >   root@autan:/home/pierre/rebol/telech# 
cp releases/rebol-core/rebol /usr/bin/rebol_core
###ROOT### < 30/05/2013 19:55:06 >   root@autan:/home/pierre/rebol/telech# 
chmod a+x /usr/bin/rebol_core 
###ROOT### < 30/05/2013 19:55:06 >   root@autan:/home/pierre/rebol/telech# 
vi /usr/lib/cgi-bin/test.cgi
###ROOT### < 30/05/2013 19:55:06 >   root@autan:/home/pierre/rebol/telech# 
dog /usr/lib/cgi-bin/test.cgi 
#!/usr/bin/rebol_core -cs
REBOL []
print "Content-type: text/html^/^/"
print "coucou! (signé: Rebol)"

###ROOT### < 30/05/2013 19:55:06 >   root@autan:/home/pierre/rebol/telech# 

  # pierre@autan: ~/rebol/telech$        < 2013_05_30__19_52_58 >
lynx http://127.0.0.1/cgi-bin/test.cgi


   coucou! (signé: Rebol)



Youpi.

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2