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-8import os
import sys

path = ‘/var/www/mysite‘
if path not in sys.path:
    sys.path.insert(0, ‘/var/www/mysite/testproject‘)  #将网站工程目录临时加入ubuntu系统环境中

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 就没问题了。

时间: 2024-10-17 23:28:50

ubuntu python apache2 wsgi django框架的相关文章

Python学习(三) Django框架简单搭建

为了快速学习Python进行Web的开发,所以我不准备从Python的基础学起,直接从Django框架入手,边学框架边学Python的基础知识. 下面就开始Django的快速开发之旅吧. 关于Django框架1.8的英文文档在其官网上都有,地址 https://docs.djangoproject.com/en/1.8/intro/ Python的开发手册地址:https://pythonspot.com/getting-started/ https://docs.djangoproject.c

Python开发之Django框架入门(1)Django安装

Django是一个python类库,使用前必须安装好python.推荐使用Python3,支持python2.7的最新Django版本为1.11LTS. 一.安装方式: 使用pip命令安装. pip install Django==2.1      (此命令可以指定安装版本) pip install Django               (此命令安装最新版本) 使用pip卸载旧的版本 How to get Django Django is available open-source unde

python后端面试第四部分:django框架--长期维护

##################    Python语法基础        ####################### django框架部分 1,流程 2,admin 3,视图 3,路由 4,csrf 3.csrf是什么?django是如何防范的? django请求的生命周期, 浏览器-wsgi-中间件-路由-视图-然后处理数据等,返回数据 3,什么是wsgi?是一个协议,还有一些需要理解, 4,中间件是什么?在视图之前定制一些操作, 5,使用中间件做什么?做过什么认证,权限,跨域,等,

python 全栈 web框架 Django基本操作

django 操作总结! django框架安装: cmd安装: pip3 install django pycharm安装: 在python变量下 搜索 django 安装 创建django项目: cmd下创建django项目: 创建django程序: django-admin startproject mysite 进入程序目录: cd mysite 启动socket服务端,等待用户发送请求 IP 端口 python manage.py runserver 127.0.0.1:8080 pyc

python django框架(一)

s4day63内容回顾: 1. 安装 2. 创建用户 + 授权 3. 连接 - 数据库 终端创建数据库(字符编码) - 数据表 终端 ORM pymysql create ...)engine=innodb - 数据行 增 删 改 查 - limit - group by .... 关闭 问题:简述ORM原理? day64内容 1. 自己开发Web框架 - socket - http协议 - HTML知识 - 数据库(pymysql,SQLAlchemy) HTTP特点: 无状态.短连接 TCP

Windows上python开发--2安装django框架

上一篇文章中讲了如何在windows上安装和开发python.这篇文章需要在上一篇的基数上进行.首先确保你的windows上python可以正常运行. 在安装django之前,我们应该先安装一个esay_install 的python工具,通过该工具可以很轻松安装各种扩展的框架和package. 不用你先到第三方网站下载tar.gz 包,然后用python setup.py install 安装. 1.下载安装easy-install 的tools. easy-install 的官方地址: ht

Python的Web应用框架--Django

一:简介 python的web框架有很多,个人查了一下,有Django.Pylons. Tornado.Bottle和Flask等,其中使用人数最多的是Django,而我学习Django也是因为openstack中使用的是django框架. Django是一个开放源代码的Web应用框架,由Python写成,采用了MVC的软件设计模式,即模型M,视图V和控制器C. 二:安装 由于Django2.0以后便不再支持python2.x,所以在安装时一定要注意. 2.1.Python3.x+Django2

Python Web框架【Django框架第一篇基础】

Django框架第一篇基础[DjangoMTV模式] 老师博客[www.cnblogs.com/yuanchenqi/articles/6811632.html] 同学博客:http://www.cnblogs.com/haiyan123/p/7701412.html Django官网:https://www.djangoproject.com/download/ 一.安装Django DjangoMTV模式 Django的MTV模式本质是各组件之间为了保持松耦合关系,Django的MTV分别代

Django框架介绍 python三大主流web框架之一

一.学习准备 1.下载安装Django(建议安装1.x版本) 方法:终端cmd输入命令:pip install django==1.11.11  然后回车即可 校验是否安装成功:django-admin 二.纯手撸web框架 1.纯手撸web框架 软件开发架构 c/s架构 b/s架构 本质bs也是cs web后端 需求: 1.根据用户输入不同的后缀返回不同的内容 从符合http协议格式的数据中获取用户输入的后缀 不足之处: 1.socket代码是我们自己写的 2.http数据也是我们自己处理的