Centos下搭建flask項目(環境部署)

參考文章:www.jianshu.com/p/f1acbd401…python

1.安裝python

1)下載 python 3.6.1mysql

wget https://www.Python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
複製代碼

2) 解壓nginx

tar xJf  Python-3.6.1.tar.xz
複製代碼

3) 進入 python-3.6.1 目錄c++

cd  Python-3.6.1
複製代碼

4)安裝sql

./configure  --prefix=/usr/local/python3 && make && make install
複製代碼

若是安裝失敗須要先執行:shell

sudo yum install gcc-c++

複製代碼

若是報:zipimport.ZipImportError: can't decompress data; zlib not available數據庫

執行:yum -y install zlib*flask

5)建立python3軟連接bash

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

sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
複製代碼

通常安裝python3後pip3會一塊兒安裝了,(pip3 -V查看是否安裝)若是沒有安裝pip3服務器

參考:blog.csdn.net/qq_25046261…

2.虛擬環境

1)安裝虛擬環境

pip3 install virtualenv -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
複製代碼

2)建立Python的虛擬環境

在指定目錄下執行則安裝在該目錄下(好比能夠在py36venv下,先mkdir py36venv)

/usr/local/python3/bin/virtualenv  -p /usr/bin/python3 venv
複製代碼

3)激活虛擬環境(虛擬環境目錄下執行,如py36venv下)

source venv/bin/activate
複製代碼

4)關閉環境:

deactivate
複製代碼

3.requirements.txt的生成和安裝

首先在項目的虛擬環境生成requirements.txt,進入虛擬環境:

pip freeze>requirements.txt
複製代碼

服務器端進入虛擬環境,執行安裝

pip install -r requirements.txt
複製代碼

4.安裝MySQL

wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'

sudo rpm -Uvh mysql57-community-release-el7-11.noarch.rpm

yum repolist all | grep mysql

sudo yum install mysql-community-server
複製代碼

啓動mysql服務

sudo service mysqld start

sudo systemctl start mysqld

sudo systemctl status mysqld
複製代碼

查看系統默認的root密碼

grep "temporary password" /var/log/mysqld.log
複製代碼

mysql -u root -p輸入密碼後進入MySQL修改默認密碼:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'(密碼改爲了root)
複製代碼

修改密碼會提示校驗不經過先執行:set global validate_password_policy=0;

PS:注意本地安裝Navicat鏈接遠程服務器的時候,會被拒絕這時須要在服務器端運行受權:

grant all privileges on *.*  to  'root'@'%' identified by 'root';

flush privileges;
複製代碼

5.安裝nginx

安裝依賴包:

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel```

wget http://nginx.org/download/nginx-1.10.2.tar.gz

tar -zxvf nginx-1.10.2.tar.gz

cd nginx-1.10.2

./configure --prefix=/usr/local/nginxmake && make install

whereis nginx

/usr/local/nginx/sbin/nginx
複製代碼

修改NGINX配置文件:

cd /etc/nginx

vi nginx.conf

#location增長uwsgi的配置

   location / {

            include uwsgi_params;

            uwsgi_pass 127.0.0.1:8080;

        }


複製代碼

6.安裝uwsgi

虛擬環境下安裝uwsgi:pip install uwsgi

找一個文件夾下建立一個配置文件config.ini

[uwsgi]

# uwsgi 啓動時所使用的地址與端口

socket = 127.0.0.1:8080

# 指向網站目錄

chdir=/root/www/flask_idiom

# python 啓動程序文件

wsgi-file = manage.py

# python 程序內用以啓動的 application 變量名

callable = app

# 處理器數

processes = 4

# 線程數

threads = 2

buffer-size = 32768

#狀態檢測地址

stats = 127.0.0.1:9090
複製代碼

PS:socket地址和nginx處一致端口也要一致

啓動直接:uwsgi config.ini

7. 項目部署:

項目地址:/root/www/flask_idiom

虛擬環境地址:/root/py36venv/venv

uwsgi配置地址:/root/www/flask_idiom

1)激活虛擬環境:[root@instance-9bor86dn venv]# source bin/activate

2)虛擬環境下進入到項目地址:初始化數據庫

export FALSK_APP=manage.py

flask db init

flask db migrate

flask db upgrade
複製代碼

3)運行爬蟲腳本初始化數據到數據庫

mysql -u root -p

#建立數據庫
create database bss_demo charset utf8;
複製代碼

4)運行項目:uwsgi config.ini

查看進程:ps -aux|grep uwsgi

kill -9 進程號中止服務

Tip:uwsgi是直接在前臺啓動的,當咱們的鏈接終端跟服務器斷開的時候uwsgi進程也被關閉了,因此咱們須要uwsgi在後臺運行。 後臺啓動項目用nohup啓動:不掛斷運行命令,用"&"可讓你的命令在後臺執行(注意:別漏了&號。)

nohup uwsgi config.ini &
複製代碼

8.安裝Supervisor(監控進程)

參考:www.jianshu.com/p/ac6c84a2f…

Supervisor(supervisord.org/) 是用Python開發的一個client/server服務,是Linux/Unix系統下的一個進程管理工具。

它能夠很方便的監聽、啓動、中止、重啓一個或多個進程。用Supervisor管理的進程,當一個進程意外被殺死,supervisort監聽到進程死後,會自動將它從新拉起,很方便的作到進程自動恢復的功能,再也不須要本身寫shell腳原本控制。

pip install supervisor
#修改supervisor的配置文件

複製代碼
相關文章
相關標籤/搜索