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

无法在cPanel中通过Phusion Passenger运行Flask应用

解决cPanel中Flask应用无法启动的问题

1. 修复passenger_wsgi.py的路径加载顺序

你的passenger_wsgi.py中,sys.path.insert语句放在了导入app之后,这会导致Python找不到app模块。调整顺序如下:

import os
import sys

# 先添加当前目录到Python路径
sys.path.insert(0, os.path.dirname(__file__))

from app import app
application = app

2. 确认虚拟环境配置

cPanel部署Flask需要指定正确的虚拟环境:

  • 在cPanel的Python应用管理器中,创建应用时选择Python 3.11.4版本,生成对应虚拟环境。
  • 确保Flask(3.0.0)和所有依赖都安装在该虚拟环境中,可通过cPanel终端执行:
    source /path/to/your/virtualenv/bin/activate
    pip install flask==3.0.0
    
  • 检查passenger_wsgi.py顶部是否有虚拟环境的激活注释(cPanel创建应用时会自动添加,类似#!/path/to/virtualenv/bin/python),如果缺失请手动添加。

3. 验证模板路径配置

虽然你将template_folder设为static,但Flask默认模板目录是templates,建议:

  • 将index.html移到项目根目录下的templates文件夹(无则创建)。
  • 修改app.py中的Flask初始化代码:
    app = Flask(__name__)  # 去掉template_folder参数,使用默认路径
    

若坚持使用static目录,建议用绝对路径避免环境差异:

import os
app = Flask(__name__, template_folder=os.path.join(os.path.dirname(__file__), 'static'))

4. 获取更详细的错误日志

当前错误日志仅提示进程提前退出,需查看Python层面的具体报错:

  • 在cPanel中打开错误日志工具,查看对应域名的error_log,里面会包含Python的Traceback信息,可精准定位问题(比如模块缺失、路径错误等)。

5. 再次确认权限设置

虽然你已配置权限,仍需检查:

  • 项目根目录的所有者为当前cPanel用户名(而非root)。
  • static、templates等目录权限保持0755,文件权限保持0644。

内容的提问来源于stack exchange,提问作者Timsib Adnap

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 22:12:38