部署圖書管理系統項目

 

部署圖書管理系統項目

 

 

部署準備

部署圖書管理項目你將使用如下軟件html

  • nginx
  • uWSGI
  • CentOS7
  • 部署圖書管理項目文件
  • virtualenv
  • supervisor

WSGI、uWSGI

python web服務器開發使用WSGI協議(Web Server Gateway Interface)python

python web項目默認會生成一個wsgi.py文件,肯定好應用模塊。mysql

生產環境中使用的是uWSGI,實現了WSGI全部接口,C語言編寫,效率很高的web服務器。linux

uWSGI是一個全功能的HTTP服務器,實現了WSGI協議、uwsgi協議、http協議等。它要作的就是把HTTP協議轉化成語言支持的網絡協議。好比把HTTP協議轉化成WSGI協議,讓Python能夠直接使用。nginx

Nginx

使用nginx是爲了它的反向代理功能,項目會經過Django+uWSGI+Nginx進行服務器線上部署。web

CentOS

1.打包項目CRM文件夾,壓縮文件面試

2.經過xftp、scp、lrzsz等上傳文件至Centos服務器sql

Linux使用技巧

1.經過xshell或者iTerm等軟件,多終端操做你的linxu,這樣對uwsgi、nginx、項目代碼調試的時候,避免來回切換目錄,提供工做效率。shell

2.注意修改了linux軟件的配置文件,都要重啓服務才能生效。數據庫

Virtualenv

構建一個乾淨,隔離的python解釋器環境,防止軟件依賴,衝突等問題,建議使用。

Supervisor

Supervisor(http://supervisord.org/)是用Python開發的一個client/server服務,是Linux/Unix系統下的一個進程管理工具,不支持Windows系統。它能夠很方便的監聽、啓動、中止、重啓一個或多個進程。用Supervisor管理的進程,當一個進程意外被殺死,supervisort監聽到進程死後,會自動將它從新拉起,很方便的作到進程自動恢復的功能,再也不須要本身寫shell腳原本控制。

 

開始部署

一、熟悉linux操做

linux基本命令操做, 省略.....

 

二、python3解釋器的安裝

參考博客: https://www.cnblogs.com/tiger666/articles/10312522.html

 

三、virtualenvwrapper工具的配置,解決虛擬環境問題

# 確認~/.bashrc配置文件裏面的virtualenvwrapper配置
WORKON_HOME=~/Envs
VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3
source /opt/python36/bin/virtualenvwrapper.sh

# 新建並激活一個虛擬環境,用於圖書管理系統項目
mkvirtualenv book_manage_env

 

四、安裝配置MariaDB數據庫,且建立數據庫數據,遷移導入圖書管理系統的數據

(1) 安裝並啓動MariaDB數據庫

在CentOS7下,MariaDB就是mysql數據庫,只是包名的不一樣

# 使用yum下載並安裝mariadb
yum install MariaDB-server MariaDB-client -y

#啓動mariadb服務端
systemctl start mysql

(2) 鏈接並受權root用戶遠程訪問

# 使用客戶端去連接mysql服務端
mysql -uroot -p 在linux上登錄mariadb

# 注意1, linux的數據庫,須要對root用戶設置遠程連接的權限, 密碼是qishi3q
grant all privileges on *.* to root@'%' identified by 'qishi3q';
# 受權全部的權限,在全部庫,全部表  對  root用戶在全部的主機上, 設置權限密碼是qishi3q
#刷新受權表
flush privileges;

注意2, linux的防火牆和selinux要關閉,不然windows去連接linux的3306端口可能被拒絕

(3) 導入圖書管理項目的數據

 

在linux服務端,mysql,導入圖書管理系統的數據

# 1.mysql數據的導出,與導入
這個命令是在linux/windows中敲的
mysqldump -u root -p --all-databases >  book_manage.dump  

# 2.上傳這個數據文件到linux數據庫中

# 3.在linux的mysql,導入這個數據文件(須要在dump文件中指定數據庫: use szday58)
mysql -u root -p < /opt/book_manage.dump
# 或者進入mysql中 進入數據庫,使用命令:
source /opt/book_manage.dump

 

五、進入虛擬環境並運行項目

測試使用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運行web界面默認用的是wsgiref單機模塊,性能會比較低, 須要怎麼解決?

uwsgi + django + nginx

2  咱們要想再跑一個項目對外提供服務,該怎麼辦呢? 服務器只有一個80端口, 如何解決

nginx + uwsgi + django + supervisor

 

 

-完成nginx的安裝配置,瞭解nginx.conf如何配置 -完成uWSGI命令學習,使用uWSGI啓動knight項目,支持多進程 -完成nginx處理圖書管理項目的靜態文件 -最終效果 訪問nginx的80端口,便可找到圖書管理頁面,且保證靜態文件頁面正常

相關文章
相關標籤/搜索