Ubuntu 16.04.5部署Django环境
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环境的更多相关文章
- 【转】64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解
64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解,开发裸机环境之前需要先搭建其开发环境,毕竟工欲善其事必先利其器嘛. 安装步骤 1.准备工具安装目录 下载 ar ...
- 在Ubuntu 16.04 安装python3.6 环境并设置为默认
在Ubuntu 16.04 安装python3.6 环境并设置为默认 1.添加python3.6安装包,并且安装 sudo apt-get install software-properties-co ...
- Ubuntu 16.04 安装 Gnome 桌面环境
个人博客链接:Ubuntu 16.04 安装 Gnome 桌面环境
- [eShopOnContainers 学习系列] - 03 - 在远程 Ubuntu 16.04 上配置开发环境
直接把 md 粘出来了,博客园的富文本编辑器换成 markdown,没啥效果呀 ,先凑合吧.实在不行换地方 # 在远程 Ubuntu 16.04 上配置开发环境 ## 零.因 为什么要用这么麻烦的 ...
- Ubuntu 16.04下的LAMP环境配置
在学习开发过程中,每当遇到新的问题时,通常都能在网上搜到解决的方法,但是网上的方法千千万,有些是已经过时了的,有些是跟自己开发环境不同的,总是不能第一时间能找到答案. 而当时遇到的问题可能在今后的开发 ...
- 在 Ubuntu 16.04 上安装 LEMP 环境之图文向导
导读 LEMP 是个缩写,代表一组软件包(注解 ① L:Linux OS,E:Nginx 网络服务器,M:MySQL/MariaDB 数据库和 P:PHP 服务端动态编程语言),它被用来搭建动态的网络 ...
- ubuntu 16.04 android studio 开发环境搭建
安装步骤: 1. 安装 Java developer kit 2.安装 Android developer kit 3.安装 Android studio 4.真机调试 第一次用Linux,命令基本不 ...
- Ubuntu 16.04+1080Ti机器学习基本环境配置【转】
本文转载自:https://blog.csdn.net/MahoneSun/article/details/80808930 一.设置网络 机器有两张网卡,将当前正在使用的“有线连接1”配置为以下的设 ...
- Ubuntu 16.04 apt-get搭建LAMP环境
本文重点介绍在Ubuntu中使用apt-get安装LAMP(Ubuntu 16.04,Apache2.4.18,mysql5.7.12,php7.0.4)环境,所以不再介绍如何安装Ubuntu. 安装 ...
随机推荐
- opencv---颜色空间转化并实现物体跟踪
一.图像处理的基本操作 因为这是第一篇写opencv的笔记,故先讲讲在python下写opencv的基本操作.总共总结了三点如下: 开头一定要加编码声明:-*- coding: utf-8 -*- p ...
- python运算符的优先级顺序
最近开始学习python,听大家说python很强大,可以作为脚本语言,支持面向对象.面向过程编程,兼具编译性和解释性的一门动态语言.作为一名程序员有必要掌握这一门强大的"胶水语言" ...
- 筛选nginx访问日志文件中的域名
head -n 500 1.log |awk '{print $11}' > 1.txt 查看1.log日志文件前500行记录并打印出第11列也就是域名的那一列,并输出到1.txt文 ...
- 数学是什么?_题跋—>数学是什么?
题跋—>数学是什么? 数学的定义在不同的解释中有不同的释义,它又像是哲学.又像是逻辑性:即研究数量关系.有研究结构和空间关系等等.因此很难给予一个非常准确的定义,正因为如此数学是渗透于生活的各个 ...
- 搭建solr8
这里记录linux上的安装过程 一.下载安装包 https://lucene.apache.org/solr/downloads.html 二.解压安装 这里我放倒了/usr/local/solr目录 ...
- poj-3657 Haybale Guessing(二分答案+并查集)
http://poj.org/problem?id=3657 下方有中文版,不想看英文的可直接点这里看中文版题目 Description The cows, who always have an in ...
- 3)利用Build.php自动创建目录和文件
(1)首先做法参照: thinkphp5的手册的 命令行--->自动生成目录结构 或者看云的资料:https://www.kancloud.cn/manual/thinkphp5/118021 ...
- E - Minimum Spanning Tree Gym - 102220E (转化+贡献)
In the mathematical discipline of graph theory, the line graph of a simple undirected weighted graph ...
- java.lang.NoSuchMethodError: org.springframework.util.Assert.notNull(Ljava/lang/Object;Ljava/util/function/Supplier;)V
分析,jar包冲突,然后看pom.xml文件 原因在于jar包冲突,版本不兼容, 错误的代码: 可以看到有很多不同版本的重复的spring-test依赖 <dependency> < ...
- 84)PHP,SQL注入基础讲解
怎么预防: 填写防止SQL注入的代码: