部署Django到阿里云服务器教程示例


Posted in Python onJune 03, 2020

基于Ubuntu16.04 + Python3 + nginx + mysql + Django

接下来先安装这些必要的环境,这些操作都是在你已经购买了阿里云服务器。并且在本地你已经搭建好了Django博客。现在我们所做的就是把本地的环境在阿里云的服务器上重新搭一遍。

这里先简单的说一下阿里云服务器,我自己买的是云服务器ESC,需要配置一下安全组规则,就是端口,按下图配置即可,最重要的是22和88端口。

部署Django到阿里云服务器教程示例

然后就是我们的服务器在实例里,我的是Ubuntu16.04,要部署到阿里云上点击远程连接,第一次点击会弹出一个密码,这就是你在阿里云登录远程连接的密码,一定要记好,就会弹出这一次!

部署Django到阿里云服务器教程示例

输入密码之后就进入了Ubuntu命令行模式,这时候你输入你的Ubuntu账号,默认root,然后输入密码,密码是你在买服务器时候就设置的,成功之后就进入了Ubuntu系统,我们整个部署过程都是在这个Ubuntu系统里,命令行下进行。所以需要你多少掌握一些Ubuntu命令行的知识!

部署Django到阿里云服务器教程示例

整个部署过程我们还是使用到一个重要的软件Xftp,这个软件就相当于Ubuntu的界面系统,我们通过它连接上我们阿里云服务器的Ubuntu系统,连接成功之后就可以直接在本地通过Xftp和阿里云Ubuntu系统传送文件。

打开Xftp新建会话,然后在主机输入你的阿里云服务器公网IP,下面的账号密码可以先不输入,点击确定后会提示你输入。

部署Django到阿里云服务器教程示例

点击确定后会提示你输入账号,账号就是Ubuntu的默认root

部署Django到阿里云服务器教程示例

然后输入密码

部署Django到阿里云服务器教程示例

点击确定就进入了Ubuntu系统

部署Django到阿里云服务器教程示例

这个左面显示的是你的桌面,右面新建会话显示的就是阿里云服务器上Ubuntu系统的目录结构,在这里我们可以直接从左面(你的本地桌面)往右面(阿里云的Ubuntu系统)拖拽文件,这个在后面我们部署的时候会非常方便!

一、安装必要的软件

1、安装Django

先安装pip3:

sudo apt-get update
sudo apt-get install pip3

然后安装Django,这个地方要注意安装你所使用的Django版本:

pip3 install django2.0

2、安装nginx

sudo apt-get update
sudo apt-get install nginx

安装完成后。用你电脑的浏览器访问你的服务器的公网ip地址,看看安装成功没有!

3、安装uwsgi

在你的本地电脑访问https://uwsgi-docs.readthedocs.io/en/latest/Download.html,下载Stable/LTS版本的源文件。

本地下解压这个源文件,然后用xftp把文件拖放到阿里云的Ubuntu的家目录(home)下,使用cd命令进入到该文件夹下,按顺序依次输入下面三条命令:

sudo apt-get install python3-setuptools
sudo apt-get install python3-dev
sudo python3 setup.py install

4、安装MySQL(如果使用Django自带的数据库,跳过这步)

输入下面安装命令:

sudo apt-get install mysql-server mysql-client

安装过程中会出现叫你输入密码,这个密码一定要记住!

安装完成输入下面命令:

mysql -u root -p

然后输入你刚刚设置的密码,进去之后输入下面命令:

create database myblog

创建一个myblog数据库,这个数据库名字跟你将来要还原的数据库名字一样,用xftp把你在本地备份的sql文件拖到阿里云Ubuntu的家目录(home)下。

还原数据库;进入家目录(home),输入下面命令:

sudo mysql -u root -p myblog<myblog.sql

配置mysql文件:

sudo vim/etc/mysql/mysql.conf.d/mysqld.cnf

然后注释掉下面这行代码

# band-address = localhost

二、配置项目

经过上面的步骤,如果一切顺利你就已经把所需要的软件和环境搭建好了,接下来我们就开始配置我们的博客项目。

1、配置博客项目

先用xftp把你的整个博客项目拖到家目录(home)那里,然后开始配置nginx文件:

cd /etc/nginx/sites-available
vim default

使用cd命令进入到sites-available文件夹,文件夹下有一个default文件,使用vim打开它,找到default文件下的这段代码,如果没有就要添加上去:

server_name 192.168.1.121;
 location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    # try_files $uri $uri/ =404;
    include uwsgi_params;
        uwsgi_pass 127.0.0.1:8000; 
  }
location /static {
  alias /home/feixue/python/www/for_test/static;
}
location /media { 
	alias /home/ubuntu/blog/media; 
}

192.168.1.121替换成你自己服务器公网IP地址;

static 那里也要替换成你自己Django项目的static路径;

media 同理换成你自己Django项目的media路径,这是媒体文件的文件夹;

注意:location后面是有空格的,必须要有!alias后面也是有空格的;include上面那句话也是要注释掉的!

修改成完成后使用 wq 保存退出(vim编辑器知识不懂的百度吧)

再输入下面命令重启服务:

sudo service nginx restart

2、配置uwsgi

在博客项目的根目录下,也就是有manage.py文件的目录下,新建一个uwsgi.ini文件和一个run.log文件

然后我们使用vim编辑器编辑uwsgi.ini文件:

vim uwsgi.ini

文件打开是空的,我们添加如下代码:

[uwsgi]
chdir = /home/feixue/python/www/for_test 
module = for_test.wsgi:application 
socket = 127.0.0.1:8000 
master = true     
daemonize = /home/feixue/pyth/for_test/run.log
disable-logging = true

chdir 是你的博客项目的根目录,我这里的项目名叫for_test;你要替换成你自己的路径;

moudule 是你的入口wsgi模块,将for_test替换成你自己的项目名称;

socket 是通信端口设置,这个设置不用改,复制即可;

master = true 表示以主进程模式运行,不用改,复制即可;

daemonize 是你的日志文件目录,这个路径就是刚刚新建的run.log文件的路径;

disable-logging = true 表示不记录正常信息,只记录错误信息,否则你的日志可能很快就爆满了!

3、配置MySQL(如果使用Django自带的数据库,这步可以跳过)

修改setting.py 所在目录的那个 init.py文件使用vim编辑器打开init.py文件输入一下代码:

import pymysql
pymysql.install_as_MySQLdb()

安装mysql驱动:

pip3 install pymysql

4、修改settings.py文件

打开settings.py文件找到下面代码并修改:

DEBUG = False
ALLOWED_HOSTS = ['192.168.178.128']

注意其中的IP地址要替换成你自己阿里云公网的IP。

如果你顺利的完成了上面的步骤,那么恭喜你!你可以直接去浏览器输入你的公网IP地址,就可以访问了!

接下来我还会更新一些在部署中遇到的问题和解决办法,如果你遇到什么问题欢迎留言!

到此这篇关于部署Django到阿里云服务器教程示例的文章就介绍到这了,更多相关部署Django到阿里云内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python算法学习之基数排序实例
Dec 18 Python
python基于xmlrpc实现二进制文件传输的方法
Jun 02 Python
python下MySQLdb用法实例分析
Jun 08 Python
Python作用域用法实例详解
Mar 15 Python
Django URL传递参数的方法总结
Aug 28 Python
Python如何判断数独是否合法
Sep 08 Python
Python如何实现守护进程的方法示例
Feb 08 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
Oct 17 Python
浅谈Python大神都是这样处理XML文件的
May 31 Python
Python递归函数 二分查找算法实现解析
Aug 12 Python
Python基于数列实现购物车程序过程详解
Jun 09 Python
Python图像识别+KNN求解数独的实现
Nov 13 Python
Python flask路由间传递变量实例详解
Jun 03 #Python
django的autoreload机制实现
Jun 03 #Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 #Python
Django用户登录与注册系统的实现示例
Jun 03 #Python
python 瀑布线指标编写实例
Jun 03 #Python
Django微信小程序后台开发教程的实现
Jun 03 #Python
python判断正负数方式
Jun 03 #Python
You might like
php 字符串替换的方法
2012/01/10 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
jQuery插件实现多级联动菜单效果
2015/12/01 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
JS实现图片上传预览功能
2016/11/21 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
python将ip地址转换成整数的方法
2015/03/17 Python
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
Pyecharts绘制全球流向图的示例代码
2020/01/08 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
2020/05/15 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
python爬虫基础之urllib的使用
2020/12/31 Python
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
实习单位推荐信范文
2013/11/27 职场文书
思想政治教育专业个人求职信范文
2013/12/20 职场文书
企事业单位求职者的自我评价
2013/12/28 职场文书
八年级物理教学反思
2014/01/19 职场文书
2014年后勤管理工作总结
2014/12/01 职场文书
班主任2015新年寄语
2014/12/08 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP
Redis Stream类型的使用详解
2021/11/11 Redis