部署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使用正则搜索字符串或文件中的浮点数代码实例
Jul 11 Python
python在windows命令行下输出彩色文字的方法
Mar 19 Python
python中urlparse模块介绍与使用示例
Nov 19 Python
python 移除字符串尾部的数字方法
Jul 17 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
Aug 05 Python
使用Python调取任意数字资产钱包余额功能
Aug 15 Python
python进阶之自定义可迭代的类
Aug 20 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
Mar 30 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
python 实现端口扫描工具
Dec 18 Python
教你如何用Python实现人脸识别(含源代码)
Jun 23 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
支持oicq头像的留言簿(二)
2006/10/09 PHP
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
PHP面向接口编程 耦合设计模式 简单范例
2011/03/23 PHP
php查询ip所在地的方法
2014/12/05 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
jQuery中Ajax的get、post等方法详解
2015/01/20 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
2016/12/20 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
让你彻底掌握es6 Promise的八段代码
2017/07/26 Javascript
jquery获取链接地址和跳转详解(推荐)
2017/08/15 jQuery
JS实现预加载视频音频/视频获取截图(返回canvas截图)
2017/10/09 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
python语言元素知识点详解
2019/05/15 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
python Django的web开发实例(入门)
2019/07/31 Python
css3 矩阵的使用详解
2018/03/20 HTML / CSS
h5封装下拉刷新
2020/08/25 HTML / CSS
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
大学毕业生的自我鉴定
2013/11/30 职场文书
公司前台辞职报告
2014/01/19 职场文书
入股协议书
2014/04/14 职场文书
投标诚信承诺书
2014/05/26 职场文书
节约用水的口号
2014/06/20 职场文书
社区助残日活动总结
2014/08/29 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
Python实现制作销售数据可视化看板详解
2021/11/27 Python
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫