Linux环境下Flask部署至apache

本文详细介绍了在Linux Mint 18.3系统中,如何将Python Flask应用部署到Apache服务器,包括软件安装(Python 2.7.12、Flask、Apache 2.4.18和mod_wsgi)、配置站点的访问目录、Apache配置文件的创建以及配置的生效步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、系统环境

Linux Mint 18.3 Sylvia
python 2.7.12
apache 2.4.18

二、软件安装

1.python

一般linux会自带python环境,建议使用python2,如果没有安装可以使用如下命令安装python

apt-get install python

2.flask

使用如下命令安装flask

pip install flask

3.apache

使用如下命令安装Apache

apt-get install apache2

4.mod_wsgi

使用如下命令安装mod_wsgi

apt-get install libapache2-mod-wsgi

三、配置站点

1.访问目录

部署一个 Flask 项目在 Linux 环境中通常包括以下几个关键步骤,涉及 Python 环境配置、项目打包、Web 服务器设置以及服务的守护进程管理。 ### 1. 准备 Python 环境 确保 Linux 系统中已安装 Python 和 pip。可以通过以下命令检查: ```bash python3 --version pip3 --version ``` 如果未安装,可使用系统的包管理器安装,例如在 Ubuntu 上: ```bash sudo apt update sudo apt install python3 python3-pip ``` 建议使用虚拟环境来隔离项目的依赖包: ```bash sudo apt install python3-venv python3 -m venv venv source venv/bin/activate ``` ### 2. 安装 Flask 及项目依赖 在虚拟环境中安装 Flask 和项目所需的其他依赖: ```bash pip install flask pip install -r requirements.txt ``` 确保项目根目录下有 `requirements.txt` 文件,它可以通过以下命令生成: ```bash pip freeze > requirements.txt ``` ### 3. 创建 WSGI 入口文件 创建一个 `wsgi.py` 文件作为 WSGI 应用入口: ```python from your_flask_app import app if __name__ == "__main__": app.run() ``` 替换 `your_flask_app` 为实际的 Flask 应用模块名称。 ### 4. 配置 Web 服务器(使用 Apache + mod_wsgi) 安装 Apache 和 `mod_wsgi`: ```bash sudo apt install apache2 libapache2-mod-wsgi-py3 ``` 创建一个新的 Apache 配置文件,例如 `/etc/apache2/sites-available/flask.conf`,并添加以下内容: ```apache <VirtualHost *:80> ServerName your_domain_or_ip WSGIDaemonProcess flaskapp user=www-data group=www-data threads=5 WSGIScriptAlias / /var/www/html/flaskapp.wsgi <Directory /var/www/html/> WSGIProcessGroup flaskapp WSGIApplicationGroup %{GLOBAL} Require all granted </Directory> </VirtualHost> ``` 将 Flask 项目部署到 `/var/www/html/` 目录下,并创建 `.wsgi` 文件,例如 `/var/www/html/flaskapp.wsgi`: ```python import sys sys.path.insert(0, '/var/www/html/') from wsgi import app as application ``` 启用站点并重启 Apache: ```bash sudo a2ensite flask.conf sudo systemctl restart apache2 ``` ### 5. 使用 Gunicorn + Nginx(可选) 安装 Gunicorn 和 Nginx: ```bash pip install gunicorn sudo apt install nginx ``` 启动 Gunicorn: ```bash gunicorn --workers 3 --bind unix:flaskapp.sock -m 007 wsgi:app ``` 配置 Nginx 代理: ```nginx server { listen 80; server_name your_domain_or_ip; location / { proxy_pass http://unix:/path/to/flaskapp.sock:/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 启用 Nginx 配置并重启服务: ```bash sudo ln -s /etc/nginx/sites-available/flaskapp /etc/nginx/sites-enabled sudo systemctl restart nginx ``` ### 6. 守护进程管理(使用 systemd) 创建一个 systemd 服务文件 `/etc/systemd/system/flaskapp.service`: ```ini [Unit] Description=Gunicorn instance to serve Flask app After=network.target [Service] User=www-data Group=www-data WorkingDirectory=/var/www/html/ ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:flaskapp.sock wsgi:app [Install] WantedBy=multi-user.target ``` 启动并启用服务: ```bash sudo systemctl start flaskapp sudo systemctl enable flaskapp ``` ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值