WN服务器可以替代称为过滤器的cgi程序。我一直试图让一个人上班,但我没有运气。我正在写python。看起来服务器没有从程序接收任何输出,但是没有解析任何内容并且在我的标准页眉和页脚中没有包装它。我有chmod 755程序,我的index.wn文件读取:
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
这里是名为testProgram.py的过滤器:
#!/usr/bin/python
print "Content-Type: text/html\n\n"
print "hi
"
如果将testProgram.py推入cgi-bin文件夹并进行chmoded,那么它的效果非常好。我想我的问题可能在于我从未在python中看到过滤程序。我不确定我是否已经看过一个过滤程序。有没有人有wn服务器和过滤器的经验?有任何想法吗?
答案 0 :(得分:0)
我没有现实世界的WN体验,但我已经阅读了docs并且在我看来你的代码有问题 - 引用,
不应提供标题 作为WN的程序将自动执行 提供他们。例如,一个 CGI / 1.1程序通常以 打印“Content-type:text / html” 接下来是一个空行,这应该 没有为“someprogram”做的 上面的index.wn条目,因为WN会 自动提供相应的 HTTP / 1.1标头基于 “Content-type = text / html”行中的 index.wn文件。
虽然您似乎在代码中提供了标题。其次,您确定要parsing,正如您所要求的那样?
我不明白为什么这些问题中的任何一个应该只是“吞下”你的程序的输出,所以这不是一个完整的答案......但也许它可能是一个开始。
顺便说一下,既然你说我不确定我是否见过过滤器 所有程序
我在文档中看到的过滤器的一个示例是zcat
- 至少这确实表明过滤器是一个将给定文件作为其标准输入的程序(但不是有来阅读它,文档说...但是那个文件,即使在示例代码中被忽略,必须存在 - 这可能是问题......?)并提供内容(不是标题)以发回标准输出。