如何在 Ubuntu VPS 上部署 Flask 应用程序
白如意i 2024-06-27 08:37:04 阅读 50
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
什么是高亮显示
在本教程中,用户需要输入或自定义的行将以高亮显示!其余部分应大多可以复制并粘贴。
介绍
Flask 是一个用 Python 编写的微框架,基于 Werkzeug 和 Jinja2 模板引擎用于开发 Web 应用程序。它旨在快速开发 Web 应用。
设置
您需要已经安装并在您的 VPS 上运行 Apache。如果不是这种情况,请按照我们在在 Ubuntu 上安装 LAMP 栈文章中的第一步进行操作。
步骤一—安装并启用 mod_wsgi
WSGI(Web 服务器网关接口)是 Python 的 Web 服务器和 Web 应用程序之间的接口。Mod_wsgi 是一个 Apache HTTP 服务器模块,使 Apache 能够提供 Flask 应用程序。
打开终端并输入以下命令以安装 mod_wsgi:
sudo apt-get install libapache2-mod-wsgi python-dev
要启用 mod_wsgi,请运行以下命令:
sudo a2enmod wsgi
步骤二—创建 Flask 应用
在这一步中,我们将创建一个 Flask 应用。我们将把我们的应用放在 /var/www 目录中。
使用以下命令移动到 /var/www 目录:
cd /var/www
使用 mkdir 创建应用程序目录结构,如下所示。将 "FlaskApp" 替换为您想要给您的应用程序的名称。通过以下命令创建初始目录 FlaskApp:
sudo mkdir FlaskApp
使用以下命令进入此目录:
cd FlaskApp
通过以下命令创建另一个目录 FlaskApp:
sudo mkdir FlaskApp
然后,进入此目录并使用以下命令创建名为 static 和 templates 的两个子目录:
cd FlaskApp
sudo mkdir static templates
现在,您的目录结构应如下所示:
|----FlaskApp
|---------FlaskApp
|--------------static
|--------------templates
现在,创建包含 Flask 应用程序逻辑的 __init__.py 文件。
sudo nano __init__.py
向文件添加以下逻辑:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, I love Digital Ocean!"
if __name__ == "__main__":
app.run()
保存并关闭文件。
步骤三—安装 Flask
设置一个 虚拟环境 将使应用程序及其依赖项与主系统隔离开来。对其进行更改不会影响云服务器的系统配置。
在这一步中,我们将为我们的 Flask 应用程序创建一个虚拟环境。
我们将使用 pip 安装 virtualenv 和 Flask。如果未安装 pip,请通过 apt-get 在 Ubuntu 上安装它。
sudo apt-get install python-pip
如果未安装 virtualenv,请使用 pip 使用以下命令安装它:
sudo pip install virtualenv
给出以下命令(其中 venv 是您想要给临时环境的名称):
sudo virtualenv venv
现在,通过激活虚拟环境使用以下命令在该环境中安装 Flask:
source venv/bin/activate
使用以下命令在其中安装 Flask:
sudo pip install Flask
接下来,运行以下命令以测试安装是否成功并应用程序是否正在运行:
sudo python __init__.py
它应显示“Running on http://localhost:5000/”或“Running on http://127.0.0.1:5000/”。如果看到此消息,则已成功配置应用程序。
要停用环境,请给出以下命令:
deactivate
步骤四—配置并启用新的虚拟主机
在终端中输入以下命令:
sudo nano /etc/apache2/sites-available/FlaskApp
注意:新版本的 Ubuntu(13.10+)需要为 VirtualHost 文件添加“.conf”扩展名——请改为运行以下命令:
sudo nano /etc/apache2/sites-available/FlaskApp.conf
向文件添加以下代码以配置虚拟主机。确保将 ServerName 更改为您的域或云服务器的 IP 地址:
<VirtualHost *:80>
ServerName mywebsite.com
ServerAdmin admin@mywebsite.com
WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi
<Directory /var/www/FlaskApp/FlaskApp/>
Order allow,deny
Allow from all
</Directory>
Alias /static /var/www/FlaskApp/FlaskApp/static
<Directory /var/www/FlaskApp/FlaskApp/static/>
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
保存并关闭文件。
使用以下命令启用虚拟主机:
sudo a2ensite FlaskApp
步骤五—创建 .wsgi 文件
Apache 使用 .wsgi 文件来提供 Flask 应用程序。移动到 /var/www/FlaskApp 目录并使用以下命令创建名为 flaskapp.wsgi 的文件:
cd /var/www/FlaskApp
sudo nano flaskapp.wsgi
向 flaskapp.wsgi 文件添加以下代码:
#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/FlaskApp/")
from FlaskApp import app as application
application.secret_key = 'Add your secret key'
现在,您的目录结构应如下所示:
|--------FlaskApp
|----------------FlaskApp
|-----------------------static
|-----------------------templates
|-----------------------venv
|-----------------------__init__.py
|----------------flaskapp.wsgi
步骤六—重新启动 Apache
使用以下命令重新启动 Apache 以应用更改:
sudo service apache2 restart
您可能会看到类似以下的消息:
Could not reliably determine the VPS's fully qualified domain name, using 127.0.0.1 for ServerName
此消息只是一个警告,您将能够访问您的虚拟主机而不会出现任何其他问题。要查看您的应用程序,请打开浏览器并导航到您在虚拟主机配置中输入的域名或 IP 地址。
您已成功部署了一个 Flask 应用程序。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。