2017-12-11 20 views
-1

私はAdafruit MotorHatがスタックされたRaspberryPiによって提供される単純なFlaskアプリケーションで作業しているので、Stepper Motorsを駆動できます。コマンドラインからアプリケーションを実行すると、すべて正常に動作し、モータはFlaskのWebインターフェイスを介して制御することができます。 mod_wsgiを経由してアプリケーションを展開しようとしたときしかし、私はMotorHatライブラリに関する以下のapache2のエラーを取得:mod_wsgiのAdafruit_MotorHATに対するアクセス許可がFlaskのアプリケーション

[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を経由して展開WHEどのユーザーが実際にアプリケーションを実行していますか?

答えて

1

Apacheは実行時にアクセスしようとしているファイルにアクセスする権限がありません。参照:

を、それはケースがここにあるが、あなたは絶対的ではなく相対パス名を使用します。ここで、他の一般的な問題があるように見えませんが。

は、私はあなたがmod_wsgiをのデーモンモードを使用していることを確認示唆し、ユーザーは、あなたがしようとしているファイルやデバイスへのアクセス権を持っているものは何でもデーモンプロセス用のユーザー/グループを設定します参照してください。アクセス。また、相対パスを使用している場合は、プロセスのホームディレクトリを設定するオプションを調べ、変更することはできません。参照:

関連する問題