2010-05-31 3 views
0

Les serveurs WN ont une alternative aux programmes cgi appelés filtres. J'ai essayé d'en faire un, mais je n'ai pas eu de chance. J'écris en python. Il semble que le serveur ne reçoive aucune sortie du programme mais n'analyse rien et n'emballe rien dans mon en-tête et pied de page standard. Je chmod 755 le programme et mon fichier index.wn lit:Le filtre serveur WN ne fonctionne pas

Default-Attributes=parse
Default-Wrappers=templates/template1.inc

File=includeTests.html
File=index.html
File=archives.html
File=contact.html

File=style.css

File=testProgram.py

#here is the stuff about the filter
File=testFilter.html
Content-type=text/html
Filter=testProgram.py
Attributes=parse, cgi

voici ce qui est dans le filtre appelé testProgram.py:


#!/usr/bin/python

print "Content-Type: text/html\n\n"
print "

hi

"

testProgram.py fonctionne parfaitement si elle est poussé dans un dossier cgi-bin et chmoded. Je suppose que mon problème réside dans le fait que je n'ai jamais vu un programme de filtre en python. Je ne suis pas sûr d'avoir déjà vu un programme de filtrage. Quelqu'un at-il une expérience avec les serveurs et les filtres wn? Des idées?

Répondre

0

Je n'ai aucune expérience WN dans le monde réel, mais j'ai lu son docs et il me semble qu'il ya quelque chose de mal avec votre code - citant,

aucun en-tête doivent être fournis par le programme comme WN les fournira automatiquement. Par exemple, alors qu'un programme CGI/1.1 commence généralement par en imprimant "Content-type: text/html" suivi d'une ligne vide, cela ne doit pas être fait pour "someprogram" dans l'entrée index.wn ci-dessus, car WN fournira automatiquement les en-têtes HTTP/1.1 appropriés en fonction de la ligne "Content-type = text/html" du fichier index.wn .

alors que vous semblez fournir un en-tête dans votre code. Deuxièmement, vous êtes sûr de vouloir parsing, comme vous le demandez? Je ne vois pas pourquoi l'un ou l'autre de ces problèmes devrait simplement "avaler" la sortie de votre programme, donc ce n'est pas une réponse complète ... mais peut-être que ça pourrait être un début.

BTW, puisque vous dites

Je ne suis pas sûr que je l'ai même vu un filtre programme du tout

l'un exemple de filtre que je vois dans la documentation est zcat - au moins cela fait clairement qu'un filtre est un programme qui prend le fichier donné comme son entrée standard (mais n'a pas ont pour le lire, les docs disent ... mais ce fichier, même si ignoré comme dans votre exemple code, doit existent - cela pourrait-il être le problème ...?) Et donne le contenu (pas les en-têtes) à renvoyer sur sa sortie standard.

Questions connexes