Vue+Djangoプロジェクトの展開の詳細


ローカルプロジェクトの設定
1 luffy/settings/dev.pyをコピーします。prop.pyです。
luffy/settings/prop.pyの中で以下の項目を修正します。
(1)allow_hosts

ALLOWED_HOSTS = [
  'api.youdomain.com',
]
(2)ドメイン別ホワイトリスト

CORS_ORIGIN_WHITELIST = (
  #     
  "www.youdomain.com", 
  #   api    
  "api.youdomain.com"
)
(3)Alipayコンピュータのウェブサイトの支払いの配置情報

ALIPAY_APPID = "xxxxxxx"
APP_NOTIFY_URL = None
ALIPAY_DEBUG = True
# APIPAY_GATEWAY="https://openapi.alipay.com/gateway.do"
APIPAY_GATEWAY = "https://openapi.alipaydev.com/gateway.do"
ALIPAY_RETURN_URL = "http://www.youdomain.com/success"
ALIPAY_NOTIFY_URL = "http://api.youdomain.com:8000/payments/success"
2 luffy/wsgi.pyファイルを修正する
14行目

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffy.settings.prop")
3 manage.pyファイルを修正する
変えなくてもいいです。サーバーでテストするために便利です。
6行目

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffy.settings.prop")
4 pipにインストールされているパッケージのリストをエクスポートします。

freeze > docs/requirements.txt
5静的ファイルを収集する

python manage.py collectstatic
6提出・送付

git add .
git commit -m "    "
git push -u origin master
7先端配置変更src/settings.js
バックエンドサーバのドメイン名とポートを設定します。

Host:http://api.youdomain.com:80,
8構築

npm run build
9提出・送付

git add .
git commit -m "    "
git push -u origin master
サーバ上の設定
1インストールに必要なソフトウェア

yum install python36-pip.noarch python36.x86_64 python36-devel.x86_64 nginx git gcc -y
pip3 install virtualenv -i https://pypi.douban.com/simple
注意:uwsigはpip方式で設置したほうがいいです。

pip3 install uwsgi -i https://pypi.douban.com/simple
2 mysqlデータベース関連配置
(1)mysqlの取り付け

yum install mysql-server -y
または使用容器
パスワードの設定と初期設定は自分で解決してください。
(2)データベースの起動

systemctl start mysqld
(3)新規データベースluffy

create database luffy;
(4)データの導入

mysql -uroot -pmysql luffy < luffy.sql
3フレディインストールと配置
yumを使ってインストールして起動することができます。簡単で乱暴です。
最新版を使うために、解凍してインストールします。
その方法が好きならいいです。
(1)ダウンロード

cd /opt/
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
(2)圧力を解き、取り付ける

tar -xf redis-5.0.5.tar.gz
cd /opt/redis-5.0.5
make && make install
(3)プロファイルの変更
vim redis.com.
69行bind 127.1.0.1
ビッド0.0.0に変更
(4)Redisを起動し、楽屋に置く

nohup redis-server redis.conf &
4先端項目を引く

cd /opt/
git clone https://gitee.com/SunHarvey/luffyweb.git
フロントエンドプロジェクトのパスは/opt/luffyweb/
ただ/opt/luffyweb/dist/ファイルが有用で、
distは先端ルートディレクトリとして使用します。他のものは不要です。
5仮想環境を作成する
(1)仮想環境の作成

cd /opt/
virtualenv luffy 
つまり仮想環境パスは/opt/luffy/

cd /opt/luffy/
(2)仮想環境をアクティブにする

source /opt/luffy/bin/activate
(3)バックエンド項目を引き出す

git clone https://gitee.com/SunHarvey/luffy.git
注:プロジェクトのルートパスは/opt/luffy/luffy/

cd luffy
以下のファイルが見られます。

docs luffy manage.py scripts static
(4)pipの設置に必要なカバン
私のdjangoは2.0バージョンを使っています。pymysqlのせいでソースを間違えて報告する必要はありません。
luffy/docs/requirements.txtの中のxadminの行を削除します。

pip3 install https://codeload.github.com/sshwsfc/xadmin/zip/django2
pip3 instal -r /opt/luffy/luffy/docs/requirements.txt
(5)runserverでdjangoプロジェクトを起動したら正常かどうかを確認してください。
MySQLデータベースとredisを起動してください。

python manage.py runserver
エラーがないなら続けて、エラーを報告したらヒントによって除外してください。
6 uwsgi配置
(1)uwsgi.iniの構成内容は以下の通りである。

vim /opt/luffy/luffy/uwsgi.ini
[uwsgi]
#   uwsgi     ,     ,    ,             
uid = nginx
gid = nginx
#  nginx     ,Django         
socket=127.0.0.1:8000
#   web     ,Django         
#http=0.0.0.0:8080
#    
chdir=/opt/luffy/luffy
#   wsgi.py     ,       
wsgi-file=luffy/wsgi.py
#    
processes=1
#    
threads=2
# uwsgi      
master=True
#          
pidfile=uwsgi.pid
#     ,  uwsgi           ,     。     runserver      
daemonize=uwsgi.log
#          
virtualenv=/opt/luffy/
# clear environment on exit #       
vacuum = true
(2)ファイル所有者を変更し、rootで起動するとこのステップを無視できます。

chown -R nginx.nginx /opt/luffy/luffy/
inxを現在ログインしているユーザ名に変えてもいいです。他のユーザもいいです。
(3)uwsgiを起動し、MySQLデータベースとredisを起動することを覚えている。

uwsgi --ini /opt/luffy/luffy/uwsgi.ini
7 nginx設定
(1)プロファイルの作成

vim /etc/nginx/conf.d/your.conf 
#     uwsgi   ,          
upstream luffy {
  server 127.0.0.1:8000;
}
#    api     
server {
  listen 80;
  server_name api.youdomain.com;
  location / {
    include uwsgi_params;
    uwsgi_pass luffy;
  }
  #   css、js  
  location ~ .*\.(css|js)$ {
    root /opt/luffy/luffy/;
    }
}

#          
server {
  listen 80;
  #     ,     !nginx 80       n    !
  server_name youdomain.com www.youdomain.com;
  location / {
    # /opt/luffyweb/dist/  npm run build      
    root /opt/luffyweb/dist/;
    index index.html;
    try_files $uri $uri /index.html;
  }
}

これは最も基本的な構成であり、他の最適化構成はこれ以上説明しない。
(2)inxプロファイルの文法を確認する

nginx -t
(3)inxの起動

systemctl start nginx
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。