部署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