0

I dont know what exactly am I missing. Here is what I have till now:

wsgi

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

Its content

from scheduler import app as application

init.py

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

Error in Apache Log

[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>

I followed Link1 & Link2 but no luck. This application was working properly on one host (say host-1) and I am trying to deploy it on say host-2.

Community
  • 1
  • 1
Shashank Vivek
  • 16,888
  • 8
  • 62
  • 104

1 Answers1

1

As your application will run as a daemon, the root directory will be set to /.

Ensure your project directory is added to python PATH or to let wsgi run the application in the correct path.

Your scheduler.wsgi should be something like:

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

# launch app
from scheduler import app as application

Also ensure apache user/group (www-data) have access to the project:

chown -R www-data:www-data /opt/tools/apps/scheduler
Cyrbil
  • 6,341
  • 1
  • 24
  • 40
  • Changed `scheduler.wsgi` as above and the permissions is similar to to what's there on `host-1`. :( But it didnt work. Do you want some more info? – Shashank Vivek Feb 05 '16 at 09:16
  • 2
    Put a `import os; print(os.getcwd())` at the top of your wsgi script and show what apache log returns. – Cyrbil Feb 05 '16 at 09:23