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 ...
随机推荐
- 分布式爬虫之elasticsearch基础6(bluk)
上篇文章介绍了在es里面批量读取数据的方法mget,本篇我们来看下关于批量写入的方法bulk. bulk api可以在单个请求中一次执行多个索引或者删除操作,使用这种方式可以极大的提升索引性能. bu ...
- eig()函数求特征值、特征向量、归一化
在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有 5种:(1) E=eig(A):求矩阵A的全部特征值,构成向量E. 想求最大特征值用:max(eig(A))就好了 ...
- 理解WebSocket心跳及重连机制(五)
理解WebSocket心跳及重连机制 在使用websocket的过程中,有时候会遇到网络断开的情况,但是在网络断开的时候服务器端并没有触发onclose的事件.这样会有:服务器会继续向客户端发送多余的 ...
- PAT A1024 Palindromic Number (25 分)——回文,大整数
A number that will be the same when it is written forwards or backwards is known as a Palindromic Nu ...
- Android学习之基础知识十五 — 最佳UI体验(Material Design实战)
一.前言 长久以来,大多数人都认为Android系统的UI并不美观,至少没有iOS系统的美观.以至于很多IT公司在进行应用界面设计的时候,为了保证双平台的统一性,强制要求Android端的界面风格必须 ...
- python 经典博客链接
1, 从文件的读取与输出: http://www.cnblogs.com/xuxn/archive/2011/07/27/read-a-file-with-python.html http://www ...
- jetty 客服端 与服务端
jetty 服务端,客服端有请求buffter 检查 默认4kb 4096 客服端 HttpClient client=new HttpClient(); client.setRequestBuffe ...
- C# 套接字编程:Scoket,我用Scoket做的C# Windows应用程序如下:
首先请允许我做一个截图: 以上,是我服务端设计 我们知道:服务器端口数最大可以有65535个,但是实际上常用的端口才几十个,由此可以看出未定义的端口相当多.因此,我们可以通过程序随机获取一个当前可用的 ...
- 【SQL】四种排序开窗函数
一 .简单了解什么是开窗函数 什么是开窗函数,开窗函数有什么作用,特征是什么? 所谓开窗函数就是定义一个行为列,简单讲,就是在你查询的结果上,直接多出一列值(可以是聚合值或是排序号),特征就是带有ov ...
- Bayesian Personalized Ranking 算法解析及Python实现
1. Learning to Rank 1.1 什么是排序算法 为什么google搜索 ”idiot“ 后,会出现特朗普的照片? “我们已经爬取和存储了数十亿的网页拷贝在我们相应的索引位置.因此,你输 ...