部署python web 的几种方式
1,纯mod_python
安装mod-python : $ apt-get install libapache2-mod-python
我们在/etc/apache2/mods-available/目录下面新建一个python.conf来配置和python相关的应用的信息
<Directory /var/www>
AlllowOverride none
AddHandler mod_python .py
PythonHandler mptest
PythonDebug On
AddType text/html;qs=1.0 .py
AddType text/html;qs=0.9 .html
AddType text/html;qs=0.8 .txt
</Directory>
最后的3行比较重要,像我这里用firefox浏览的时候,不能解析文档,而变成直接下载文件了。
同时,使用在conf文件里添加:
Alias / /var/www/
详见mod_python 中文文档 http://wiki.woodpecker.org.cn/moin/modpythoncn#A4.5_apache-----.2Bi7.2BV7g-apache.2BdoRRhZDo-
2.django +wsgi
https://library.linode.com/frameworks/django-apache-mod-wsgi/ubuntu-10.04-lucid
本来觉得部署会很简单 只需要输入几个命令就好了~结果纠结了很久,现在就写出老吧
首先 python 已经安装好了 所以第一步安装easy_install ,
然后用easy_install 安装django (注意 如果用非root用户安装,django会安装在当前用户的.local目录下,这样apache 会访问不到他....)
所以这时,也可以用ubantu的apt-get 来安装。这时会存放在python安装目录下。/usr/lib/python....
再然后就是直接apt-get 安装wsgi,
配置时,django 项目中的.wsgi文件注意要添加 项目目录与django目录。
wsgi文件:
import os
import sys
sys.path.append('/home/xiaopai/WORK/mysite/hello_django1/')
sys.path.append('/home/xiaopai/.local/lib/python2.7/site-packages/Django-1.5.2-py2.7.egg/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'hello_django.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
apache 配置文件
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /home/xiaopai/WORK/mysite/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /home/xiaopai/WORK/mysite/www> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> WSGIScriptAlias / /home/xiaopai/WORK/mysite/hello_django1/apache/django.wsgi <Directory /home/xiaopai/WORK/mysite/hello_django1> Order allow,deny allow from all </Directory> ErrorLog /home/xiaopai/WORK/mysite/hello_django1/apache/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /home/xiaopai/WORK/mysite/hello_django1/apache/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
这样就搞定了~~说起来简单,但是一个bug就浪费好多时间啊.....