學習猿地 python教程 django教程6 華爲雲部署

# 上線華爲雲服務器部署(彈性雲服務器ECS)html

>環境配置:python

> ubuntu 18.04mysql

> Python 3.6.8(python3.7亦可)linux

> nginx version: nginx/1.14.0 (Ubuntu)nginx

## 1. 購買華爲雲服務器web

文檔 https://support.huaweicloud.com/ecs/index.htmlsql

## 2. 上傳到華爲雲服務器,安裝依賴環境,啓動項目測試shell

#### 1.導出當前項目的依賴環境數據庫

`pip freeze > ./pipinstall.txt`django

#### 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

 

 

掌握學習方法,不如會彎道超車!

學習猿地:成就本身的只需一套精品!

相關文章
相關標籤/搜索