1、安装python环境

使用如下命令安装的是3.5.x版本

sudo apt-get install python3-pip

如果使用下面的命令,会安装2.x版本的python

sudo apt-get install python-pip

pip不建议更新到最新版本,会出现很多未知错误

# 这是更新语句,但是不建议用
pip3 install --upgrade pip

2、安装python虚拟化环境virtualenv

sudo pip3 install virtualenv

安装完毕后创建名为VENV的虚拟环境

virtualenv VENV

激活虚拟环境

source venv/bin/activate

这样就进入虚拟环境中了,可以部署站点所用的插件

pip install -r requirements.txt

注:在这里,我们使用pip而不是pip3的原因是虚拟环境里只有py3的存在,所以我们输入“python”和“pip”所关联的都会是py3的。在虚拟环境中输入是不会报错的,而在真实的环境里则会是显示py2。

安装分页插件pagination的时候,如果你是py3,请使用pip install django-pagination-py3==1.1.1命令安装,网上很多文章针对的都是py2的,当你用网上的命令安装这个插件后,在py3下是不会有效果的。

安装完毕后就可以退出虚拟环境,继续下面的安装了。

# 退出虚拟环境
deactivate
# 删除虚拟环境
rm -rf VENV

3、启用root账户和开启root登录权限

基于安全角度不应该配这一步,但是为了方便使用FileZilla上传文件,暂时开通,等都配置完毕后,关闭即可

修改root密码

sudo passwd root

开启root登录权限

sudo vi /etc/ssh/sshd_config

将PermitRootLogin选项改为yes,然后重启服务器即可(原来是 prohibit-password)

4、上传站点文件

目录结构如下:

/var/www/
├── html
├── mblog
│   ├── mainsite
│   ├── mblog
│   ├── static
│   └── templates
└── VENV
├── bin
├── include
└── lib

5、安装apache2和mod_wsgi

sudo apt-get install apache2 libapache2-mod-wsgi-py3

新建一个网站的配置文件

sudo vim /etc/apache2/sites-available/sitename.conf
<VirtualHost *:80>
ServerName localhost:80
ServerAlias 192.168.9.5
ServerAdmin xxxxx@qq.com Alias /media/ /var/www/mblog/media/
Alias /static/ /var/www/mblog/static/ <Directory /var/www/mblog/media>
Require all granted
</Directory> <Directory /var/www/mblog/static>
Require all granted
</Directory> WSGIScriptAlias / /var/www/mblog/mblog/wsgi.py
WSGIDaemonProcess http://192.168.9.5:80 python-path=/var/www/VENV/lib/python3.5/site-packages
WSGIProcessGroup http://192.168.9.5:80 <Directory /var/www/mblog/mblog>
<Files wsgi.py>
Require all granted
</Files>
</Directory> ErrorLog ${APACHE_LOG_DIR}/error-my_blog.log
CustomLog ${APACHE_LOG_DIR}/access-my_blog.log combined
</VirtualHost>

配置apache来加载mod_wsgi

# 先关闭Apache服务
sudo service apache2 stop
# /etc/apache2/apache2.conf加入下面一句话
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so

如果找不到.so文件,可以用下面的语句查找

sudo find / -name mod_wsgi.so  

6、修改wsgi文件

文件路径在/var/www/mblog/mblog/

"""
WSGI config for mblog project. It exposes the WSGI callable as a module-level variable named ``application``. For more information on this file, see
https://docs.djangoproject.com/en/2.1/howto/deployment/wsgi/
""" import os
from os.path import join,dirname,abspath PROJECT_DIR = dirname(dirname(abspath(__file__))) from django.core.wsgi import get_wsgi_application import sys
sys.path.insert(0,PROJECT_DIR)
sys.path.append("/var/www/VENV/lib/python3.5/site-packages") os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mblog.settings') application = get_wsgi_application()

7、激活网站重启服务

sudo service apache2 reload
sudo a2dissite 000-default && a2ensite sitename.conf
sudo service apache2 restart

8、其他

(1)日志目录

cd /var/log/apache2

(2)处理Django admin打开时CSS和JS丢失的问题

在setting.py 底部设置添加如下代码

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

执行以下代码

python manage.py collectstatic

参考文章:https://www.jianshu.com/p/ff78d1ab5091

         https://www.cnblogs.com/lexus/archive/2012/02/23/2365896.html

       https://www.cnblogs.com/sxwen/p/8006782.html

Ubuntu 16.04.5部署Django环境的更多相关文章

  1. 【转】64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解

    64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解,开发裸机环境之前需要先搭建其开发环境,毕竟工欲善其事必先利其器嘛.  安装步骤 1.准备工具安装目录 下载 ar ...

  2. 在Ubuntu 16.04 安装python3.6 环境并设置为默认

    在Ubuntu 16.04 安装python3.6 环境并设置为默认 1.添加python3.6安装包,并且安装 sudo apt-get install software-properties-co ...

  3. Ubuntu 16.04 安装 Gnome 桌面环境

    个人博客链接:Ubuntu 16.04 安装 Gnome 桌面环境

  4. [eShopOnContainers 学习系列] - 03 - 在远程 Ubuntu 16.04 上配置开发环境

    直接把 md 粘出来了,博客园的富文本编辑器换成 markdown,没啥效果呀 ,先凑合吧.实在不行换地方   # 在远程 Ubuntu 16.04 上配置开发环境 ## 零.因 为什么要用这么麻烦的 ...

  5. Ubuntu 16.04下的LAMP环境配置

    在学习开发过程中,每当遇到新的问题时,通常都能在网上搜到解决的方法,但是网上的方法千千万,有些是已经过时了的,有些是跟自己开发环境不同的,总是不能第一时间能找到答案. 而当时遇到的问题可能在今后的开发 ...

  6. 在 Ubuntu 16.04 上安装 LEMP 环境之图文向导

    导读 LEMP 是个缩写,代表一组软件包(注解 ① L:Linux OS,E:Nginx 网络服务器,M:MySQL/MariaDB 数据库和 P:PHP 服务端动态编程语言),它被用来搭建动态的网络 ...

  7. ubuntu 16.04 android studio 开发环境搭建

    安装步骤: 1. 安装 Java developer kit 2.安装 Android developer kit 3.安装 Android studio 4.真机调试 第一次用Linux,命令基本不 ...

  8. Ubuntu 16.04+1080Ti机器学习基本环境配置【转】

    本文转载自:https://blog.csdn.net/MahoneSun/article/details/80808930 一.设置网络 机器有两张网卡,将当前正在使用的“有线连接1”配置为以下的设 ...

  9. Ubuntu 16.04 apt-get搭建LAMP环境

    本文重点介绍在Ubuntu中使用apt-get安装LAMP(Ubuntu 16.04,Apache2.4.18,mysql5.7.12,php7.0.4)环境,所以不再介绍如何安装Ubuntu. 安装 ...

随机推荐

  1. Opencv笔记(十三)——图像的梯度

    目标 认识图像梯度.边界 学习函数cv2.Sobel(),cv2.Schar(),cv2.Laplacian() 原理 图像梯度可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导.Op ...

  2. windows系统安装msi文件总提示2502、2503的错误

    首先: 1.按WIN+R,在运行框中输入“gpedit.msc” 确认:2.打开本地策略组编辑器后依次展开 :“计算机配置”->“管理模板”->“windows组件”->“windo ...

  3. 搜刮一些开源项目的APP

    iOS完整App资源收集 <iOS完整app资源收集>  <GitHub 上有哪些完整的 iOS-App 源码值得参考?> <GitHub 上有哪些完整的 iOS-App ...

  4. 数据结构与算法——认识O(NlogN)的排序(1)

    归并排序 1) 整体就是一个简单递归,左边排好序.右边排好序.让其整体有序 2) 让其整体有序的过程里用了外排序方法 3) 利用master公式来求解时间复杂度 4) 归并排序的实质 时间复杂度0(N ...

  5. 吴裕雄--天生自然C语言开发:约瑟夫生者死者小游戏

    个人在一条船上,超载,需要 人下船. 于是人们排成一队,排队的位置即为他们的编号. 报数,从 开始,数到 的人下船. 如此循环,直到船上仅剩 人为止,问都有哪些编号的人下船了呢? #include&l ...

  6. 主效应|处理误差 |组间误差|处理效应|随机误差|组内误差|误差|效应分析|方差齐性检验|SSE|SSA|SST|MSE|MSA|F检验|关系系数|完全随机化设计|区组设计|析因分析

    8 什么是只考虑主效应的方差分析? 就是不考虑交互效应的方差分析,即认为因素之间是不相互影响的,就是无重复的方差分析.   什么是处理误差 (treatment error).组间误差(between ...

  7. 可用倍增LCA解题

    http://codevs.cn/problem/2370/ #include<bits/stdc++.h> using namespace std; ; ; struct node{ i ...

  8. mysql 多字段更新

    更新一个字段当好写 ; Query OK, rows affected (17.36 sec) Rows matched: Changed: Warnings: 问题是想更新多个字段sql serve ...

  9. 用go写爬虫服务并发请求,限制并发数

    java写爬虫服务,思路是线程池,任务队列,限制并行线程数即可. go要用另一种设计思路,不能在线程层面限制,协程的异步请求,如果不作处理,并行发出所有网络请求,因网络请求数过多,会抛出异常 低版本的 ...

  10. worship|spurs|drowns out|frauds|expell|spray with|deposit|moist|gave a sigh

    to have or show a strong feeling of respect and admiration for God or a god 敬奉,崇拜,信仰(上帝或神) On the is ...