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

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

安裝git

yum install git

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

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

安裝python3.6

下載pythonpython

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

ls

tar -zxvf Python-3.6.4.tgz

ls

建立目錄mysql

sudo mkdir /usr/local/python3

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

yum install gcc gcc-c++

yum install -y openssl openssl-devel openssl-static

yum groupinstall -y "Development tools"

配置:c++

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

編譯:git

sudo make

sudo make install

備份(重命名):github

sudo mv python python.bak

軟鏈接,之後就能夠用python3命令來啓動python3了:sql

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

修改原來2.7的配置shell

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 git@github.com: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 &

  參考http://www.javashuo.com/article/p-rulhihiz-ha.html

相關文章
相關標籤/搜索