【Python】ubuntu下web.py 与 apache的配置

最近写的一个web.py的小东西,就想试一下以apache为服务器部署一下。看了下官方教程感觉也不是特别复杂,挨个步骤去执行,到最后访问是可以了,但是却没按照预览的状态去运行。查,疯狂的查,最后终于解决了问题,但是和官方的教程有些差别。

下面具体说配置过程

基本配置过程可以看下该地址(http://library.linode.com/frameworks/webpy/ubuntu-12.04-precise-pangolin),可以说非常详细了,从web.py的安装/apache的安装/mod-wsgi的安装,到最后的验证都讲解的非常清楚。开始是没找到这个的资料的,是直接看的官网教程(http://webpy.org/cookbook/mod_wsgi-apache-ubuntu),费了不少力气去验证各个部分的安装成功与否。最后的问题的主要原因就是出在完全按照官网去配置的,后来不断的找资料,然后修改,最后才成功了。

如果你看到官网教程可以看到,它修改的主要是/etc/apache2/site-available/下的配置文件,没有牵涉到/etc/apache2/httpd.conf的配置,我就是出在这个问题上。

我先说下遇到的问题

1:import error。它会告诉你,你导入的某个文件不存在,这是路径的问题,解决方法(http://webpy.org/install#apache)。它就是在你的文件中,加上:

import sys, os 

abspath = os.path.dirname(__file__)s

ys.path.append(abspath) 

os.chdir(abspath) 

这几句代码

2:什么 Thread什么.pyc什么的错误,具体忘记了。其实这不应该算是一个错误,而且日志级别也是warn的,这个具体原因在python更高版本已经解决,我的是2.7。这个警告官方已经有说明其实是不影响的。

说你的py文件中没有wsgi的application,这个问题可能是你的py文件写错了,最后应该是:

application = web.application(urls, globals()).wsgifunc()

3:在开发的时候,import文件的时候出现PYTHON_EGG_CACHE无权限, Permission denied: '/usr/local/www/

解决办法修改PYTHON_EGG_CACHE路径,到一个新的地方

4:按照官网教程设置完之后,直接显示了类似的svn的下载页面,工程里的各个文件给列出来了。点击之后直接下载下来了。

解决办法是:/etc/apache2/httpd.conf加上了和/etc/apache2/site-available/my-website相同的两句:

 WSGIScriptAlias /webpy /var/www/webpy/reqhandler.py/
 AddType text/html .py

其中my-website是我工程的配置文件,webpy是我的工程的名字。

所以最后的httd.conf的内容为:


  1 ServerName 127.0.0.1
  2 #LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
  3 #必须加上,虽然在site-available中,对自己的工程配置的my-website已经有下面
    两句配置,但是不知道为何,还是在这里必须加上,否则web工程无法正常运行, 变成了一个文件服务器 
  4 WSGIScriptAlias /webpy /var/www/webpy/reqhandler.py/
  5 AddType text/html .py

你可能感兴趣的:(【Python】ubuntu下web.py 与 apache的配置)