網絡上關於flask部署Centos的教程有挺多,不過也很雜亂。
在我第一次將flask上傳到centos服務器中遇到了不少問題,也費了挺大的勁。
在參考了一些教程,並綜合了幾個教程之后才將flask項目部署好。
所以我想把這一過程記錄詳細地下來,也方便零基礎新手們參考。
一般來說,將本文的全部過程執行下來,就可以成功地部署好flask了。
我入手的服務器是
阿里雲的輕量應用服務器,系統是Centos 7.3.
使用的相關軟件是
PuTTY(用於遠程連接到服務器),
PSFTP(用於將本地文件上傳至服務器),
Navicat for Mysql(數據庫可視化工具)。
有一些小細節。
1.如果要用軟件遠程連接到阿里雲的服務器,需要先在阿里雲的控制台,為服務器重置一個密碼。
2.遠程連接服務器,輸入密碼的時候是不會顯示的。
輸入完成后直接回車就行了。
3.最好了解一些最基本Linux的命令 例如
cd,pwd,kill,ls, mkdir...
1.1安裝Python3.6
首先安裝依賴包
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
然后根據自己需求下載不同版本的Python3,我下載的是Python3.6.2
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
#其他版本地址:https://www.python.org/ftp/python/
如果速度不夠快,可以直接去官網下載,利用WinSCP等軟件傳到服務器上指定位置,我的存放目錄是/usr/local/python3,使用命令:
mkdir /usr/local/python3
建立一個空文件夾
然后解壓壓縮包,進入該目錄,安裝Python3
tar -xvJf Python-3.6.2.tar.xz
cd Python-3.6.2
./configure --prefix=/usr/local/python3
make && make install
安裝完后會提示安裝好了pip等工具.
出現“successfully installed”等字樣。
到此為止,Python3.6已經安裝好了,
由於centos7 中自帶的python的版本是python2.
而現在很多包只支持python3 ,所以我們要安裝虛擬環境,在虛擬環境中的python版本是3.6
然后我們要安裝virtualenv(python環境隔離工具)。
之后我們的flask的部署以及python包的下載都要在這個虛擬環境中進行!
每次重新遠程連接centos的時候都要記得進去虛擬環境后再操作。
1.2 安裝virtualenv
pip install virtualenv
建立python3獨立環境
virtualenv -p /usr/local/python3/bin/python3.6 /py3env
進去python3獨立環境
source /py3env/bin/activate
成功進入獨立環境后是這樣的。
最后 我們再輸入
python -V
來驗證一下python的版本
到此為止 python3的安裝以及獨立環境的安裝完成了
參考鏈接:
1.https://blog.csdn.net/jon_me/article/details/49618619
2.http://www.cnblogs.com/mqxs/p/8692870.html
2.搭建LNMP環境(Mysql,Nginx,Php)
參考:https://blog.csdn.net/wszll_alex/article/details/76285324
我只執行了這個博主的文章中的
2.安裝軟件
5.啟動服務
就行了
有一個注意的地方,這個博主的文章中有一個錯誤的地方,
在安裝Mysql時,
mysql > update user set password=password(‘123456‘) where user=‘root‘;
這個語句是錯誤的
應該是
mysql > update user set password=password('123456') where user='root';
123456就是mysql的密碼
這個密碼隨便設置,別忘記了就好,(忘記了挺麻煩的)
3.上傳flask項目文件至服務器
X.X.X.X處用服務器的公網ip地址代替
例如我的服務器的公網IP地址是XXX.XX.XX.XXX
open X.X.X.X
然后輸入賬號密碼,就成功的連接到服務器上了。
假如我的flask項目在本地的地址為 C:\Users\73876\blog
我想將這個項目整個上傳至服務器上的 /usr/local/python3/bin/
在FSFTP中輸入
cd /usr/local/python3/bin/ ("cd" 在服務器上的切換文件夾位置) lcd C:\Users\73876\blog
(“lcd” 在本地電腦上的切換文件夾位置)
切換好位置后分別將manage.py
requirements.txt
以及app文件夾上傳
put manage.py
put requirements.txt
put -r app
然后我們進入服務器的文件夾查看這2個文件和1個文件夾是否上傳好
(有點凌亂,沒有事先建立一個文件夾來放flask項目)
4.安裝Python包
cd /usr/local/python3/bin
yum install mysql-devel gcc gcc-devel python-devel
pip install -r requirements.txt
至於如何生成requirements.txt請百度or谷歌
5.調試Mysql腳本文件
在服務器上重新建數據庫,建表,會比較麻煩,而且有時候mysql在本地的電腦上已經存在部分數據。
所以比較快捷的方法就是在本地的數據庫上導出sql腳本文件,然后將這個腳本文件上傳到服務器,運行就好了。
運行之后,整個數據庫就能搬到服務器上了
我是使用Navicat for Mysql來導出sql文件
右鍵blog 轉儲sql文件
得到blog.sql文件后將文件上傳到服務器,如同上述步驟一樣。
假如blog.sql文件的位置是 /usr/local/python3/bin/blog.sql
首先進入mysql
mysql -u root -p
輸入密碼 在Centos下里面的是首先要新建一個和文件相同名字的數據庫。 mysql>create database blog; 然后輸入指令: mysql> use blog; mysql>source /usr/local/python3/bin/blog.sql;
mysql>exit;
然后就OK了。
參考:
https://www.cnblogs.com/walblog/articles/7890442.html
6.安裝 gunicorn
pip install gunicorn
7.運行flask項目
gunicorn -w 3 -b x.x.x.x:8000 manage:app
注意把x.x.x.x替換成內網ip地址
大功告成啦!
外網想要訪問你的flask網站
只要通過公網的IP地址就行了
X.X.X.X:8000
如果要停止這個程序的運行
ps -aux | grep gunicorn
查看進程
然后
kill掉這3個進程就好了
如果重新連接服務器,記得要進入獨立環境后再操作!
source /py3env/bin/activate
以上~