错误:在wsgi文件

时间:2016-02-05 07:11:51

标签: python apache flask mod-wsgi wsgi

我不知道我到底错过了什么。这就是我现在所拥有的:

WSGI

/opt/tools/apps/scheduler/scheduler.wsgi

其内容

from scheduler import app as application

init.py

/opt/tools/apps/scheduler/scheduler/__init__.py

Apache日志中的错误

[Thu Feb 04 21:54:30 2016] [error] [client 10.57.136.99] mod_wsgi (pid=45485): Target WSGI script '/opt/tools/apps/scheduler/scheduler.wsgi' cannot be loaded as Python module.
[Thu Feb 04 21:54:30 2016] [error] [client 10.57.136.99] mod_wsgi (pid=45485): Exception occurred processing WSGI script '/opt/tools/apps/scheduler/scheduler.wsgi'.
[Thu Feb 04 21:54:30 2016] [error] [client 10.57.136.99] Traceback (most recent call last):
[Thu Feb 04 21:54:30 2016] [error] [client 10.57.136.99]   File "/opt/tools/apps/scheduler/scheduler.wsgi", line 1, in <module>
[Thu Feb 04 21:54:30 2016] [error] [client 10.57.136.99]     from scheduler import app as application
[Thu Feb 04 21:54:30 2016] [error] [client 10.57.136.99] ImportError: No module named scheduler

wsgi.conf

/etc/httpd/conf.d

LoadModule wsgi_module modules/mod_wsgi.so
WSGIPythonHome /opt/tools
WSGISocketPrefix run/wsgi

WSGIDaemonProcess scheduler user=abcd group=efgh processes=4
WSGIScriptAlias /scheduler /opt/tools/apps/scheduler/scheduler.wsgi
<Directory /opt/tools/apps/scheduler>
  WSGIProcessGroup scheduler
  WSGIApplicationGroup %{RESOURCE}
  Order deny,allow
  Allow from all
</Directory>

我跟着Link1&amp; Link2但没有运气。此应用程序在一台主机上正常工作(例如 host-1 ),我正在尝试将其部署在 host-2 上。

1 个答案:

答案 0 :(得分:1)

由于您的应用程序将作为守护程序运行,因此根目录将设置为/

确保将项目目录添加到python PATH或让wsgi以正确的路径运行应用程序。

您的scheduler.wsgi应该是这样的:

# insert application path in python path
import sys
sys.path.insert(0, "/opt/tools/apps/scheduler")

# launch app
from scheduler import app as application

同时确保apache用户/组(www-data)可以访问项目:

chown -R www-data:www-data /opt/tools/apps/scheduler