阿里雲服務器部署flask+gunicorn項目

1.前言:

  • 服務器

  • 阿里雲的輕量應用服務器,系統是Centos 7.3.

  • 使用的相關軟件是: powershell

在這裏插入圖片描述
1.如果要用軟件遠程連接到阿里雲的服務器,需要先在阿里雲的控制檯,爲服務器重置一個密碼。
2.遠程連接服務器,輸入密碼的時候是不會顯示的。
輸入完成後直接回車就行了。
3.最好了解一些最基本Linux的命令 例如

cd,pwd,kill,ls, mkdir...

2.安裝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

如果速度不夠快,可以直接去官網下載,利用WinSCP等軟件傳到服務器上指定位置,我的存放目錄是/usr/local/python3,使用命令:
其他版本地址https://www.python.org/ftp/python/
建立一個空文件夾:

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的時候都要記得進去虛擬環境後再操作。

3. 安裝virtualenv

pip  install virtualenv

建立python3獨立環境
virtualenv  -p /usr/local/python3/bin/python3.6 /py3env

進去python3獨立環境
source /py3Env/bin/activate

成功進入獨立環境後是這樣的。
在這裏插入圖片描述
最後 我們再輸入:

python -V

到此爲止 python3的安裝以及獨立環境的安裝完成了

4.搭建LNMP環境(Mysql,Nginx,Php)

1. 關閉防火牆和selinux
打開文件selinux

vim  /etc/sysconfig/selinux

將文件中SELINUX=enforcing改爲disabled,然後執行”setenforce 0″不用重啓地關閉selinux。

SELINUX=disabled

關閉放火牆

systemctl stop firewalld.service

2.安裝軟件
2.1.MYSQL安裝
下載mysql的repo源

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

安裝mysql-community-release-el7-5.noarch.rpm包

rpm -ivh mysql-community-release-el7-5.noarch.rpm

安裝MYSQL
wget命令的下載地址可能會失效,自行去官網找要下載的包的地址
mysql官網:http://dev.mysql.com/

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

​ 重啓服務:

systemctl restart mysql.service

登錄,並修改密碼:

mysql -u root
mysql > use mysql;
mysql > update user set password=password('123456') where user='root';
mysql > flush privileges;
mysql > exit;

123456就是mysql的密碼
這個密碼隨便設置,別忘記了就好,(忘記了挺麻煩的)
4.安裝git
可以選擇 github 或者Bitbucket,當然你也可以自己搭建 git服務器,但我覺得沒啥必要,我選擇Bitbucket,主要是因爲它私有庫免費

sudo yum install git

後續就跟我們本地開發沒什麼區別了,配置 ssh key,clone代碼,就不展開了,項目目錄建議放在 /home/www/ 下
5.上傳flask項目文件至服務器
拷貝本地代碼到遠程

scp -r 本地文件路徑 [email protected]:遠程保存路徑

note:單文件,如。.txt文件,直接路勁即可,去掉-r

6.安裝Python包

cd /usr/local/python3/bin

yum install mysql-devel gcc gcc-devel python-devel

pip install -r requirements.txt

note:生成requirements.txt文件

pip freeze > requirements.txt

7.調試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了。

5.安裝 gunicorn

pip install gunicorn

6.運行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個進程就好了

kill -9 進程號

如果重新連接服務器,記得要進入獨立環境後再操作!

source /py3Env/bin/activate

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章