クラウドサーバーはBaotaを使用してPython環境を構築し、Djangoプログラムを実行します。

クラウドサーバーはBaotaを使用してPython環境を構築し、Djangoプログラムを実行します。

始める前に、サーバーが必要です。

Pagodaをインストールする

バオタ公式サイト:https://www.bt.cn/

CentOS システムを使用している場合は、次のコマンドを使用してインストールします。

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

インストールが完了すると、アクセスアドレス、アカウント番号、パスワードが表示されます。

この時点で最初に行うべきことは、クラウド サーバーのコントロール パネルに移動してポート8888を開くことです。詳細についてはセキュリティ グループ構成を検索し、ポートを開くことができます。

Baota をインストールした後、再度アドレスにアクセスすると、ログイン インターフェイスが表示されます。これは、ポートが開いており、Baota が正常に動作できることを意味します。

Pythonランタイム環境を構成する

Baota のソフトウェア ストアを開き、下の図に示すように関連コンテンツをインストールします。Baota にログインすると、デフォルトでLAMPまたはLNMPインストールが推奨されます。推奨されるインストールを選択するだけです。

上記の Python プロジェクト マネージャーは、Python プログラムに対するその後の操作に不可欠なプラグインであることに注意してください。

Pythonをインストールする

Python プロジェクト マネージャーの右側にある [設定] ボタンをクリックし、ポップアップ ウィンドウで [バージョン管理] を選択して、必要な Python バージョンをインストールします。ここでのインストール速度は少し遅いので、しばらくお待ちください。

Django環境を設定する

Django 環境を構築する際は、必ず以下の図を参考に構築してください。モジュール依存関係をインストールするかどうかは、プロジェクト内にrequirements.txtファイルがあるかどうかで決まります。ある場合は、それを確認してください。プロジェクト開始後にモジュールを個別に構築することもできます。

モジュールのインストール

プロジェクトが初期化されたら、右側のモジュールをクリックして、 djangoなど、プロジェクトで使用されるモジュールを手動でインストールします。

モジュールをインストールするときは、バージョン番号に注意してください。たとえば、私はローカルで Django のバージョン 2.x を使用しているため、サーバーもこのバージョンをインストールします。

すべてのモジュールがインストールされたら、Python サービスを再起動できます。ここでは、再起動が成功したことを確認するためにログの内容に注意する必要があります。

ここではPython Djangoの動作中に発生するさまざまな問題を示します。

たとえば、最初の実行時に Centos システムのsqlite3バージョンが低すぎる場合、ログにSQLite 3.xx or later文字が表示されます。このとき、SQlite バージョンをアップグレードする必要があります。

以下の内容はインターネットから転載したものです(https://www.jb51.net/article/231391.htm、元の著者に感謝します。アップグレードの際に参照できます)

# SQLite 3 のアップデート
# ソースコードを取得する(ホームディレクトリで実行)
[root@djangoServer ~]# cd ~
[root@djangoServer ~]# wget https://www.sqlite.org/2019/sqlite-autoconf-3270200.tar.gz
[root@djangoServer ~]# tar -zxvf sqlite-autoconf-3270200.tar.gz

# [root@djangoServer ~] をビルドしてインストールします# cd sqlite-autoconf-3270200
[root@djangoServer sqlite-autoconf-3270200]# ./configure --prefix=/usr/local/sqlite
[root@djangoServer sqlite-autoconf-3270200]# make && make install

# バージョンを確認 ## インストールされている最新の sqlite3 バージョン [root@djangoServer ~]# /usr/local/sqlite/bin/sqlite3 --version
3.27.2 2019-02-25 16:06:06 bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0f6d7
[ルート@djangoServer ~]#

## Centos7 独自の sqlite3 バージョン [root@djangoServer ~]# /usr/bin/sqlite3 --version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
[ルート@djangoServer ~]#

## sqlite3 のバージョンがまだ古いバージョンであるため、更新する必要があることがわかります。
[root@djangoServer ~]# sqlite3 --version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
[ルート@djangoServer ~]#

## 古い sqlite3 への変更
[root@djangoServer ~]# mv /usr/bin/sqlite3 /usr/bin/sqlite3_old

## ソフトリンクは新しい sqlite3 を /usr/bin ディレクトリに設定します [root@djangoServer ~]# ln -s /usr/local/sqlite/bin/sqlite3 /usr/bin/sqlite3

## 現在のグローバル sqlite3 バージョンを表示する [root@djangoServer ~]# sqlite3 --version
3.27.2 2019-02-25 16:06:06 bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0f6d7
[ルート@djangoServer ~]#

# 共有ライブラリへのパスを渡す # 起動時の実行が自動的に実行されるように設定する。次の export 文を ~/.bashrc ファイルに記述できます。すぐに有効にしたい場合は、source ~/.bashrc を実行できます。ターミナルを起動するたびに実行されます。[root@djangoServer ~]# export LD_LIBRARY_PATH=/usr/local/sqlite/lib

実行されていて、ログにエラー データが生成されていない限り、構成は成功していることを意味します。次に、nginx リバース プロキシを設定できます。

nginx リバースプロキシ

下の画像のマッピング ボタンをクリックし、ドメイン名またはサーバーの外部 IP を入力します。

Baota ウェブサイトの機能メニューに戻ると、新しいサイトが表示されます。

ウェブサイト名をクリックしてリバース プロキシ構成を表示し、実行されていることを確認します。

この時点で、ブラウザを開いてドメイン名または IP を入力し、Django プログラムに正常にアクセスできるかどうかをテストできます。それでもエラーが発生する場合は、プロジェクトのルート ディレクトリにあるsettings.pyファイルをチェックして、次の内容、つまりALLOWED_HOSTが構成されているかどうかを確認します。

Django プログラムにまだ静的リソースがある場合は、必ずリバース プロキシ設定 (空白行を見つける) に移動して、静的ディレクトリ設定を追加してください。

    場所 /static/
    {
        エイリアス /www/wwwroot/プロジェクトアドレス/static/;
    }

最後に、パゴダで Web サイトのポート (この場合は8000にアクセスできるかどうかを確認してください。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Tencent Cloud Server をベースに WeChat アプレット バックエンド サービスを展開 (Python+Django)
  • Django 本番環境構築 (uWSGI+django+nginx+python+MySQL)
  • Python3+mysql8.0でDjangoフレームワークを構築する方法を教えます

<<:  MySQLウィンドウ関数の具体的な使用法

>>:  HTMLのリストタグを数える

推薦する

JavaScript Proxyオブジェクトの詳細な説明

目次1. プロキシとは何ですか? 2. 使い方は? 1. プロキシを使用する簡単な例2. 対象オブジ...

UTF-8 ファイルの Unicode 署名 BOM (バイト オーダー マーク) の問題

最近、UTF8 エンコードの中国語 Zen Cart Web サイトをデバッグしているときに奇妙な現...

JavaScriptの浅いコピーと深いコピーについての簡単な説明

目次1. 直接譲渡2. 浅いコピー3. ディープコピー1. JSONオブジェクトメソッド2. 再帰コ...

CSS3 の Flex レイアウトの詳細な分析

Flexbox レイアウト モジュールは、コンテナー内のスペースをより効率的に配分する方法を提供する...

Node.js でメモリ効率の高いアプリケーションを作成する方法

目次序文問題: 大きなファイルのコピーNodeJS のストリームとバッファバッファストリーム解決策 ...

MLSQLコンパイル時権限制御例の詳細な説明

序文MySQL の権限を簡単に理解すると、MySQL では自分の能力の範囲内で操作が許可され、その限...

Ubuntuはポート22を開きます

シナリオssh 経由で Ubuntu サーバーに接続するには、xshell ツールを使用する必要があ...

JSで画面録画機能を作成する

OBS studioかっこいいですが、 JavaScriptもっとかっこいいです。では、 JavaS...

VUEのデータプロキシとイベントの詳細な説明

目次Object.defineProperty メソッドのレビューデータブローカーとは何ですか? V...

MySQLカスタム関数の原理と使用法の分析

この記事では、例を使用して MySQL カスタム関数の原理と使用方法を説明します。ご参考までに、詳細...

WangEditor リッチ テキスト コンポーネントを Angular でカプセル化する方法

リッチ テキスト コンポーネントは、Web プログラムで、特にブログやフォーラムなどの Web サイ...

MySQLインデックスの失敗の典型的なケース

目次典型的なケース付録: 一般的なインデックス障害の状況典型的なケース次の構造を持つ 2 つのテーブ...

進捗バー効果を実現するJavaScript

この記事では、プログレスバー効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

JavaScript ツールチェーンの不完全なガイド

目次概要静的型チェックコードスタイルチェック(Linter)パッケージマネージャーモジュールローダー...

HTML 選択オプションの基本的な理解と使用

JavaScript での HTML (選択オプション) の詳細な説明1. 基本的な理解:コードをコ...