在 mod_wsgi 部署的 Flask 应用程序中 Adafruit_MotorHAT 的权限被拒绝

超级三宝

我正在开发一个简单的 Flask 应用程序,它由 RaspberryPi 提供服务,上面堆放着 Adafruit MotorHat,因此它可以驱动步进电机。从命令行运行应用程序时一切正常,并且可以通过 Flask 网络界面控制电机。但是,当尝试通过 mod_wsgi 部署应用程序时,我收到有关 MotorHat 库的以下 apache2 错误:

[Mon Dec 11 09:30:32.700209 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416] mod_wsgi (pid=1583): Target WSGI script '/var/www/FlaskApp  /flaskapp.wsgi' cannot be loaded as Python module.
[Mon Dec 11 09:30:32.700330 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416] mod_wsgi (pid=1583): Exception occurred processing WSGI script '/var/www/FlaskApp/flaskapp.wsgi'.
[Mon Dec 11 09:30:32.700405 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416] Traceback (most recent call last):
[Mon Dec 11 09:30:32.700473 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416]   File "/var/www/FlaskApp/flaskapp.wsgi", line 7, in <module>
[Mon Dec 11 09:30:32.700665 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416]     from FlaskApp import app as application
[Mon Dec 11 09:30:32.700706 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416]   File "/var/www/FlaskApp/FlaskApp/__init__.py", line 3, in <module>
[Mon Dec 11 09:30:32.700895 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416]     from newsFocus import *
[Mon Dec 11 09:30:32.700933 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416]   File "/var/www/FlaskApp/FlaskApp/newsFocus.py", line 14, in <module>
[Mon Dec 11 09:30:32.701313 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416]     from Adafruit_MotorHAT import Adafruit_MotorHAT, Adafruit_DCMotor, Adafruit_StepperMotor
[Mon Dec 11 09:30:32.701362 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416]   File "build/bdist.linux-armv7l/egg/Adafruit_MotorHAT/__init__.py", line 1, in <module>
[Mon Dec 11 09:30:32.701971 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416]   File "build/bdist.linux-armv7l/egg/Adafruit_MotorHAT/Adafruit_MotorHAT.py", line 3, in <module>
[Mon Dec 11 09:30:32.702522 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416]   File "build/bdist.linux-armv7l/egg/Adafruit_MotorHAT/Adafruit_PWM_Servo_Driver.py", line 11, in <module>
[Mon Dec 11 09:30:32.703070 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416]   File "build/bdist.linux-armv7l/egg/Adafruit_MotorHAT/Adafruit_PWM_Servo_Driver.py", line 35, in PWM
[Mon Dec 11 09:30:32.703619 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416]   File "build/bdist.linux-armv7l/egg/Adafruit_MotorHAT/Adafruit_I2C.py", line 43, in __init__
[Mon Dec 11 09:30:32.704127 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416]     self.bus = smbus.SMBus(busnum if busnum >= 0 else Adafruit_I2C.getPiI2CBusNumber())
[Mon Dec 11 09:30:32.704204 2017] [wsgi:error] [pid 1583] [client 192.168.0.10:38416] IOError: [Errno 13] Permission denied

我该如何解决这个问题,以及哪个用户实际上正在运行通过 mod_wsgi 部署的应用程序?

格雷厄姆·邓普顿

Apache 运行的用户无权访问您尝试访问的任何文件。看:

虽然看起来不像这里的情况,但另一个常见问题是您使用相对路径名而不是绝对路径名。看:

我建议确保您使用的是 mod_wsgi 的守护进程模式,并将守护进程的用户/组设置为有权访问您尝试访问的文件或设备的任何用户。如果使用相对路径并且无法更改它们,还要查看用于设置进程主目录的选项。看:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Flask中的静态文件-robot.txt,sitemap.xml(mod_wsgi)

在pythonanywhere.com上部署Flask网站/应用程序

让Flask使用Python3(Apache / mod_wsgi)

Azure Flask部署-WSGI界面

以root权限部署Flask应用

可以在特定端口上使用mod_wsgi运行Flask应用程序吗?

使用mod_wsgi / Apache2部署Flask App时出现Numpy ImportError

在同一Apache服务器上运行mod_wsgi(Flask)应用程序和非mod_wsgi应用程序

Apache + mod_wsgi + flask应用程序:日志中出现“无法获取存储桶旅的请求”错误

无法在Flask设置中解决mod_wsgi异常

mod_wsgi不断重启flask应用

使用mod_wsgi在Ubuntu 16.04 apache2上部署Django应用

在ubuntu 18.04上使用Mod_WSGI的Django,但对Apache2的媒体/权限被拒绝

从GitLab CI将应用程序部署到App Engine时,权限被拒绝

使用WAMP和mod_wsgi部署Django Restfule服务

通过AWS Lambda进行Flask Web应用程序部署

使用mod_wsgi访问Bottle应用

在Apache上部署Flask应用程序时出错

Mod_wsgi https错误连接被拒绝

部署烧瓶和apache2 mod_wsgi的问题

通过mod_wsgi在WebFaction上运行Flask-SocketIO

在AWS上部署Flask应用程序时处理密钥

在 Google Compute Engine 上为 Flask 配置 Apache WSGI(使用 mod_wsgi 的 Flask 导入错误)

使用 mod_wsgi 部署 django(python) 项目

在 apache 上部署 Flask 应用程序工厂

部署 Python Flask 应用程序的错误方式?

无法在 Apache (mod_wsgi) 上部署官方 Django 教程

使用 mod_wsgi 在 Apache 上部署 Django

考虑使用 mod_wsgi 在 apache 上提供 Flask 应用程序的文件路径的正确方法是什么

TOP 榜单

热门标签

归档