学习猿地 python教程 django教程6 华为云部署

# 上线华为云服务器部署(弹性云服务器ECS)

>环境配置:

> ubuntu 18.04

> Python 3.6.8(python3.7亦可)

> nginx version: nginx/1.14.0 (Ubuntu)

## 1. 购买华为云服务器

文档 https://support.huaweicloud.com/ecs/index.html

## 2. 上传到华为云服务器,安装依赖环境,启动项目测试

#### 1.导出当前项目的依赖环境

`pip freeze > ./pipinstall.txt`

#### 2.把数据库导出

`bookshop.sql`

#### 3.把项目内容上传到华为云服务器

xftp

#### 4.在华为云中安装需要的环境

1. mysql的安装和配置

    ```shell

    # 安装mysql

    sudo apt-get install mysql-server

    sudo apt install mysql-client

    sudo apt install libmysqlclient-dev

    # 测试进入服务

    mysql -uroot -p 空

    #创建用户,

    grant all on *.* to root@'%' identified by '123456' with grant option;

    # 退出mysql,修改mysql的配置文件

    vim /etc/mysql/mysql.conf.d/mysqld.cnf

    # 打开文件后 注释下面的一行

    #注释掉bind-address = 127.0.0.1:

    # 重启服务

    service mysql stop

    service mysql start

    ```

2. 当前项目的依赖环境

    ```shell

    # 1.创建虚拟环境,如果没有安装则会提醒

    python3 -m venv venv

    # 2.启动虚拟环境

    source venv/bin/activate

    # 3.在虚拟环境中安装当前项目需要的环境

    pip install -r pipinstall.txt

    #(venv) root@ecs-5211:/home/py23_bookshop# pip install -r pipinstall.txt

    ```

3. 注意错误

```shell

#error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

apt-get install python3-dev

```

#### 5.在云服务器中调试项目

1. 启动服务器

  `Python manage runserver 0.0.0.0:8000`

2. 浏览器访问测试

  `114.116.200.51:8000`

## 3. 搭建uwsgi启动项目测试

#### 1.安装uwsgi

`sudo pip3 install uwsgi --upgrade`

#### 2.安装完成后使用命令测试

先进入项目目录,启动命令

```shell

uwsgi --http :8000 --chdir /home/py23_bookshop/web  --module web.wsgi

# --home 指定virtualenv 路径,如果没有可以去掉。web.wsgi 指的是 web/wsgi.py 文件

```

#### 3.访问测试,启动成功后

`114.116.200.51:8000`

#### 4. 配置uwsgi文件启动项目

#### 第一步:创建一个uwsgi.ini文件

#### 第二步:在django项目同级目录创建script目录,用于存放配置脚本等等

/home/alipay/web/

    # script/  web/ db.sqlite3 manage.py uwsgi.ini

#### 第三步:编辑uwsgi.ini文件内容如下: 目录参考个人目录进行修改

```shell

# uwsig使用配置文件启动

[uwsgi]

# 项目目录

chdir=/home/py23_bookshop/web/

# 指定项目的application

module=web.wsgi:application

# 指定sock的文件路径

socket=/home/py23_bookshop/web/script/uwsgi.sock

# 进程个数

workers=5

pidfile=/home/py23_bookshop/web/script/uwsgi.pid

# 指定IP端口

http=0.0.0.0:8000

# 指定静态文件

#static-map=/static=/home/py23_bookshop/web/static/

# 启动uwsgi的用户名和用户组

uid=www-data

gid=www-data

# 启用主进程

master=true

# 自动移除unix Socket和pid文件当服务停止的时候

vacuum=true

# 序列化接受的内容,如果可能的话

thunder-lock=true

# 启用线程

enable-threads=true

# 设置自中断时间

harakiri=30

# 设置缓冲

post-buffering=4096

# 设置日志目录

daemonize=/home/py23_bookshop/web/script/uwsgi.log

# 权限

chmod-socket = 666

chown-socket = www-data

```

#### 5.执行命令,启动项目测试

uwsgi --ini uwsgi.ini

在浏览器访问127.0.0.1:8000

## 4,安装nginx

#### 1.安装nginx

`sudo apt-get install python-dev nginx`

#### 2.安装完成后,可以使用通过浏览器访问公网IP测试

#### 3.创建项目的配置文件,或者直接修改原nginx配置文件都可以

`vim /etc/nginx/sites-available/webtest.conf`

```shell

server {

    listen      80;

    server_name localtion;

    charset    utf-8;

    client_max_body_size 75M;

    location / {

        uwsgi_pass  unix:///home/py23_bookshop/web/script/uwsgi.sock;

        include    /etc/nginx/uwsgi_params;

    }

    #location /media  {

    #    alias /path/to/project/media;

    #}

    location /static {

        alias /home/py23_bookshop/web/static/;

    }

}

```

#### 4.创建完配置文件后创建软连接

`sudo ln -s /etc/nginx/sites-available/webtest.conf /etc/nginx/sites-enabled/webtest.conf`

#### 5.启动nginx,重新加载配置文件

`nginx -s reload`

注意:

1.给当前项目设置访问权限。www-data

2.注意在nginx的配置中uwsgi_pass这一项 uwsgi_pass unix:///home/yc/web/script/uwsgi.sock; 它需要找到你在启动uwsgi后的sock文件,并且要注意权限

3.在使用uwsgi --ini uwsgi.ini启动后会创建 .sock文件 那么在后面更新代码时不需要把 script目录下的文件都删除 只需要重启即可 uwsgi --reload xxx.pid


 

掌握学习方法,不如会弯道超车!

学习猿地:成就自己的只需一套精品!

猜你喜欢

转载自www.cnblogs.com/itxdl/p/12557251.html