ubuntu python apache2 wsgi django框架
在ubuntu上通过apatch2和wsgi部署django
(亲手做过!!!)
一,我的python、django、apatch2版本:
python:python -V
2.7.3
django:python -c "import django; print(django.VERSION)"
(1, 9, 4, 'final', 0)
apache2:/usr/sbin/apachectl -v
Server version: Apache/2.2.22 (Ubuntu)
Server built: Jul 24 2015 17:25:52
二,安装python 和django。
三,安装apache2 和 wsgi。
sudo apt-get insall apache2
sudo apt-get install libapache2-mod-wsgi
如果之前安装配置过apache2的并且配置很乱,无法修复,建议还是完全卸载之后再安装。完全卸载的命令:
sudo apt-get --purge remove apache*
sudo apt-get --purge remove apache-common
安装完以后,去 /etc/apache2/ 下的 mods-available 和mods-enabled 中查看是否都存在 wsgi.conf 和wsgi.load 两个文件。有则说明wsgi模块加载到apache2成功。
四,配置apache 和 wsgi
(PS 假设你是在目录/var/www/mysite 下面 django-admin.py startproject testproject )
我项目的tree:

1、apache的配置:
在/etc/apache2/site-available中新建一个文件 testdjango.conf (PS中文注释都删除)
<VirtualHost *:80>
ServerName testdjango.com #ServerName这个无所谓,只要在host中把你的ip地址映射到这个上面就可以了。不想改host最简单的方法就是用 sudo a2dissite 000-default.conf 等虚拟主机给disable掉,只留 testdjango.conf。(PS.site-enabled中的文件是link site-availabel下的文件,如果存在link文件则是enable的,可以根据这个来查看)
DocumentRoot /var/www/mysite/testproject #这一条是指向网站的根目录
<Directory /var/www/mysite/testproject>
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess testdjango.com processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup testdjango.com #对应前面的ServerName
WSGIScriptAlias / /var/www/mysite/testproject/apache/django.wsgi #将后面的那个路径指向网站的根目录。第一个“/”表示外部访问时的网站根目录,当有新的requset的时候,apache从这里开始解析。 </VirtualHost>
2、wsgi的配置
在/var/www/mysite/testproject/下新建dir:apache 。在./apache下新建文件django.wsgi。(文件名对应前面的WSGIScriptAlias第二个路径下的文件名)
#coding:utf-8
import os
import sys path = '/var/www/mysite'
if path not in sys.path:
sys.path.insert(0, '/var/www/mysite/testproject') #将模块路径加到当前模块扫描的路径。或sys.path.apend('/var/www/mysite/testproject')
os.environ['DJANGO_SETTINGS_MODULE'] = 'testproject.settings' #新建一个环境变量DJANGO_SETTINGS_MODULE,目的是指向django工程的settings.py,这里
#import django.core.handlers.wsgi #old version use
#application = django.core.handlers.wsgi.WSGIHandler() from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
五,验证
sudo a2ensite testdjango.conf #enable testjango.conf
sudo service apache2 reload (PS 如果reload时出现 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName。虽然不影响但有个warning让人不爽,可以在/etc/apatch2/httpd.conf 中加入ServerName localhost)
最后浏览器 http://127.0.0.1或localhost或你ubunt的IP 就可以看见django的初始页面了。
其它机器的浏览器也可以通过你的ubuntu的IP来查看你django的项目的页面。
六,常见错误及log:
apache2的error log文件:/var/log/apache2/error.log
错误1:Internal Server Error 如下图

应该是django.wsgi里用了我注释的 django.core.handlers.wsgi 这个方法。用下面的那个get_wsgi_application 就没问题了。
ubuntu python apache2 wsgi django框架的更多相关文章
- Python必学Django框架,入门到精通学习视频教程全都在这可以领
“人生苦短,我用python”,学python的小伙伴应该都了解这句话的含义.但是,学python,你真正了了解强大的Django框架吗!? 据说Django还是由吉普赛的一个吉他手的名字命名的呢,有 ...
- Python中的Django框架中prefetch_related()函数对数据库查询的优化
实例的背景说明 假定一个个人信息系统,需要记录系统中各个人的故乡.居住地.以及到过的城市.数据库设计如下: Models.py 内容如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
- 6月13日 python学习总结 Django框架
1. 内容回顾 1. 基础必会三件套 from django.shortcuts import HttpResponse, render, redirect - HttpResponse(" ...
- python 全栈开发,Day94(Promise,箭头函数,Django REST framework,生成json数据三种方式,serializers,Postman使用,外部python脚本调用django)
昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: ...
- ubuntu apache2 wsgi 部署django
入题 分为如下几步 1.安装python 2.安装django 3.安装wsgi,如有问题请参照上一篇 ubuntu 编译安装 mod_wsgi 4.与apache集成这里主要讲这部分 环境apach ...
- Django框架学习——python模拟Django框架(转载)
原贴来源 http://wiki.woodpecker.org.cn/moin/ObpLovelyPython/AbtWebModules python实现web服务器 web开发首先要有web服务器 ...
- Windows上python开发--2安装django框架
Windows上python开发--2安装django框架 分类: 服务器后台开发2014-05-17 21:22 2310人阅读 评论(2) 收藏 举报 python django 上一篇文章中讲了 ...
- Python的Web应用框架--Django
一:简介 python的web框架有很多,个人查了一下,有Django.Pylons. Tornado.Bottle和Flask等,其中使用人数最多的是Django,而我学习Django也是因为ope ...
- python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...
随机推荐
- HTML5中的execCommand命令
HTML5中的execCommand命令 在html5中,可以通过execCommand方法来运行一条命令,每一条命令都将对用户通过鼠标所选取的内容执行一些操作. 1. execCommand方法 浏 ...
- PAT A1104 Sum of Number Segments (20 分)——数学规律,long long
Given a sequence of positive numbers, a segment is defined to be a consecutive subsequence. For exam ...
- 洛谷 P1525 关押罪犯
题目链接 https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1−N.他们之间的关系自然也极不和谐.很多罪 ...
- P4208 [JSOI2008]最小生成树计数
现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的)输出方案数对31011 ...
- 开发板测试-GPRS
注意事项: 经过测试,为了使STM32和Air202的串口稳定通信,需要更改 以前电路感觉应该是三极管控制极4.7K电阻太大,又因为开关速度快,然后开关的时候导致不足以让三极管处于全部导通状态,所以电 ...
- 解决PowerDesigner 16 Generate Datebase For Sql2005/2008 对象名sysproperties无效的问题
在PowerDesigner 16 中生成的sql语句,在执行的时候报错:对象名sysproperties 无效的错误;造成此问题的原因是由于Sql 2005.2008 删除了系统表 sysprope ...
- linux配置iptables(3)
简单通用 web 服务器iptables 配置 *filter :INPUT DROP [0:0]:FORWARD DROP [0:0]:OUTPUT ACCEPT [0:0] #超出 链规则 的数据 ...
- Zookeeper-基本概念
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务.它是一个典型的分布式数据一致性的解决方案,分布式应用可以基于它实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知.集群管理 ...
- JDK8漫谈——增强接口
解决什么问题 向下兼容.添加方法,所有的实现类必须实现此方法,否则会编译报错.这意味着每一次的接口升级都会伤筋动骨.但是这是一把双刃剑一定要把握好场景,不要滥用. 类爆炸.使用时,需要辅助类.即要记忆 ...
- kill方法
删除磁盘上的文件. 语法 Kill 路径名 所需的_路径名_参数是一个字符串表达式,指定要删除的一个或多个文件名. _Pathname_可能包括驱动器和目录或文件夹. 例子删除当前路径下的TXT文档 ...