搭建web.py+apache2.4+wsgi的网站
0. python, pip和web.py的安装就不说了
1. 安装64位的apache, 64位windows的apache没有官方的编译版本, 可以从第三方编译版本的网站下载:
https://www.apachehaus.com/cgi-bin/download.plx?dli=wYy8GehlXWz0kan9SZWJVWJVlUGRVYSlXUth2d
2. 安装apache服务
用管理员权限启动windows命令行程序, cd到apache24的bin目录, 下面是apache常用的命令:
httpd -k install
httpd -k uninstall
httpd -k start
httpd -k stop
3. wsgi的安装:
可以去著名的python module集成网站下载到wsgi对应apache2.4和py27的版本(mod_wsgi-4.4.23+ap24vc9-cp27-cp27m-win_amd64.whl):
http://www.lfd.uci.edu/~gohlke/pythonlibs/
使用pip安装下载下来的whl包, 然后可以在python的安装目录找到编译好的mod_wsgi.so文件
4. 把mod_wsgi.so复制到apache24的modules目录下
5. 修改apache24的conf目录下的httpd.conf文件
参考文献: http://www.cnblogs.com/rollenholt/archive/2012/08/09/2631068.html
关键部分:
LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias /webapp "D:/develop/webapp/index.py/"
Alias /webapp/static "D:/develop/webapp/static/"
AddType text/html .py
<Directory "D:/develop/webapp/">
AllowOverride all
Options Indexes FollowSymLinks ExecCGI
Order allow,deny
SetHandler wsgi-script
Allow from all
</Directory>
6. 修正web.py主文件
参加:http://webpy.org/cookbook/mod_wsgi-apache
application = web.application(urls, globals()).wsgifunc()
7. 调试
访问数据库权限:
办法有二:
数据库连接字符串中注明User ID 和 Password
在windows的服务中配置服务以某个帐号启动
静态文件夹的配置:
<IfModule alias_module>
....
Alias /static/ "D:/tmp-program/Data Vertifier/Data Vertifier/static/"
</IfModule>
<Directory "D:/tmp-program/Data Vertifier/Data Vertifier/static/">
Require all granted
Options -ExecCGI
SetHandler None
</Directory>
web.py报Template文件无法找到:
在web.py中指明Template的全路径
python import问题:
import sys
daolib = "D:\\tmp-program\\Data Vertifier\\Data Vertifier\\"
if not daolib in sys.path:
sys.path.insert(0, daolib)
在web.py入口文件最开始加入上面这段, 把项目的根目录添加到sys.path中去, 比如根目录中有一个子目录叫DAO, DAO中有个类叫Adao, python文件引用这个类时就写成:
import DAO.Adao
这里补一下Centos部署apache时发生的问题:
部署后无法访问网站,运行了一个命令行,然后就可以了,好像和LinuxSE有关。
setenforce 0