ライブラリ管理システムプロジェクトを展開する
展開の準備
次のソフトウェアを使用して、書籍管理プロジェクトを展開します
- 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にアクセスして確認し、静的ファイルページが正常であることを確認してください。