Ubuntu18.04 Apache2部署Flask应用

2 篇文章 0 订阅
1 篇文章 0 订阅

使用Apache2部署

以下指令,如非root用户,操作时记得加 sudo
本文项目路径为:/var/www/foundation下

我的Flask项目结构
- static 	--> html静态页面
- views 	--> pthon代码
- main.py   --> python flask入口文件
//以上为项目文件,项目目录下还需要新建foundation.wsgi,下文将会介绍到,部署时候需要配置下
- foundation.wsgi -->wsgi(Web Server Gateway Interface)

一、安装必要的依赖,修改配置

1、安装python3和apache,以及一些相关组件:
apt-get update
apt-get install python3-dev python3-pip apache2 apache2-dev libapache2-mod-wsgi-py3
2、安装 virtualenv
apt-get install virtualenv
3、建立虚拟环境

usr/bin/python3.6 这是python 3.6软连接的地址
envPython3.6 是即将新建python虚拟环境文件夹名称
这句话的意思是,在python3.6版本下,在当前目录新建envPython3.6虚拟环境

此处python版本,依照个人机器的python3版本来,我的是Python3.6

virtualenv -p /usr/bin/python3.6 envPython3.6

开启虚拟环境

cd  envPython3.6
source /bin/activate
4、在此虚拟环境下,安装要部署项目的依赖,我的是:
pip install flask flask_cors pymysql
5、建立apache 配置文件:

在项目根目录下新建foundation.wsgi

import sys 
import logging 
logging.basicConfig(stream=sys.stderr)
# 添加项目运行虚拟环境,把第三步执行的虚拟环境地址放入以下
sys.path.append("/home/envPython3.6/lib/python3.6/site-packages")
# 添加项目
sys.path.insert(0,"/var/www/foundation/")
# 添加app,这里main是我flask的入口文件,app是flask的程序名称:app = Flask(__name__)
from main import app as application

6、建立apache 配置文件:

这里新建的.conf文件名称自己定义,符合自己的就可以,我这里需求定义foundation.conf

vim /etc/apache2/sites-available/foundation.conf
<VirtualHost *:80>
    #如果有域名,可以配置域名;没有域名,可以配置ip
    #ServerName  your ip like 127.0.0.1
    ServerName  www.baidu.com
    #管理员联系方式
    ServerAdmin contact@youremail.com
    # 配置wsgi脚本路径  在使用Flask创建的项目目录下面
    WSGIScriptAlias /  /var/www/foundation/foundation.wsgi
    <Directory /var/www/foundation/>
             Order allow,deny
             Allow from all      
    </Directory>
   	# 配置错误日志输出
    ErrorLog /var/www/foundation/foundation-error.log  
    # 配置日志输出等级
    LogLevel warn
    # 配置成功日志输出
    CustomLog /var/www/foundation/foundation-access.log combined  
</VirtualHost>

7、将新建的.conf指定给apache2,将默认的实效,重启apache2

添加app:

a2ensite foundation.conf

使默认页失效:

a2dissite 000-default.conf

重启apache2

/etc/init.d/apache2 restart
8、浏览器验证是否成功

输入第6步配置的ip验证是否成功

阿里云的朋友注意,本文的端口是80端口,如您需要切换其他端口,且在验证第8步的时候不成功,请查看ubuntu ECS安全组配置 端口是否开放。

欢迎交流!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值