IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Django项目部署到阿里云 -> 正文阅读

[Python知识库]Django项目部署到阿里云

目录

一.基本配置

二.部署准备

三.进入ubuntu

1.系统更新

2.安装MySQL数据库

3.配置MySQL数据库

4.创建项目目录并安装虚拟环境

5.安装uWSGI服务器(以下命令建议在虚拟环境中执行)

6.安装Nginx

7.在服务器上配置项目

8.配置Nginx

9.配置uWSGI

四.测试

五.放几张成功截图


一.基本配置

开发使用的Django版本:3.2.5;

开发使用的python版本:3.8.5;

开发使用的mysql版本:8.0.26;

服务器上的python版本:3.6.9;

服务器上的Django版本:3.2.8;

服务器上的mysql版本:5.7.35;

开发环境:window10;

部署环境:Ubuntu18.04;

uwsgi version:2.0.20;

nginx version: nginx/1.14.0;

二.部署准备

从阿里云官网购买一个最低配的云服务器ECS就可以,我购买的是1核 2 GiB。购买成功后他会让你选择该服务器的系统,选择Ubuntu18.04就可以,设置登录的用户名与密码。购买完成后,会出现运行的实例。然后需要配置安全组规则,即对端口的访问进行限制,先选择快速添加安全组规则,把那些添加后,我们再添加一个允许外界对8000端口进行访问的规则。

三.进入ubuntu

进入之后我们就是root用户,我没有再设置新用户,直接使用root用户对ubuntu进行操作。

接下来就开始命令行(如果是root用户下面的sudo可以不用敲)

1.系统更新

sudo apt-get update

sudo apt-get dist-upgrade

用上面两条命令进行系统更新

sudo apt-get -y update

更新Ubuntu中的/etc/apt/source.list的源

sudo apt-get install python-setuptools

更新python安装工具

2.安装MySQL数据库

sudo apt-get install mysql-server

安装数据库

sudo mysql_secure_installation

对数据库进行安全配置

这里找不到我当初看的博客了,我在这个输入的地方,输入的n;这样数据库对你的密码强度就没有要求了,如果单纯为了实验可以选择个简单的密码。后面一直输入y就可以。

下文链接:https://blog.csdn.net/qq_24472235/article/details/100033837

Remove anonymous users? [Y/n] <– 是否删除匿名用户,生产环境建议删除,所以直接回车

… Success!

Normally, root should only be allowed to connect from ‘localhost’. This

ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] <–是否禁止root远程登录,根据自己的需求选择Y/n并回车,建议禁止(根据个人需求)

… Success!

By default, MySQL comes with a database named ‘test’ that anyone can

access. This is also intended only for testing, and should be removed

before moving into a production environment.

Remove test database and access to it? [Y/n] <– 是否删除test数据库,直接回车(根据个人需求)

??? Dropping test database…

… Success!

??? Removing privileges on test database…

… Success!

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

Reload privilege tables now? [Y/n] <– 是否重新加载权限表,直接回车

… Success!

Cleaning up…

All done! If you’ve completed all of the above steps, your MySQL

installation should now be secure.

Thanks for using MySQL!
上文链接:https://blog.csdn.net/qq_24472235/article/details/100033837

3.配置MySQL数据库

cd /etc/mysql

sudo vim my.cnf

进入MySQL数据库配置文件所在的目录,用vim修改my.cnf。


!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character-set-server=utf8
[mysql]
no-auto-rehash
default-character-set=utf8

注:在我看的参考书上的socket进行了配置,但是我配置后会报错,所以我没有配置。具体配置内容:socket=/var/lib/mysql/mysql.sock。(在[client]下)

sudo service mysql restart

重启数据库,让配置生效

sudo mysql -uroot -p

登录数据库,如果可以正常登录,则说明数据库的安装和配置都没问题。

在django项目的setting文件下找到数据库的名字,在服务器中也创建一个。

create database you default character set utf8 collate utf8_general_ci;

数据库命令行中须运行以下命令以保证python可以与数据库进行连接。(把用户,密码改成自己的)

mysql>update mysql.user set authentication_string=PASSWORD('newPwd'), plugin='mysql_native_password' where user='root';

mysql> flush privileges;

4.创建项目目录并安装虚拟环境

mkdir myweb

在根目录下建立myweb目录

sudo pip install virtualenv

安装viryualenv

cd myweb

sudo virtualenv --python=python3 myenv

进入myweb目录,建立虚拟目录

soure myenv/bin/activate

激活虚拟环境

PS:ubuntu18.04会自带python2和python3,可以把python2卸载,以防调用出错。

5.安装uWSGI服务器(以下命令建议在虚拟环境中执行)

sudo apt-get install gcc

sudo apt-get install python3-dev

sudo pip install uwsgi

安装GCC,python开发相关工具模块,uwsgi

uwsgi

允许uwsgi测试安装是否成功

6.安装Nginx

sudo apt-get install nginx

安装nginx用以处理静态文件请求

7.在服务器上配置项目

DEBUG = False

ALLOWED_HOSTS = ['127.0.0.1','localhost','192.168.0.168','*']

在项目的setting中要增加以上内容,以允许外部域名访问

把应用程序的migrations文件下,把以数字开头的文件删除,因为那会影响到利用python对服务器中数据库表的建立。

利用Xftp把项目上传到服务器中的myweb目录下。

(注:djangoProject下面的_init_.py中应有:

import pymysql
pymysql.install_as_MySQLdb()

进入虚拟环境,进入myweb/djangoProject/?? (项目名称为djangoProject)

pip install django

安装django

python3 manage.py makemigrations

python3 manage.py migrate

运行以上命令在ubuntu的数据库中创建表

python3 manage.py createsuperuser

生成Django管理后台的管理员

8.配置Nginx

cd myweb/djangoProject

cp /etc/nginx/uwsgi_params

把uwsgi_params复制到项目根目录下

cd /etc/nginx

vim nginx.conf

在该文件的开头添加:user root;

在该文件http大括号中添加:

upstream django {
?????????????? server 127.0.0.1:8001;
? }
?server {
????? listen 8000;
???
????? server_name 192.168.0.106;#域名
????? charset utf-8;
????? location /media {
?????????? alias /root/myweb/djangoProject/media;#我实际的保存路径为/root/myweb/djangoProject/media/headimage但用这个路径图片无法显示
????? }
????? location /static {
?????????? alias /root/myweb/djangoProject/static;
????? }
????? client_max_body_size 75M;
????? location / {
?????????? uwsgi_pass django;
?????????? include /root/myweb/djangoProject/uwsgi_params;
????? }
????? location /templates {
??????????? alias? /root/myweb/djangoProject/templates;
??????? }
}

重启nginx使配置生效:

sudo service nginx restart

9.配置uWSGI

在项目根目录下:sudo vim project_uwsgi.ini

[uwsgi]
chdir=/root/myweb/djangoProject
module=djangoProject.wsgi
master=true
processes=10
socket=127.0.0.1:8001
chmod-socket=662
vacuum=true
home =/root/myweb/myenv

四.测试

uwsgi --ini project_uwsgi.ini

五.放几张成功截图

 

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-22 10:53:42  更:2021-10-22 10:54:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:29:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码