部署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中操作字符串之startswith()方法的使用
May 20 Python
python结合API实现即时天气信息
Jan 19 Python
python中set常用操作汇总
Jun 30 Python
Python用list或dict字段模式读取文件的方法
Jan 10 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
Jun 09 Python
Python抓取框架Scrapy爬虫入门:页面提取
Dec 01 Python
Python代码打开本地.mp4格式文件的方法
Jan 03 Python
关于python字符串方法分类详解
Aug 20 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
Jun 23 Python
python selenium xpath定位操作
Sep 01 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
Dec 08 Python
两行代码解决Jupyter Notebook中文不能显示的问题
Apr 24 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 格式化数字的时候注意数字的范围
2010/04/13 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
Js,alert出现乱码问题的解决方法
2013/06/19 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
node.js中的fs.link方法使用说明
2014/12/15 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
JS实现获取剪贴板内容的方法
2016/06/21 Javascript
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
微信小程序url传参写变量的方法
2018/08/09 Javascript
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
2016/07/12 Python
Python实现字符串逆序输出功能示例
2017/06/24 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
详解python中sort排序使用
2019/03/23 Python
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
阿尔卡特(中国)的面试题目
2014/08/20 面试题
大专应届生个人简历的自我评价
2013/10/15 职场文书
销售副总经理岗位职责
2013/12/11 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
库房保管员岗位职责
2014/04/07 职场文书
植树节活动总结
2014/04/30 职场文书
中学生学习保证书
2015/02/26 职场文书
小学二年级语文教学反思
2016/03/03 职场文书
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL