如何在apache服务器上托管python Flask应用程序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在apache服务器上托管python Flask应用程序?相关的知识,希望对你有一定的参考价值。

我有一个flask应用程序,我想将其托管在ubuntu Amazon AWS实例上运行的Apache服务器上。我遵循了很多在线说明,例如Deploying a Python app on a Linux/Unix production server,但没有成功

我遇到类似 Invalid command 'PassengerAppRoot', perhaps misspelled or defined by a module not included in the server configuration的错误

所以,有一个清楚的为什么要这样做,并带有将要解释的步骤。]

答案

安装python,pip和mod_wsgi;

apt install python3-dev python3-pip libapache2-mod-wsgi

重新启动apache2服务并验证是否已加载wsgi模块:sudo apache2ctl -M | grep -i wsgi

在您的项目中创建一个projectname.wsgi文件:

import sys
sys.path.insert(0, '/path/to/project')

from app import app as application
application.root_path = '/path/to/project'

在/ etc / apache2 / sites-available下为您的项目创建一个配置文件(projectname.conf-.conf扩展名是Apache的新版本)。>

<VirtualHost *:<PORT>>
   ServerName <DOMAIN.NAME>
   WSGIDaemonProcess <projectname> user=<user> group=www-data threads=2
   WSGIScriptAlias / /path/to/project/projectname.wsgi
   <Directory /path/to/project>
     WSGIProcessGroup <projectname>
     WSGIApplicationGroup %GLOBAL
     Order deny,allow
     Allow from all
   </Directory>
   Alias "/static/" "/path/to/project/static/"
   <Directory /path/to/project/static/>
     Order allow,deny
     Allow from all
   </Directory>
   ErrorLog /path/to/logs/error.log
   CustomLog /path/to/logs/access.log combined
</VirtualHost>

将配置文件链接到启用的文件夹:

cd ../sites-enabled&ln -s ../sites-available/projectname.conf projectname.conf。

重新加载apache2服务并检查网站是否在线。

以上是关于如何在apache服务器上托管python Flask应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows Server 上托管 Python 3.7 烧瓶应用程序?

如何在没有 Flask 的 Heroku 上托管 websocket 应用程序 python 服务器?

尝试在树莓派上托管 python 套接字服务器时出现 ConnectionRefusedError

使用 apache 在单个 VPS 上托管多个 laravel 5.5 项目?

React/webpack - 如何在一台服务器上托管 React 应用程序,在另一台服务器上托管图像/字体?

Django VirtualHosting:如何在一个 VPS 上托管具有不同域的多个 django 项目