【问题标题】:Flask app with Apache2 Can Not Find Paths带有 Apache2 的 Flask 应用程序找不到路径
【发布时间】:2021-01-15 04:29:36
【问题描述】:

我在带有 Apache 2 的 Ubuntu VPS Server 18.04 上部署了我的烧瓶应用程序,但服务器找不到除 /static 之外的路径。由于这些路径失败,我的应用程序的每条路线都失败了,我不知道该怎么办。这是我的服务器配置:

<VirtualHost *:80>
                ServerName <ServerName >
                ServerAdmin <ServerAdmin>
                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>

我需要在 conf 中添加任何其他内容吗?要查看我的文件夹吗?

顺便说一句,树是;

FlaskApp
├── FlaskApp
│   ├── pycache
│   ├── data
│   │   ├── categories [CONTAINS JSON FILES]
│   │   ├── details [CONTAINS JSON FILES]
│   │   └── products [CONTAINS JSON FILES]
│   ├── static
│   │   ├── css
│   │   ├── images
│   │   │   ├── categories
│   │   │   ├── details
│   │   │   ├── home
│   │   │   ├── logo
│   │   │   ├── products
│   │   │   └── special
│   │   │       ├── products
│   │   │       └── references
│   │   └── js
│   └── templates
│       ├── admin
│       ├── security
│       ├── special
│       │   └── tools
│       └── tools
└── venv
└── flaskapp.wsgi

flaskapp.wsgi;

#!/usr/bin/python3
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 = '<secret_key>'

这是我得到的错误之一;

[Tue Sep 29 13:55:27.099228 2020] [wsgi:error] [pid 25676] [client "address"] FileNotFoundError: [Errno 2] No such file or directory: '/data/categories/categories.json', referer: "address"

谢谢。

【问题讨论】:

  • 您是否尝试在 wsgi 文件中添加完整路径? sys.path.insert(0,"fullpath") 更新:同样适用于 apache 文件
  • @archer 你的意思是 conf 文件与 apache 文件相同吗?以及如何?
  • --->您在问题中添加的代码中的目录
  • 代替上面的代码:&lt;Directory /var/www/FlaskApp/FlaskApp/&gt; Order allow,deny Allow from all &lt;/Directory&gt;
  • 尝试在apache中添加双引号目录&lt;Directory "C:/Users/Administrator/apps/appname"&gt; etc

标签: python linux apache server ubuntu-server


【解决方案1】:

也许您可以尝试将os.getcwd()os.path.abspath(".") 添加到所有路径前缀。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多