1. 程式人生 > 實用技巧 >ubuntu 18.04 搭建flask伺服器(大合集)

ubuntu 18.04 搭建flask伺服器(大合集)

ubuntu 18.04 搭建flask伺服器(大合集)

Ubuntu python flask 伺服器


本次使用的Ubuntu版本為:Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-112-generic x86_64)

本文件基於aliyun伺服器上部署個人站步驟建立,全為個人實操,請參考自己專案使用,因為aliyun伺服器中的Ubuntu映象預設使用的就是阿里源,所以我不需要進行換源操作(推薦換為國內源軟體下載速度快)

因為伺服器上使用的是root賬戶,所以部分命令沒有加sudo許可權也能使用,個人電腦上安裝時,相應命令無法使用時,可以加上 sudo許可權試試

準備:

本次搭建的是flask伺服器環境,需要安裝的元件有Nginx、MySQL、uwsgi、flask
Ubuntu 18.04中自帶的python版本為
Python 2.7.17 (default, Jul 20 2020, 15:37:01)
Python 3.6.9 (default, Jul 17 2020, 12:50:27)
我的專案python3.6就夠用了,所以我不需要對python環境進行改變,如有其它需求,請自行對應修改。

對Ubuntu相關資源升級
1. linux資源升級 sudo apt-get update
2. linux軟體升級 sudo apt-get upgrade

Nginx元件下載安裝

1、Nginx下載並安裝 sudo apt install nginx
2、檢視安裝狀態:sudo systemctl status nginx

3、檢視安裝版本:sudo nginx -v

4、上面結果正確後,瀏覽器訪問你伺服器的地址可得到下面結果(預設情況下,阿里雲的80埠是開啟的,如果是本地的話還可能需要配置埠以及防火牆,請自行操作,本地地址http://127.0.0.1:80)

MySQL下載安裝

1、MySQL下載安裝:sudo apt-get install mysql-server

2、配置MySQL,初始化:sudo mysql_secure_installation


1)驗證密碼外掛可以用來測試密碼提高安全性。它檢查密碼的強度只允許使用者設定足夠安全。是否要設定驗證密碼外掛?

我選的 N (因為我是個人站,學習使用)
2)然後輸入密碼,第二次再次輸入確認,這個密碼就是MySQL資料庫的root賬號密碼

3)預設情況下,MySQL安裝有一個匿名使用者,允許任何人登入MySQL而不必為他們建立的使用者帳戶。這只是為了測試,並使安裝變得更加順利。您應該在進入生產之前刪除它們環境。

我選的 N
4)通常,只允許根使用者從“本地主機”。這確保了有人不能猜到來自網路的根密碼。

我選的 Y
5)預設情況下,MySQL附帶一個名為“test”的資料庫任何人都可以訪問。這也僅用於測試,在投入生產前應將其移除環境。

我選的 Y
6)重新載入特權表將確保所有更改到目前為止,將立即生效。

我選的 Y

3、檢查服務狀態 systemctl status mysql.service ,出現以下結果及說明正常。

4、配置遠端訪問(僅本地使用即可不管)
1)首先使用root使用者登入MySQL sudo mysql -uroot -p,回車後輸入密碼

2)GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "password";
\*.*:代表可以訪問所有資料庫和表
root:代表遠端登入的使用者名稱為root
"%":代表任何ip地址都可訪問,預設為本地localhost
"password":代表遠端訪問root使用者的密碼是password
成功後會輸出如下字樣:Query OK, 0 rows affected, 1 warning (0.00 sec)
成功後使用exit; 退出資料庫命令列

例項:
1 建立資料庫weixx
CREATE DATABASE weixx;
2 建立使用者wxx(密碼654321) 並允許wxx使用者可以從任意機器上登入mysql的weixx資料庫
GRANT ALL PRIVILEGES ON weixx.* TO wxx@"%" IDENTIFIED BY "654321";

5、編輯mysql配置檔案vi /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address= 127.0.0.1注掉。
或者在bind-address後面增加遠端訪問IP地址
bind-address=127.0.0.1 114.196.197.1(允許多個IP可訪問mysql伺服器,空格隔開)
我是簡單粗暴直接註釋掉

6、重啟MySQL服務 service mysql restart ,重啟後systemctl status mysql.service檢查服務狀態是否為runing,是則正確。

flask 環境安裝配置

flask可以安裝在虛擬環境中,也可全域性安裝

1、全域性安裝 pip3 install Flask ,flask後面可跟版本號,不加版本號預設安裝資源路徑最新版, (aliyun的Ubuntu中pip預設指向的是python2,我需要用python3,所以使用pip3,如果你預設pip指向為python3則使用pip即可)

使用python -m Flask --version命令驗證安裝,該命令將列印 Flask 版本.

我使用的是 python3 -m flask --version 命令,本教程記錄時flask最新版為1.1.2
Python 3.6.9
Flask 1.1.2
Werkzeug 1.0.1

2、虛擬環境中安裝。
1)安裝虛擬模組 sudo apt-get install python3-venv.
對於使用python2的來說,那麼 venv 模組無法使用。相應的,必須安裝 virtualenv.
virtualenv 通過作業系統的包管理器安裝:
sudo apt-get install python-virtualenv
2)在任何安全位置建立一個你的專案資料夾,用於存放你的專案和虛擬環境,如myproject。然後進入myproject.
使用python3 -m venv venv建立一個環境.建立完成後myproject裡面會多一個venv資料夾
3)啟用相應的虛擬環境:
. venv/bin/activate,也可以使用source venv/bin/activate啟用

啟用後,你的終端提示符會顯示虛擬環境的名稱venv
4)啟用後,在虛擬環境中可使用pip安裝flask: pip install Flask
使用命令 pip 而不是 pip3 、 python 而不是 python3。
(不過我在實際使用中,專案後面安裝元件的時候有時使用python安裝不上,而使用python3反而安裝上了,請自己結合實際使用)
5)使用python -m flask --version驗證安裝

到此flask就安裝完成了。接著就開始在你的專案中寫程式碼吧

3、停用虛擬環境
完成工作後,通過鍵入 deactivate 來停用環境,你將返回正常的 shell。

flask 專案部署

首先將你的完整專案上傳到伺服器上,上傳的方法有許多,自行上傳
我使用的是git方式: git在Ubuntu 18.04上安裝方法

專案上傳到伺服器上後,安裝缺少的元件
在本地生成requirements.txt檔案
pip freeze > requirements.txt
然後在伺服器虛擬環境中安裝requirements.txt依賴
pip install -r requirements.txt

所有依賴安裝完成後使用python執行專案,如果能成功則進入下一步,否則解決所有錯誤。
專案除錯完畢後,進行專案部署

uwsgi 安裝

1、使用命令 pip3 install uwsgi 安裝uwsgi
2、在專案更目錄下新建一個ini檔案 vi uwsgi_conf.ini
檔案內容參考如下:

我的小站還在建設中,所以本文持續更新……