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

后台管理

进入后台管理时,会发现缺失CSS框架,我们把/root/myweb/myenv/lib/python3.6/site-packages/django/contrib/admin/static这个路径下的admin文件夹中的静态文件复制到我们项目的static中就可以了。

五.放几张成功截图

 
  

你可能感兴趣的:(笔记,django,阿里云,python)