部署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脚本分享
Apr 21 Python
详解Django通用视图中的函数包装
Jul 21 Python
Python字符串切片操作知识详解
Mar 28 Python
利用Python如何生成hash值示例详解
Dec 20 Python
利用python的socket发送http(s)请求方法示例
May 07 Python
windows下添加Python环境变量的方法汇总
May 14 Python
Python实现压缩文件夹与解压缩zip文件的方法
Sep 01 Python
Python django使用多进程连接mysql错误的解决方法
Oct 08 Python
python3实现表白神器
Apr 09 Python
基于Python实现剪切板实时监控方法解析
Sep 11 Python
Python 中 -m 的典型用法、原理解析与发展演变
Nov 11 Python
Pyorch之numpy与torch之间相互转换方式
Dec 31 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图片的裁剪与缩放生成符合需求的缩略图
2013/01/11 PHP
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
JS重载实现方法分析
2016/12/16 Javascript
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
微信小程序实现录音时的麦克风动画效果实例
2019/05/18 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
2020/07/11 Javascript
python ip正则式
2009/05/07 Python
通过mod_python配置运行在Apache上的Django框架
2015/07/22 Python
Python中return语句用法实例分析
2015/08/04 Python
Python自定义线程池实现方法分析
2018/02/07 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
纯CSS3发光分享按钮的实现教程
2014/09/06 HTML / CSS
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
安全的后院和健身蹦床:JumpSport
2019/07/15 全球购物
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
交通事故赔偿协议书怎么写
2014/10/04 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
群众路线自查报告及整改措施
2014/11/04 职场文书
小学班主任评语
2014/12/29 职场文书
教师工作表现自我评价
2015/03/05 职场文书
倡议书怎么写?
2019/04/11 职场文书
Web前端:CSS最强总结 附详细代码
2021/03/31 HTML / CSS