部署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入门教程
Feb 08 Python
python数组过滤实现方法
Jul 27 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
Jul 04 Python
Python中进程和线程的区别详解
Oct 29 Python
python爬虫的数据库连接问题【推荐】
Jun 25 Python
Python自定义一个类实现字典dict功能的方法
Jan 19 Python
pyhanlp安装介绍和简单应用
Feb 22 Python
Python解释器及PyCharm工具安装过程
Feb 26 Python
Python Tkinter Entry和Text的添加与使用详解
Mar 04 Python
django-csrf使用和禁用方式
Mar 13 Python
套娃式文件夹如何通过Python批量处理
Aug 23 Python
Python编程根据字典列表相同键的值进行合并
Oct 05 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
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
JavaScript中的setUTCDate()方法使用详解
2015/06/11 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
JavaScript驾驭网页-CSS与DOM
2016/03/24 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
微信小程序之几种常见的弹框提示信息实现详解
2019/07/11 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
2020/11/02 Javascript
在Python 3中实现类型检查器的简单方法
2015/07/03 Python
Python的Flask框架的简介和安装方法
2015/11/13 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
Pycharm设置界面全黑的方法
2018/05/23 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
保荐人的岗位职责
2013/11/19 职场文书
应届生找工作求职信
2014/06/24 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
2014年减负工作总结
2014/12/10 职场文书
综合实践活动报告
2015/02/05 职场文书
2015年女生节活动总结
2015/02/27 职场文书
2015年教研组工作总结
2015/05/04 职场文书
社区党务工作总结2015
2015/05/19 职场文书