部署Flask項目到騰訊雲伺服器CentOS7

来源:https://www.cnblogs.com/noKing/archive/2017/12/30/8149817.html
-Advertisement-
Play Games

部署Flask項目到騰訊雲伺服器CentOS7 安裝git 安裝依賴包 支持SSL傳輸協議 解壓功能 C語言解析XML文檔的 安裝gdbm資料庫 實現自動補全功能 sqlite資料庫: 安裝python3.6 下載python 創建目錄 下載編譯python的c和c++: 配置: 編譯: 備份(重命 ...


部署Flask項目到騰訊雲伺服器CentOS7

安裝git

yum install git

安裝依賴包 支持SSL傳輸協議 解壓功能 C語言解析XML文檔的 安裝gdbm資料庫 實現自動補全功能 sqlite資料庫:

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

安裝python3.6

下載python

wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz

ls

tar -zxvf Python-3.6.4.tgz

ls

創建目錄

sudo mkdir /usr/local/python3

下載編譯python的c和c++:

yum install gcc gcc-c++

yum install -y openssl openssl-devel openssl-static

yum groupinstall -y "Development tools"

配置:

sudo Python-3.6.4/configure --prefix=/usr/local/python3

編譯:

sudo make

sudo make install

備份(重命名):

sudo mv python python.bak

軟連接,以後就可以用python3命令來啟動python3了:

sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3

修改原來2.7的配置

sudo vi /usr/bin/yum

回車後第一行的#!/usr/bin/python 改為#!/usr/bin/python2.7 然後esc,shift+: wq退出

從此以後在linux終端,輸入python2即可進入2.7,輸入python3即可進入python3

安裝pip

下載pip

wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9

解壓:

tar zxf pip-9.0.1.tar.gz

安裝pip:

cd pip-9.0.1
python3 setup.py install

回到用戶目錄:

cd ~

安裝ipython

pip install ipython

發現pip不好使,先找到pip在哪:

find / -name pip

再做個軟鏈接

ln -sv /usr/local/python3/bin/pip /usr/bin/pip

輸入pip試試:

pip

然後再安裝ipython:

pip install ipython

安裝完後看看ipython好不好使:

ipython

發現不好使...,看看ipython在什麼地方

find / -name ipython

然後做一個軟鏈接

ln -sv /usr/local/python3/bin/ipython /usr/bin/ipython

然後輸入ipython試試,就好使了

ipython

進入ipython後,先來個hello world

print('hello world')

怎麼退出呢?

exit()

ipython不僅可以輸入python語句,還可以執行linux語句,你可以試試輸入pwd來查看當前文件路徑

pwd

 

準備連接github:生成ssh key

cd ~
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub

在github上設置ssh key

網頁上登陸github.com
登陸成功後進入https://github.com/settings/keys
然後點擊‘添加一個新的SSH KEY’
第一行名字隨便起,下麵填入剛纔cat ~/.ssh/id_rsa.pub後看到的內容。
我的是:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQBBAAABAQDLCGcX88+BTuWIIR/wKD2D91/mc1KRL6ErfVl2N5y5ql4eeIPpx89Jx/P1S0Nc1SsQEHEpBPyXcn85yKqkcJLqRAQQnthyARsrfCTIKZzuuPbefk/W12ujv4Lr57CNe+AdXvZCQHUBBS29gCOKOxNAYVym1D2qr1pFXaGoJy8L5PFkTKv5CmNvmhkrEyAsmLoOE7Kin2zIho5FIA/q0UcDTFd9Zv2GM9vSUdprHWtdpDlMPNCao/J9amTpYct27H5YLTSVoVMFhxYrbYx4a9ujVOdBfYSqcif1A2iKbodcam+y0yS5haPVQoNSL1434u8gKvS20j1NhlzqpNZttzyj root@VM_74_238_centos

要直接複製,不要自己修改。

網頁上github進入到自己的某個項目,然後右邊綠色按鈕‘Clone or download’,點擊後會彈出一個框,這個框的右上邊有藍色小字‘Use SSH’,點擊它。然後出現一個鏈接,複製。

在linux終端輸入:

git clone [email protected]:GoldArowana/flask_recommend.git

ls查看一下,已經下載成功

安裝mysql

cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar

解壓:

tar -xvf mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar

先刪掉自帶的mariadb

yum remove mysql-libs

按一下順序安裝,因為有依賴關係。

rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm
yum install libnuma*
rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm

不裝devel的話,python的mysqlclient第三方庫裝不上

rpm -ivh mysql-community-devel-5.7.20-1.el7.x86_64.rpm

裝server前要裝libnuma,不然會報錯
error: Failed dependencies:
libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.20-1.el7.x86_64
libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-5.7.20-1.el7.x86_64
libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-5.7.20-1.el7.x86_64

初始化資料庫

mysqld --initialize

查看隨機密碼,最末尾冒號後面那個就是了

grep 'temporary password' /var/log/mysqld.log

2017-12-30T04:47:32.874673Z 1 [Note] A temporary password is generated for root@localhost: y20O-hwt.Bg<

更改mysql資料庫目錄的所屬用戶及其所屬組

chown mysql:mysql /var/lib/mysql -R

啟動mysql資料庫

systemctl start mysqld.service

#CentOS 6中用這句話啟動mysql伺服器

service mysqld start

登陸資料庫

mysql -uroot -p'y20O-hwt.Bg<'

改密碼:

set password=password('123456');

退出資料庫

exit

重新進去

mysql -u root -p'123456'

創建一個recommend資料庫,因為我項目用到了。

create database recommend;

部署Flask

先不急著運行...先把python第三方庫裝上。。。

pip install flask
pip install flask-sqlalchemy
pip install flask-script
pip install ConfigParser
pip install --upgrade setuptools
pip install mysqlclient

進入到項目

cd flask_recommend

用flask-script寫的腳本來建資料庫表
我的是:

python manage.py run_test

報了這個異常:
SyntaxError: Non-ASCII character '\xe9' in file manage.py on line 3,

解決辦法:
第一行加這句註釋

# -*- coding: UTF-8 -*- 

或者把idea生成的頭模板刪掉@author:username什麼的

開始啟動

python3 runserver.py

註意runserver里是這樣的

app.run(host='0.0.0.0', port=80, threaded=True)

查看進程和埠

用xshell新開一個會話,連接到同一個伺服器。

netstat -anp|grep 80 

可以查到80埠的占用情況
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17628/python3

ps -aux

查看所有進程,其中就有runserver
root 17628 0.0 3.5 689808 36556 pts/1 S+ 13:15 0:00 python3 runserver.py

 

在後臺運行

nohup python3 runserver.py > python.log3 2>&1 &

  參考https://www.cnblogs.com/master-pokemon/p/5790783.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這次由於項目的需求:什麼定時發送郵件通知,定時篩選取消客戶下單未支付的訂單 重新撿起定時器,在網上翻來找去找到 Quartz.Net老字型大小了並不表示它就真的老了哦 github:https://github.com/quartznet/quartznet 當然介紹的園子里文章很多跟官方文檔https ...
  • DataTable轉List public static List<T> ToListModel<T>(this DataTable table) where T : new() { var type = typeof(T); var properties = type.GetProperties( ...
  • 3day Python基礎語法 1、運算符:算數運算符、比較運算符、賦值運算符、邏輯運算符 A、算數運算符:a=10,b=3 + 加 a+b - 減 a-b * 乘 a*b / 除 a/b %取模 a%b (取餘數) //取整數 a//b (取商的整數部分) **冪 a**b (a的b次方) B、比 ...
  • 1,首先需要在一臺有MacOS系統,在Apple stroe下載MacOS High Sierra安裝程式; 2,準備一個至少8G容量的U盤; 3,打開 “應用程式 → 實用工具 → 磁碟工具”,將U盤「抹掉」(格式化) 成「Mac OS X 擴展(日誌式)」 格式、GUID 分區圖,並將U盤命名為 ...
  • python ./setup.py install --record install.txt cat install.txt | xargs rm -rf ...
  • 硬體:pixhawk 2.4.8 代碼:2017/12/30 PX4 firemare px4fmuv2 MCU: STM32F427VIT6, STN32F103C8T6. 感測器: MPU6000; L3GD20; LSM303D; MS5611, 省略了一個L3GD20焊盤. CAN口用的是M ...
  • fxml文件使用SceneBuilder打開報錯 解決方法:Window-->Preferences-->JavaFX-->browse 路徑是可執行的JavaFX Scene Builder文件,例如:C:\Program Files (x86)\Oracle\JavaFX Scene Build ...
  • 作者 彭東林 QQ 405728433 平臺 Linux-4.10.17 Qemu-2.8 + vexpress-a9 DDR:1GB 參考 Linux 虛擬記憶體和物理記憶體的理解 Linux進程分配記憶體的兩種方式--brk() 和mmap() Linux中的mmap的使用 程式(進程)記憶體分佈 解析 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...