环境为Centos5.5, 其内置Python版本为2.4。
Booki系统需要Python2.6以上。故安装python2.7.3在/usr/local/bin/python下面。
安装Booki系统,含booktype(电子书管理平台), objavi(发布引擎), espri(导入引擎)
objavi的应用服务器配置为apache(推荐), django的应用服务器配置为nginx。
在nginx的配置中设置proxy, 把objavi的请求路由给apache.(8080端口),访问域名为objavi.yourdomain.org
上面的事情做完后,通过objavi.yourdomain.org访问服务,页面返回Internal error,
查看apache(httpd)错误日志(/var/log/httpd/objavi-error.log),错误如下:
[Tue Oct 23 20:29:48 2012] [error] [client 127.0.0.1] Premature end of script headers: objavi.cgi
[Tue Oct 23 20:30:13 2012] [error] [client 127.0.0.1] File "/home/www/pysite/objavi2/htdocs/objavi.cgi", line 327[Tue Oct 23 20:30:13 2012] [error] [client 127.0.0.1] SyntaxError: invalid syntax
看起来是with语法错误,但手动运行python objavi.cgi,没有错误,成功返回html页面数据。
打开objavi.cgi文件后,可看到问题出在第一行启动python的shell命令上:
#!/usr/bin/python # # Part of Objavi2, which turns html manuals into books #
把上述/usr/bin/python修改为/usr/local/bin/python即可解决问题。
BTW,下面有一个objavi服务本地安装注意点的链接:
http://booki.flossmanuals.net/managing-a-floss-manuals-website/installing-objavi/
iefreer