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:80ServerAlias 192.168.9.5ServerAdmin xxxxx@qq.comAlias /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.pyWSGIDaemonProcess http://192.168.9.5:80 python-path=/var/www/VENV/lib/python3.5/site-packagesWSGIProcessGroup 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.logCustomLog ${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,abspathPROJECT_DIR = dirname(dirname(abspath(__file__)))from django.core.wsgi import get_wsgi_applicationimport 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

转载于:https://www.cnblogs.com/szwx1314/p/9541629.html

Ubuntu 16.04.5部署Django环境相关推荐

  1. OpenStack Mitaka for Ubuntu 16.04 LTS 部署指南

    [声明] 欢迎转载,转载本文请注明作者和出处 https://www.zybuluo.com/ncepuwanghui/note/389373 http://blog.csdn.net/ncepuwa ...

  2. Ubuntu 16.04下的LAMP环境配置

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

  3. linux的lnmp环境,Ubuntu 16.04 LTS下LNMP环境配置简述

    Ubuntu 16.04 LTS下LNMP环境配置简述 1.安装mysql sudo aptinstall mysql-server 安装过程会提示密码 2.安装nginx和php #添加nginx和 ...

  4. linux系统嵌入式编译环境,64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解...

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

  5. Ubuntu 16.04下部署Graylog日志服务器

    Graylog 是一个开源的日志管理系统,集中式收集.索引.分析其它服务器发来的日志.它是由 Java 语言编写的,能够接收 TCP.UDP.AMQP 协议发送的日志信息,并且使用 Mongodb 做 ...

  6. ubuntu 16.04 搭建 python 开发环境

    2019独角兽企业重金招聘Python工程师标准>>> 由于ubuntu 16.04  采用的是python2.7版本,对于采用python3开发作为开发环境的,极为不方便,不过幸好 ...

  7. Ubuntu 16.04 下部署Node.js+MySQL微信小程序商城

    本文档为微信小程序商城NideShop服务端api的安装部署教程 服务端api : https://github.com/tumobi/nideshop 微信小程序端 : https://github ...

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

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

  9. Ubuntu 16.04 下部署Node.js+MySQL微信小程序商城 1

    本文档为微信小程序商城NideShop服务端api的安装部署教程 服务端api : https://github.com/tumobi/nideshop 微信小程序端 : https://github ...

最新文章

  1. 【S操作】冰箱正常运行监控系统需求整理
  2. QT的QByteArray 类的使用
  3. 设计模式到底离我们有多远
  4. 如何在mysql中打开mongodb_图解:如何从MySQL移植到MongoDB
  5. 送书 | 主成分分析PCA
  6. Python文件操作2
  7. 微信多开txt_微信(电脑版)多开教程
  8. poi实现百万级数据导出
  9. 双极性根升余弦信号qpsk_基于CCSDS协议的中频信号源设计与实现
  10. IEEE会议论文模板下载
  11. 图像匹配 | 论文与方法整理
  12. CPCL简易打印模板设计
  13. 「上海院子」打造不可复制的国宅风华
  14. [Latex简明教程] 制作并插入图片
  15. 问题记录:node.js连接数据库出现两个问题getaddrinfo ENOTFOUND locahost;Client does not support authentication protoco
  16. txt文件编辑器(v5.0)
  17. 业界红包玩法与技术方案总结
  18. python0基础 第三节
  19. Java后端技术面试汇总(第一套)
  20. 组战队,赢iPhone啦!

热门文章

  1. C Primer Plus note7
  2. U-boot.lds文件分析
  3. thread and process
  4. 正向代理和反向代理有和区别
  5. Google Chrome 最新市场份额
  6. 五分钟教你使用vue-cli3创建项目(三种创建方式,小白入门必看)
  7. 每天坚持跑步到底会不会瘦呢?
  8. 亲戚的孩子说要寄养在我家,上学方便,怎么明确的拒绝?
  9. 西双版纳真的适合养老吗?
  10. 创业者必须要做一个超级现实的人