Linux服务器部署flask项目,如何在服务器上部署Flask应用——Linux篇

不知不觉又过了一段时间没有更新文章,这次文章的内容是关于如何在Linux上部署Flask应用,网上比较多的教程是关于nginx+gunicorn,所以我就不重复这个了,留下网上教程的链接,如果想按这种方式部署的请自行查看。

flask+nginx+gunicorn部署教程:

http://www.open-open.com/lib/view/open1423107543014.html

我这边部署的方案跟windows是一样的,都是采用apache+mod_wsgi(有必要的话可以加一层nginx做静态文件的转发)。

Linux使用的版本是centos7。

# linux服务器下部署flask应用 (用yum安装)

1、安装apache

# yum install -y httpd-devel

等待apache安装完成,设置apache开机启动并启动apache服务

# chkconfig httpd on

# apachectl start

开启防火墙的80端口并重启防火墙

# firewall-cmd --zone=public --add-port=80/tcp --permanent

# firewall-cmd --reload

64833d8cb27212d379d017b2dca8d152.png

通过浏览器访问可以看到以下界面证明apache服务安装并且启动成功

340c683126f95a2cd19f4ebd3b71c1e4.png

2、安装python3(centos7默认安装python2.7)

(1)安装开发工具和解压工具

# yum groupinstall -y "Development tools"

# yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline

# yum install -y tar

(2)安装python3

# curl -O https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tgz

# tar -xvzf Python-3.4.1.tgz

# cd /usr/local/src/Python-3.4.1

# ./configure --enable-shared --prefix=/usr/local LDFLAGS="-Wl,-rpath /usr/local/lib"

# make

# make altinstall

注:记得要设置enable-shared,否则在使用mod_wsgi的时候会报错

python3安装完成后,由于centos7原本是使用python2的,yum install也是基于python2的,所以在替换python3的时候要修改一些文件和创建一些软连接

# mv /usr/bin/python /usr/bin/python2.7.5

# ln -s /usr/local/bin/python3.4 /usr/bin/python

修改yum文件

# vi /usr/bin/yum

将yum中的python替换成python2.7.5

创建pip的软连接

# ln -s /usr/local/bin/pip3 /usr/bin/pip

之后就要用pip安装一些你需要的包了。

3、安装数据库

centos7默认的数据库是mariadb,链接方式和mysql一样,都可以用mysqlclient包去链接,这次数据库我选择了postgresql(9.4版本)

# yum update

# yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm

# yum install postgresql94-server postgresql94-contrib

在执行这一句的时候会报错,这个时候要修改/usr/libexec/urlgrabber-ext-down文件,将其的python替换为python2.7.5,即

# vi /usr/libexec/urlgrabber-ext-down

将python修改为python2.7.5

初始化数据库

# /usr/pgsql-9.4/bin/postgresql94-setup initdb

启动数据库服务并且设定为开机启动

# systemctl enable postgresql-9.4.service

# systemctl start postgresql-9.4.service

开启防火墙5432端口

# firewall-cmd --zone=public --add-port=5432/tcp --permanent

# firewall-cmd --reload

切换到数据用户

# su - postgres

键入命令psql

如果看到版本号证明安装成功

5c8345aa36645bf83453ce318b967216.png

接下来设置原默认用户postgres的密码

# \password postgres

50e7268b379f385d7d1c4be8c3b65add.png

接下来创建一个超级用户,\q退出postgresql的shell,

键入createuser -P -s -U postgres root创建一个root用户(用于flask连接数据库)

修改认证方式

vi /var/lib/pgsql/9.4/data/pg_hba.conf

修改认证方式

vi /var/lib/pgsql/9.4/data/pg_hba.conf

4、配置apache

# pip install mod_wsgi

# mod_wsgi-express install-module

# pip install mod_wsgi

# mod_wsgi-express install-module

配置文件跟windows的差不多,修改下路径就行了,这里我就不多讲。

5、修改整个项目文件的权限(不修改权限的话之后可能会报各种错误)

# mod -R 777 你的项目文件

6、.wsgi文件

#!/usr/bin/python

# -*- coding: utf-8 -*-

import sys

import os

# 项目文件路径

sys.path.append('/usr/www')

# 引用包路径

sys.path.append('/usr/www/venv/lib/python3.4/site-packages')

from manage import app as application

7、最终配置完重启下apache服务就可以啦!

因为作者没时间所以这次文章没有相关的源码,部署过程有问题的朋友可以在后台联系我。

本文属原创文章,未经允许请勿转发。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值