Ubuntu16.04 apache2 wsgi 部署django
在Ubuntu16.04上部署django其实还算简单直观,最重要的问题就是路径设置正确,并且保证版本统一,这个测试是在
Apache/2.4.18 (Ubuntu) apt-get install apache2
Python/2.7.11 wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tar.xz
mod_wsgi/4.3.0 apt-get install libapache2-mod-wsgi
一,安装python 和django。这个很简单,django用pip安装就可以。就不解释了。
二,安装apache2 和 wsgi。
这里用的是apt-get.
sudo apt-get install apache2
sudo apt-get install libapache2-mod-wsgi
需要注意的是,如果之前安装配置过apache2的并且配置很乱,无法修复,建议还是完全卸载之后在安装。完全卸载的命令:
$ sudo apt-get --purge remove apache-common
$ sudo apt-get --purge remove apache*
安装完以后,去 /etc/apache2/ 下的 mods-available 和mods-enabled 中查看是否都存在 wsgi.conf 和wsgi.load 两个文件。
注意检查:/etc/apache2/mods-enabled/wsgi.load链接文件是否存在,并且检查文件内容:
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
要chmod 755 mod_wsgi.so文件.
三、配置apache 和 wsgi
(PS.假设你是在目录/var/www/mysite 下面 django-admin.py startproject testproject ).
1、apache的配置:
在/etc/apache2/sites-available中新建一个文件 testdjango.conf (PS.写的时候把中文注释都删除)
- <VirtualHost *:>
- ServerName testproject.djangoserver
- #ServerName这个无所谓,只要在host中把你的ip地址映射到这个上面就可以了。不想改host最简单的方法就是
#用 sudo a2dissite -default.conf 等虚拟主机给disable掉,只留 testdjango.conf。(PS.在site-enabled中的site是enable的,可以根据这个来查看)- DocumentRoot /var/www/mysite/testproject
- # 这一条是指向网站的根目录
- <Directory /var/www/mysite/testproject>
- Order allow,deny
- Allow from all
- </Directory>
- WSGIDaemonProcess .djangoserver processes= threads= display-name=%{GROUP}
- WSGIProcessGroup testproject.djangoserver
- #这里的testproject.djangoserver 对应前面的ServerName
- WSGIScriptAlias / /var/www/mysite/testproject/apache/wsgi.py
- # (/和/var...中间是有空格的)是将后面的那个路径指向网站的根目录。第一个“/”表示外部访问时的网站根目录,当有新的requset的时候,apache从这里开始解析。
- </VirtualHost>
2、wsgi的配置
在 /var/www/mysite/testproject/下新建dir:apache 。在./apache下新建文件wsgi.py。(文件名对应前面的WSGIScriptAlias第二个路径下的文件名)
- import 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,目的是指向网站工程的settings.py,这里
- #用' testproject.settings'
- import django.core.handlers.wsgi
- application = django.core.handlers.wsgi.WSGIHandler()
配置完成以后
sudo a2ensite testdjango.conf
sudo service apache2 reload
然后浏览器http://127.0.0.1 就可以看见django的初始页面了。
PS.出错的话,一定要多看看apache2的err log。
命令行输入: tail /var/log/apache2/error.log
- $ sudo dpkg -l libapache2-mod-wsgi #查看wsgi的版本
- 结果: libapache2-mod 3.3-4build1
- $ a2enmod wsgi #验证模块安装正常
- Module wsgi already enabled
如果遇到服务器403的错误,那么可能是你的"/"目录被禁止访问(默认)
修改一下apache2.conf文件(位于/etc/apache2/)
把Require all denied改为Allow from all就可以了
Ubuntu16.04 apache2 wsgi 部署django的更多相关文章
- ubuntu apache2 wsgi 部署django
入题 分为如下几步 1.安装python 2.安装django 3.安装wsgi,如有问题请参照上一篇 ubuntu 编译安装 mod_wsgi 4.与apache集成这里主要讲这部分 环境apach ...
- Apache2.4部署django出现403 Forbidden错误解决办法
前言:Apache2.4部署django出现403 Forbidden错误最好要结合apache中的错误日志来观察出现何种错误导致出现403错误 下午百度了一下午没找到解决办法,试了n种方法,简直坑爹 ...
- Ubuntu16.04 下docker部署web项目
概念性的请戳 第一步:更新apt-get update 第二步:安装环境 apt-get install \ apt-transport-https \ ca-certificates \ curl ...
- ubuntu16.04 用devstack部署安装OpenStack ocata
原文链接 之所以再重复一下,是因为踩坑的过程,希望能帮助有需要的人. 介绍: 宿主机win10,在vmware下创建两台ubuntu16.04虚拟机,一台作为控制节点,一台作为计算节点, ...
- Windows + Apache + WSGI 部署Django
注意Python Apache和mod_wagi的版本要一致哦 1.安装Apache服务器(下载后,解压即可,目录不能有中文) 2.安装mod_wsgi (pip install 它的路径) 3.打开 ...
- 阿里云 Ubuntu16.04 apache2 ssl证书下载与安装(必须有域名)
阿里云申请免费SSL证书并下载(包含xxx.key|xxx._root_bundle.crt|xxx._public.crt三个文件) 用https是自己的网站收到保护,不易被攻克,所以保护自己的网站 ...
- Ubuntu16.04 apache2+php7.0+mysql5.7环境搭建
今天配置一下web环境,很常见的apache+php+mysql的网站环境: 步骤一:安装apache sudo apt install apache2 步骤二:安装php7 1.安装PHP7和响应的 ...
- ubuntu12.04 server + apache2 + wsgi + django1.6 部署
最近在学Python和Django,想自己部署一个服务器试试 环境:ubuntu12.04 server | apache2 | django1.6 | python2.7 | mod_wsgi 在网 ...
- Ubuntu16.04下部署 nginx+uwsgi+django1.9.7(虚拟环境pyenv+virtualenv)
由于用的新版本系统,和旧的稍有差别,在网上搜了很多相关资料,搞了三天终于搞好在Ubuntu16.04下的部署,接下来就详细写写步骤以及其中遇到的问题.前提是安装有虚拟环境pyenv+virtualen ...
随机推荐
- bootstrap-14
基础导航条: 使用方法:1. 首先在制作导航的列表(<ul class="nav">)基础上添加类名"navbar-nav" 2.在列表外部添加一个 ...
- Equls 和==的区别
对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false.对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true.对于 string ...
- 11.14 T2 小x的旅行(小x的旅行)
1.小x的旅行 (travel.pas/c/cpp) [问题描述] 小x大学毕业后,进入了某个公司做了高层管理,他每年的任务就是检查这个公司在全国各地N个分公司的各种状况,每个公司都要检查一遍,且 ...
- JS 中通过对象关联实现『继承』
JS 中继承其实是种委托,而不是传统面向对象中的复制父类到子类,只是通过原型链将要做的事委托给父类. 下面介绍通过对象关联来实现『继承』的方法: Foo = { // 需要提供一个 init 方法来初 ...
- Codeforces Round #294 (Div. 2) D. A and B and Interesting Substrings
题意: 对于26个字母 每个字母分别有一个权值 给出一个字符串,找出有多少个满足条件的子串, 条件:1.第一个字母和最后一个相同,2.除了第一个和最后一个字母外,其他的权和为0 思路: 预处理出sum ...
- HttpServletRequest常用获取URL的方法
1.request.getRequestURL() 返回的是完整的url,包括Http协议,端口号,servlet名字和映射路径,但它不包含请求参数.2.request.getRequestURI() ...
- JQuery实现列表中复选框全选反选功能封装
我们在做列表的时候经常会遇到全选,反选进行批量处理问题,例如: 我当时就是简单的实现了,然后想封装到公共的js中,封装的太烂,不好意思贴出来了(就是把实现代码之间放到公共js中,然后每个页面都用固定的 ...
- MVC学习笔记-01
什么是MVC MVC是指(Model-View-Controll即模型-视图-控制器)用于表示表示一种软件架构模式,它把软件分成三个基本的部分:模型(Model),视图(view),控制器(Contr ...
- 配置点云库PCL时遇到的问题
配置PCL基本参照PCL中国官网教程 http://www.pclcn.org/study/shownews.php?lang=cn&id=34 配置点云库时遇到的问题(基于win8 64位, ...
- kali ssh服务开启登录
vi /etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是yes 2. 将PermitRootLog ...