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 # 開機自啟動