ライブラリ管理システムプロジェクトを展開する

 

ライブラリ管理システムプロジェクトを展開する

 

 

展開の準備

次のソフトウェアを使用して、書籍管理プロジェクトを展開します

  • nginx
  • uWSGI
  • CentOS7
  • ライブラリ管理プロジェクトファイルを展開する
  • virtualenv
  • スーパーバイザー

水曜日

Python Webサーバー開発では、WSGIプロトコル(Webサーバーゲートウェイインターフェイス)を使用します

Python Webプロジェクトは、デフォルトでwsgi.pyファイルを生成し、アプリケーションモジュールを決定します。

実稼働環境では、すべてのWSGIインターフェイスを実装するuWSGIを使用し、C言語で記述されており、非常に効率的なWebサーバーです。

uWSGIは、WSGIプロトコル、uwsgiプロトコル、httpプロトコルなどを実装するフル機能のHTTPサーバーです。それがしなければならないことは、HTTPプロトコルを言語がサポートするネットワークプロトコルに変換することです。たとえば、HTTPプロトコルはWSGIプロトコルに変換されるため、Pythonを直接使用できます。

Nginx

Nginxはリバースプロキシ機能に使用されます。プロジェクトはDjango + uWSGI + Nginxを介してサーバーにデプロイされます。

CentOS

1.プロジェクトのCRMフォルダー、圧縮ファイルをパックします

2. xftp、scp、lrzszなどを介してCentosサーバーにファイルをアップロードします。

Linuxの使用スキル

1. xshellやiTermなどのソフトウェアを使用して複数の端末でlinxuを操作します。これにより、uwsgi、nginx、プロジェクトコードをデバッグするときに、ディレクトリの切り替えを回避し、作業効率を向上させることができます。

2. Linuxソフトウェアの構成ファイルを変更した場合、有効にするにはサービスを再起動する必要があることに注意してください。

Virtualenv

ソフトウェアの依存関係や競合を防ぐために、クリーンで分離されたPythonインタープリター環境を構築することをお勧めします。

スーパーバイザー

スーパーバイザー(http://supervisord.org/)は、Pythonで開発されたクライアント/サーバーサービスです。これは、Linux / Unixシステムでのプロセス管理ツールであり、Windowsシステムをサポートしていません。1つ以上のプロセスを簡単に監視、開始、停止、および再起動できます。プロセスがスーパーバイザーによって管理されている場合、プロセスが誤って強制終了された場合、スーパーバイザーはプロセスが停止したことを検出した後、自動的にプロセスを再プルします。自動プロセス回復の機能を実現するのに非常に便利です。それを制御するシェルスクリプト。

 

展開を開始する

1.Linuxの操作に精通している

Linuxの基本的なコマンド操作、省略...

 

2.python3インタープリターのインストール

参照ブログ:https://www.cnblogs.com/tiger666/articles/10312522.html

 

3.仮想環境の問題を解決するためにvirtualenvwrapperツールを構成します

確認〜/ .bashrcのvirtualenvwrapperプロファイルの内側に配置され
WORKON_HOME =〜/ ENVSその
VIRTUALENVWRAPPER_VIRTUALENV_ARGS = ' --no-サイトパッケージ' 
VIRTUALENVWRAPPER_PYTHON =は/ opt / python36 / binに/のpython3の
ソースは/ opt / python36 / binに/ virtualenvwrapper.sh 

ブック管理システムプロジェクト
mkvirtualenvbook_manage_envの仮想環境を作成してアクティブ化します

 

4. MariaDBデータベースをインストールして構成し、データベースデータを作成し、ライブラリ管理システムにインポートされたデータを移行します

(1)MariaDBデータベースをインストールして起動します

CentOS7では、MariaDBはmysqlデータベースですが、パッケージ名は異なります

ダウンロードに使用YUMとmariadbをインストール
yumをMariaDB MariaDB-クライアントサーバーをインストールする- Y- 

#の開始mariadbサーバは
MySQLを起動systemctl

(2)rootユーザーのリモートアクセスに接続して承認する

クライアントを使用してmysqlサーバーをリンクします
mysql-uroot --MariaDB Linuxにp-landed 

注1、Linuxデータベース、rootユーザー権限へのリモートリンクを設定する必要があります。パスワードはqishi3qです。rootに
すべての権限を付与します@ * ON *。で識別されるqishi3q ;
 #は、すべての権利を承認、すべてのライブラリ、すべてのホスト上のrootユーザーのすべてのテーブルには、アクセス権を設定されたパスワードがqishi3qあるリフレッシュ承認フォームの
フラッシュ権限;

注2、Linuxのファイアウォールとselinux閉じる必要があります。閉じないと、LinuxにリンクするWindowsの3306ポートが拒否される可能性があります。

(3)図書管理プロジェクトのデータをインポートする

 

linuxサーバーでは、mysql、import library management system data 

1.mysql data export and import 
is this command in linux / knock windows in 
mysqldump -u root -p --all-Databases>   book_manage.dump   

2 

このデータファイルをアップロードします。 Linuxのデータベースに:3は、LinuxのMySQLでは、このデータファイルをインポート(使用szday58あなたはダンプファイル内のデータベースを指定する必要があります)
のmysql -uルート-p <は/ opt / book_manage.dump
 #をか入力するにはMySQLを入力します。データベースの場合は、次のコマンドを使用します: 
source /opt/book_manage.dump

 

5.仮想環境に入り、プロジェクトを実行します

このテストでは、Linux pythonインタープリターを使用してプロジェクトを実行し、実行するプロジェクトに切り替えます(プロジェクトを正常に実行するには、インタープリターのモジュールの問題を解決する必要があることに注意してください)。

127.0.0.1は機能しません。このマシンからのみアクセスできます。全員にアクセスさせたい場合は、0.0.0.0 
python3 manage.py runserver 0.0.0.0:8000を使用する必要があります。

次に、IPプラスポートを介してアクセスできます。このIPが私のクラウドサーバーIPである場合、面接に行くときに、このプロジェクトを面接官に渡して、コンピューターに表示できます。とても魅力的です〜

 

イースターエッグ:問題が発生しました。プロジェクトには10​​.0.0.7:8000でしかアクセスできませんが、公開ウェブサイトはこのようではありません。たとえば、ルフィスクールシティにはドメイン名でアクセスし、解決することもできます。ルフィスクールシティ。アドレスからウェブサイトサーバーのIPにアクセスできますが、デフォルトのポートが80であるため、ポートは追加されていません。

ポートを直接80に変更でき、問題はありませんが、問題は次のとおりです。 

1 Djangoはデフォルトでwsgirefスタンドアロンモジュールを使用してWebインターフェイスを実行しますが、パフォーマンスは比較的低くなります。どうすればよいですか?

uwsgi + django + nginx

2外部サービスを提供するために別のプロジェクトを実行したい場合、どうすればよいですか?サーバーにはポート80が1つしかない、それを解決する方法

nginx + uwsgi + django +スーパーバイザー

 

 




-nginxのインストールと構成を完了しnginx.confの構成方法を理解します-uWSGIコマンドの学習を完了し、uWSGIを使用してナイトプロジェクトを開始し、マルチプロセスをサポートします-nginx

を完了してブック管理プロジェクトの静的ファイルを処理します

-最終的な効果

は、nginx Book管理ページのポート80にアクセスして確認し、静的ファイルページが正常であることを確認してください。

 

おすすめ

転載: blog.csdn.net/qq_45533926/article/details/111808714