Ubuntu服务器Flask+Apache+WSGI部署500错误求助
问题:Ubuntu服务器上Apache+WSGI部署Flask应用遇500错误及activate_this.py解码异常
基础信息
- 部署环境:Ubuntu服务器,使用Apache、mod_wsgi、Python3.8运行Flask应用
- 已遵循Flask官方mod_wsgi部署指南及教程搭建项目
- 项目根目录:
/var/www/html/base/BE - 项目结构:
├── activate_this.py ├── base_be.wsgi ├── be │ ├── __init__.py ├── be.conf ├── myenv # 虚拟环境目录 └── src ├── __init__.py ├── MY_SRC_FILE.py
./be/__init__.py内包含官方教程所述的create_app工厂函数- 已将
api.base添加至/etc/hosts文件
出现的问题
- activate_this.py执行报错:尝试添加GitHub上的activate_this.py代码以激活虚拟环境时,触发以下异常:
mod_wsgi (pid=34272): Failed to exec Python script file '/var/www/html/base/BE/base_be.wsgi'. mod_wsgi (pid=34272): Exception occurred processing WSGI script '/var/www/html/base/BE/base_be.wsgi'. Traceback (most recent call last): File "/var/www/html/base/BE/base_be.wsgi", line 4, in <module> exec(file_.read(), dict(__file__=activate_this)) File "<string>", line 28, in <module> AttributeError: 'str' object has no attribute 'decode'
- 访问返回500错误:访问
api.base/auth/login路径时,始终返回500内部服务器错误
Apache虚拟主机配置文件(my_application.conf)内容
<VirtualHost *:80> ServerName api.base WSGIDaemonProcess api.base python-path=/var/www/html/base/BE python-home=/var/www/html/base/BE/myenv WSGIProcessGroup api.base WSGIScriptAlias / /var/www/html/base/BE/base_be.wsgi <Directory /var/www/html/base/BE/> Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
疑问
- 如何配置才能让应用正常运行,且可通过
api.base/auth/login正常访问? - 部署过程中遗漏了哪些关键步骤?
- 当前问题的根本原因是什么?
内容的提问来源于stack exchange,提问作者Javier Gonzalez Moncayo
相关产品推荐
相关产品推荐

