我不知道我到底错过了什么。这就是我现在所拥有的:
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 上。
答案 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