クラウドサーバーは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のリストタグを数える

推薦する

React は入力値を取得し、2 つのメソッドの例を送信します

方法1: DOMが提供するイベントオブジェクトのターゲットイベント属性を使用して値を取得し、送信する...

Linux で Jenkins プロジェクトを構築するプロセス (CentOS 7 を例に)

https://gitee.com/tengge1/ShadowEditor のデプロイメントを例...

MySQL クエリの重複データ (重複データを削除し、ID が最も小さいデータのみを保持します)

開発の背景:最近、私はバッチ データを MySQL データベースにインポートする機能に取り組んでいま...

Element-uiはテーブル内のセルを直接クリックして編集します

目次成果を達成する実装コード最近、会社でelementUIを使い始めたため、開発の過程でテーブルのセ...

CSS3 で背景の透明化と不透明テキストを実装するサンプルコード

最近、画像上に半透明の背景でテキストを表示する必要があるという要件に遭遇しました。その効果は次のよう...

Dockerコンテナを停止および削除できない問題の解決策

実行中のコンテナIDを見つける ドッカーps上記のコンテナの物理的な場所を見つける /var/lib...

Linux ドライバ開発でよく使われる関数 copy_from_user open read write の詳細な説明

目次Linux ドライバーの共通機能 (copy_from_user open read write...

JavaScript配列の一般的なメソッドの詳細な説明

目次元の配列を変更しない方法1. 連結文法:パラメータ:戻り値: 2. 参加する文法:パラメータ:戻...

Docker /var/lib/docker/aufs/mnt ディレクトリのクリーニング方法

会社のサービスはdockerを使用しており、ディスクマンが見つかりました。その後、次のコマンドを実行...

WeChatアプレットbindtapとcatchtapの違いの詳細な説明

目次1. イベントとは何ですか? 2. イベントの使い方3. バインドタップとキャッチタップの違い4...

4種類のMySQL接続とマルチテーブルクエリの詳細な説明

目次MySQL 内部結合、左結合、右結合、外部結合、複数テーブルクエリビルド環境: 1. 内なる慈恩...

MySQL シリーズ 3 基礎

目次チュートリアルシリーズ1. MySQL の紹介2. MySQLの開発履歴3. MariaDBの基...

vue.js ルーターのネストされたルート

序文:ルートでは、主要部分は同じでも、基礎となる構造が異なることがあります。たとえば、ホームページに...

Nginx で Basic Auth ログイン認証を設定する方法

nginx でファイルサーバーを構築することもありますが、これは一般に公開されていますが、サーバーが...

Docker ディスク領域クリーニングのソリューション

少し前に、docker ディスク容量が小さすぎてデータを書き込めないという問題が発生しました。理由は...