You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Flask应用至Ubuntu服务器时无法跳转至__init__.py问题求助

解决Flask部署后显示Apache默认页的问题

我看你这情况大概率是自定义虚拟主机没生效或者Apache权限/配置不兼容导致的,咱们一步步来排查修复:

1. 先处理Apache站点优先级问题

Apache默认的000-default.conf站点如果还在启用,会优先于你的cwh.conf生效,所以先禁用默认站点,启用你的自定义站点:

# 禁用默认站点
sudo a2dissite 000-default.conf
# 启用你的cwh站点
sudo a2ensite cwh.conf
# 重启Apache服务
sudo systemctl restart apache2

2. 修复Apache 2.4的权限指令

你的cwh.conf里用的是旧版Apache(2.2及以前)的权限语法,而Ubuntu现在的Apache基本都是2.4版本,需要替换成新的指令:
把配置里的这两段:

<Directory /var/www/cwh/cwh/>
    Order allow,deny
    Allow from all
</Directory>
<Directory /var/www/cwh/cwh/static/>
    Order allow,deny
    Allow from all
</Directory>

改成:

<Directory /var/www/cwh/cwh/>
    Require all granted
</Directory>
<Directory /var/www/cwh/cwh/static/>
    Require all granted
</Directory>

改完后记得重启Apache。

3. 让WSGI加载你的虚拟环境

你的cwh.wsgi文件里没有激活虚拟环境,Apache会用系统默认的Python环境,而这个环境里很可能没有安装Flask,导致WSGI加载失败,进而 fallback到默认页。修改你的cwh.wsgi,添加虚拟环境激活代码:

#!/usr/bin/python3
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/cwh/")

# 激活虚拟环境(路径要对应你的venv位置)
activate_this = '/var/www/cwh/cwh/venv/bin/activate_this.py'
with open(activate_this) as file_:
    exec(file_.read(), dict(__file__=activate_this))

from cwh import app as application
application.secret_key = 'Add-secret'

4. 确保安装了Python3版本的mod_wsgi

如果你的系统里装的是Python2版本的mod_wsgi,也会导致加载Python3的Flask环境失败,执行以下命令安装对应版本:

sudo apt-get update
sudo apt-get install libapache2-mod-wsgi-py3
# 安装完重启Apache
sudo systemctl restart apache2

5. 查看错误日志排查细节

如果还是不行,一定要看Apache的错误日志,这里能找到最直接的问题:

sudo tail -f /var/log/apache2/error.log

比如日志里如果出现ImportError: No module named flask,就说明虚拟环境没激活或者mod_wsgi版本不对;如果出现权限相关的错误,就检查目录权限:

# 给Apache用户(www-data)赋予项目目录的权限
sudo chown -R www-data:www-data /var/www/cwh

按照上面的步骤走一遍,应该就能解决默认页的问题,正常显示你的Flask内容了。

内容的提问来源于stack exchange,提问作者Zeeshan Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 22:54:10