The configure file test.conf is as below:
<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>
Then I run Ocsigen:
ocsigeocsigen -c test.conf
I can visit http://127.0.0.1:8000/qachina/index.htm. However, Ocsigen does not execute my python script in cgi-bin but wants the browser to download it.
BTW, all python script files can be run in the shell directly.
>head cgi-bin/nav.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-enter code here
...
I cannot visit Ocsigen's mailing list, so I'm posting here for suggestions.
What is exactly your Ocsigen version?
I've just tried with ocsigen 1.3.4 (the version currently in Debian testing), and there seems to be a bug (on the Ocsigen side) with your configuration snippet. What you want can be achieved with:
<cgi regexp="cgi-bin/([^/]*)" dir="/usr/lib/cgi-bin/" script="\1" />
I've just checked on all running instances of Ocsigen that I have access to, and they all use the "regexp" attribute. The documentation does allow your version, though, and the server accepts it. One of these two alternatives is a bug.
FYI, running ocsigen with the -V
option helped.