CentOS7 部署 Flask

1. 添加一個用戶

[root@localhost ~]# cat /etc/redhat-release # 查看linux版本
CentOS Linux release 7.7.1908 (Core)

[root@localhost ~]# adduser flask # 添加用戶
[root@localhost ~]# passwd flask # 設(shè)置密碼

[root@localhost ~]# gpasswd -a flask wheel # 將flask加入wheel組
[root@localhost ~]# sudo -iu flask # 切換到flask用戶

2. 初始化環(huán)境

sudo yum install epel-release # 初始化倉庫
sudo yum install gcc nginx # 安裝gcc和nginx

3. 安裝anaconda

下載地址:https://www.anaconda.com/products/individual

wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh # 下載anaconda
sh Anaconda3-2020.02-Linux-x86_64.sh # 安裝anaconda

按默認設(shè)置安裝即可,可以簡單歸納就是“yes 回車 yes”!

4. 創(chuàng)建python虛擬環(huán)境

source anaconda3/bin/activate # 激活anaconda
pip install virtualenv # 安裝virtualenv
mkdir ~/myweb # 創(chuàng)建目錄
cd ~/myweb
virtualenv myweb # 創(chuàng)建虛擬環(huán)境目錄
source myweb/bin/activate # 激活新建的虛擬環(huán)境

5. 安裝flask和配置uwsgi

pip install uwsgi flask # 安裝flask和uwsgi
sudo firewall-cmd --permanent --add-port=5000/tcp # 打開防火墻端口,請根據(jù)實際打開相應(yīng)端口
sudo firewall-cmd --reload # 應(yīng)用防火墻設(shè)置

將flask項目復制到myweb目錄中,先執(zhí)行 python manage.py runserver 測試是否可以正常運行,之后在項目目錄(myweb)下建立uwsgi配置文件(myweb.ini),并粘貼以下內(nèi)容。

vi myweb.ini

[uwsgi]
master=true

#uwsgi啟動時,所使用的地址和端口(這個是http協(xié)議的)
http=0.0.0.0:5000

#指向網(wǎng)站目錄
chdir=/data/www/myweb

#python 啟動程序文件
wsgi-file=manage.py

#python 程序內(nèi)用以啟動的application 變量名
callable=app

#處理器數(shù)
processes=2

#線程數(shù)
threads=50

#日志
logto=/data/www/myweb/myweb.log

#PID文件
pidfile=/data/www/myweb/myweb.pid

設(shè)置完成后回到命令行,使用以下命令啟動一個uwsgi服務(wù)器

uwsgi --ini myweb.ini

6. 創(chuàng)建自啟動Systemd配置

sudo vi /etc/systemd/system/myweb.service

輸入下面內(nèi)容

[Unit]
Description=uWSGI instance to serve Myweb
After=network.target

[Service]
User=flask
WorkingDirectory=/data/www/myweb
Environment="PATH=/data/www/myweb/bin"
ExecStart=/data/www/myweb/bin/uwsgi --ini /data/www/myweb/myweb.ini
Restart=always
Type=notify
NotifyAccess=all
StandardError=syslog
KillSignal=SIGQUIT

[Install]
WantedBy=multi-user.target

sudo systemctl start myweb.service # 啟動服務(wù)
sudo systemctl enable myweb.service # 開機自啟動

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容