AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1070563
Accepted
ThatCoolCoder
ThatCoolCoder
Asked: 2021-07-25 23:29:22 +0800 CST2021-07-25 23:29:22 +0800 CST 2021-07-25 23:29:22 +0800 CST

为什么 Apache2 找不到我的 WSGI 应用程序?

  • 772

在我之前的问题中,我询问了如何让 mod_wsgi 使用特定的 Python 版本。根据该问题的答案,我创建了一个 Python 3.9 虚拟环境并让 WSGI 使用它。但是,现在我的 Flask 应用程序根本没有运行——我只是为我的站点的其余部分配置了 404 页面。重新启动 Apache2 时我没有收到任何错误,当我访问该站点时 Apache 错误日志为空。我认为错误一定是由于我的虚拟环境造成的,因为我在使用相同的配置样式之前已经创建了以前的测试 Flask 应用程序。

我的虚拟环境位于path/to/my/app/venv/.

path/to/my/app/runner.wsgi:

import sys

# Make something appear in error log if the WSGI is run at all
raise ValueError()

PROJECT_DIR = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, PROJECT_DIR)

from my_app import app as application

部分/etc/apache2/sites-available/000-default-le-ssl.conf:

WSGIDaemonProcess myapp user=www-data group=www-data threads=4 python-home=/path/to/my/app/venv/
WSGIScriptAlias /my-app/ path/to/my/app/runner.wsgi

/etc/apache2/mods-available/wsgi.load

LoadModule wsgi_module "/path/to/my/app/venv/lib/python3.9/site-packages/mod_wsgi/server/mod_wsgi-py39.cpython-39-x86_64-linux-gnu.so"
WSGIPythonHome "path/to/my/app/venv"

操作系统:Ubuntu 18.04.5 LTS

mod-wsgi python http-status-code-404 apache2 flask
  • 2 2 个回答
  • 447 Views

2 个回答

  • Voted
  1. Best Answer
    ThatCoolCoder
    2021-07-27T20:52:32+08:002021-07-27T20:52:32+08:00

    好的,我发现了问题。这真的很愚蠢。基本上,我是在写作/var/www/my_app而不是/var/www/my-appin /etc/apache2/sites-available/000-default-le-ssl.conf。我修复了路径,禁用了站点,启用了站点,重新加载了 Apache,现在它可以工作了。我很好奇为什么如果 Apache 无法访问 WSGI 文件,它至少不会发出警告。

    • 1
  2. A. Darwin
    2021-07-26T00:55:51+08:002021-07-26T00:55:51+08:00
    • 哪个用户正在运行 Apache?

    • 该用户可以实际访问您的 WSGI 应用程序吗?ls -la通过在路径及其所有组件上运行或使用namei( namei /path/....)来检查这一点

    • SELinux 是否处于强制模式?如果是这样,请检查审核日志。audit2why可能很有用(您可能必须安装一些软件包)。

    • 0

相关问题

  • 在 mod_wsgi 上部署 django 应用程序的问题

  • Django站点性能问题

  • 了解我的 Uni 是否可以运行 Python Web 应用程序

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • 在 Windows Server 2003 上运行 Apache/mod_wsgi 或类似环境的好方法是什么?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve