近日在看trac 0.12,现将配置mod_wsgi和apache过程,以及遇到的一些问题,记录下来,以便以后查看
1.首先安装apache2.2
2.下载mod_wsgi.so,我这里用的是python2.5,apache2.2。我从mod_wsgi官网没有找到相应的版本,官网上多是python2.6,2.7,3.1和apache2.2的版本。
从源码编译需要mod_wsgi 3.0以及以上的版本,就从网上搜索了一个,如果有谁知道官方网站上对应python2.5和apache2.2的mod_wsgi.so,请告诉我一声。这里先谢谢了。
3.将下载的mod_wsgi.so拷贝至apache的modules目录,修改配置文件httpd.conf,添加如下一行:
LoadModule wsgi_module modules/mod_wsgi.so
4.测试是否配置成功,创建一个test.wsgi文件(wsgi文件就是一个python module,只不过扩展名是wsgi而已),文件内容如下:
def application(environ,start_response):
start_response( " 200 OK " ,[( ' content-type ' , " text/html " )])
return [ ' <html><body>Hello world!</body></html> ' ]
5。修改httpd.conf配置文件,添加下面一行:
WSGIScriptAlias /trac F:/share/trac/project/cgi-bin/test.wsgi
6.重启apache服务器
7.在地址栏敲入http://127.0.0.1/trac,如果输出“hello world”说明配置成功
下面是在配置过程中遇到的一些问题:
1.在默认不修改DocuementRoot的情况下,在地址栏中敲入http://127.0.0.1/trac时,显示http404,查看apache的error.log,日志显示client denied by server configuration:
经过查询原来这是apache2.2的配置文件的问题,修改httpd.conf配置文件,修改如下:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all #将deny修改为Allow
</Directory>
2.在我将DocumentRoot修改为DocumentRoot "F:/share/trac/project",还出现了http://127.0.0.1也无法访问的情况,现总结如下:
1>当为"deny from all"时,此时http://127.0.0.1,http://127.0.0.1/trac均无法访问,报错信息以及解决方法,可见上面的解决方法
2>当为"allow from all"时,此时http://127.0.0.1/trac可以访问,当时http://127.0.0.1无法访问,apache日志文件error.log报错信息如下:Directory index forbidden by Options directive: F:/share/trac/project/,看来是Options的问题,解决方法,将" Options FollowSymLinks"修改为“ Options All”。
目前对apache不太了解,待有时间详细查看了apache的文档后,在对各个选项进行详细解释。