配置文件test.conf如下:
<ocsigen>
<server>
<port>*:8000</port>
<logdir>/home/zaxis/tmp/log/</logdir>
<datadir>/home/zaxis/tmp/data</datadir>
<user>zaxis</user>
<group>wheel</group>
<charset>utf-8</charset>
......
<extension findlib-package="ocsigen_ext.cgimod">
<cgitimeout value="30"/>
</extension>
<extension findlib-package="ocsigen_ext.staticmod"/>
......
<site path="qachina" charset="utf-8">
<cgi root="cgi-bin" dir="/media/E/www/qachina/cgi-bin"/>
<static dir="/media/E/www/qachina" />
</site>
....
<commandpipe>/home/zaxis/tmp/ocsigen_command</commandpipe>
</server>
</ocsigen>
Run Code Online (Sandbox Code Playgroud)
然后我运行Ocsigen:
ocsigeocsigen -c test.conf
我可以访问http://127.0.0.1:8000/qachina/index.htm.但是,Ocsigen不会在cgi-bin中执行我的python脚本,但希望浏览器下载它.
顺便说一句,所有python脚本文件都可以直接在shell中运行.
>head cgi-bin/nav.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-enter code here
...
Run Code Online (Sandbox Code Playgroud)
我无法访问Ocsigen的邮件列表,所以我在这里发帖寻求建议.
对于站点上的每个请求,Ocsigen会尝试按配置文件的顺序列出的扩展名.在你的情况下,它会尝试staticmod,它会成功,因为cgi-bin是一个存在于staticmod目录中的目录.如果你想首先尝试cgimod,你应该放在<cgi ...>前面<static ...>.