On 12/12/2014, at 8:04 AM, Jennifer Mehl <[email protected]> wrote:
> You know, I'm not totally sure about the virtualenv... I am new to Python. We > have had a bit of history with two different developers working on this code > (and I am not in communication with the first developer). Kind of a > difficult spot I'm in, with limited info. The first developer had started > out using a virtualenv but I believe switched to using pip to install > packages system-wide. I am trying to normalize the package installation so > they are all installed the same way and get a list of what packages are in > use. > > (I know this may be out of scope for the group, but if someone can tell me > how to determine if a virtualenv is in use, and if so, how to deactivate it > and move over to only using system-wide packages, that would be enormously > helpful.) As there is no evidence in the Apache configuration file for the use of a virtual environment, would need to look in the wsgi.py to see if set up there. I am not sure though whether setting up in in the wsgi.py can trigger that datetime issue as described. Important thing at this point is to check that the system wide Python and chroot Python are exactly the same because although your application will use the Python run time from inside the chroot, the actual Python shared library is going to be pulled from the system Python so any difference between the two Python installations version wise can cause problems. > Is the datetime error a separate error from the "Target WSGI" error, or > causing it? The datetime module not being able to be loaded is triggering the 'Target WSGI' error. > In the meantime, I will check the Python versions but I believe it is 2.7.6 > on the system and chroot - not sure what the mod_wsgi is compiled against, > will check. It's the one that came through Ubuntu, so worst case, I could > compile my own mod_wsgi if I need to. > > Thanks for the help. > > --Jennifer > > > On Thursday, December 11, 2014 12:57:32 PM UTC-8, Graham Dumpleton wrote: > Were you by chance using a Python virtual environment? > > Apparently if your virtual environment is created of system Python and then > you upgrade the system Python, then datetime can stop working. > > http://askubuntu.com/questions/509283/python-no-module-named-datetime/542673#542673 > > Graham > > On 11/12/2014, at 1:13 PM, Graham Dumpleton <[email protected]> wrote: > >> Wow. Surprised you got that far. The chroot feature of mod_wsgi pretty well >> has no documentation. At best there might be some comments about it buried >> in the release notes somewhere. >> >> Before we try and sort out the issue, I might say that the better way of >> trying to isolate an application these days would be to use Docker. I >> realise this means learning a bit about how to install and manage Docker, >> but as far as running Apache/mod_wsgi under Docker, the experience is much >> much better as I provide a prebuilt Docker image for doing it. >> >> This Docker image is something I don't think I have mentioned here on the >> mod_wsgi mailing list as it has only been out there for a week or so. >> >> I have recently started blogging about it and have two posts up about it: >> >> Hosting Python WSGI applications using Docker. >> Deferred build actions for Docker images. >> >> The actual Docker Hub entry is: >> >> https://registry.hub.docker.com/u/grahamdumpleton/mod-wsgi-docker/ >> >> Anyway, for chroot, can you confirm a few things. >> >> First is whether the Python version outside of the chroot is the default >> operating system Python installation for 2.7 and that the mod_wsgi is also >> the operating system binary package also. >> >> Double check what version of Python mod_wsgi is installed for. I would >> imagine it should be Python 2.7, but want to make sure isn't 2.6. >> >> >> http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Python_Installation_In_Use >> >> Now inside of the chroot, did you also use the default operating system >> Python installation for 2.7. >> >> Inside of the chroot, run the 'python' command line and see if datetime can >> imported. >> >> $ python >> Python 2.7.2 (default, Oct 11 2012, 20:14:37) >> [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin >> Type "help", "copyright", "credits" or "license" for more information. >> >>> import datetime >> >>> datetime.__file__ >> '/Users/graham/Python/docker/lib/python2.7/lib-dynload/datetime.so' >> >> Graham >> >> On 11/12/2014, at 11:54 AM, Jennifer Mehl <[email protected]> wrote: >> >>> Hello, >>> >>> I'm new to mod_wsgi (and I am not a programmer, so please bear with me). I >>> have a Django/Python application that was written by someone else that I >>> have deployed using mod_wsgi 3.4 on Ubuntu 14.04LTS with Apache 2.4.7, >>> using the following in my apache config: >>> >>> #Django WSGI >>> >>> WSGIScriptAlias / /var/www/transfergateway/myproject/wsgi.py >>> >>> WSGIPythonPath /var/www/transfergateway >>> >>> <VirtualHost *:443> >>> >>> ServerName *redacted* >>> >>> <Directory /var/www/transfergateway> >>> >>> <Files wsgi.py> >>> >>> Order deny,allow >>> >>> Allow from all >>> >>> </Files> >>> >>> </Directory> >>> >>> The application is running fine using mod_wsgi and apache. >>> >>> However, I want to make this application more secure, so I would like to >>> have mod_wsgi run in a chroot jail. I created a chroot jail using the >>> instructions here: https://help.ubuntu.com/community/BasicChroot and copied >>> the application into /var/chroot/var/www/transfergateway . Then, in the >>> chroot, I installed python2.7 and used pip install to install the python >>> packages used in the project (as far as I can tell). >>> >>> I have created a new Apache config: >>> >>> #test chroot jail for Django WSGI >>> >>> WSGISocketPrefix /var/run/wsgi >>> >>> <VirtualHost *:443> >>> >>> ServerName *redacted* >>> >>> WSGIScriptAlias / /var/chroot/var/www/transfergateway/myproject/wsgi.py >>> >>> WSGIProcessGroup chroot >>> >>> WSGIDaemonProcess chroot user=daemon group=daemon processes=2 threads=25 >>> chroot=/var/chroot >>> >>> <Directory /var/chroot/var/www/transfergateway/myproject/> >>> >>> <Files wsgi.py> >>> >>> Order deny,allow >>> >>> Allow from all >>> >>> </Files> >>> >>> </Directory> >>> >>> >>> >>> But I am getting the following errors in the Apache error log upon startup: >>> >>> >>> Target WSGI script '/var/www/transfergateway/myproject/wsgi.py' cannot be >>> loaded as Python module. >>> >>> Exception occurred processing WSGI script >>> '/var/www/transfergateway/myproject/wsgi.py'. >>> >>> Traceback (most recent call last): >>> >>> File "/var/www/transfergateway/myproject/wsgi.py", line 29, in <module> >>> >>> from django.core.wsgi import get_wsgi_application >>> >>> File "/usr/local/lib/python2.7/dist-packages/django/core/wsgi.py", line 1, >>> in <module> >>> >>> from django.core.handlers.wsgi import WSGIHandler >>> >>> File >>> "/usr/local/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line >>> 9, in <module> >>> >>> from django import http >>> >>> File "/usr/local/lib/python2.7/dist-packages/django/http/__init__.py", line >>> 1, in <module> >>> >>> from django.http.cookie import SimpleCookie, parse_cookie >>> >>> File "/usr/local/lib/python2.7/dist-packages/django/http/cookie.py", line >>> 3, in <module> >>> >>> from django.utils.encoding import force_str >>> >>> File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py", >>> line 4, in <module> >>> >>> import datetime >>> >>> >>> ImportError: No module named datetime >>> >>> >>> >>> I appreciate any advice on what I am doing wrong here. Do I have my chroot >>> set up properly? Do I need to do anything with permissions on /var/chroot >>> or /var/chroot/var/www/transfergateway? Do I need to run mod_wsgi as a >>> different user than daemon? >>> >>> >>> >>> thanks in advance for any help! >>> >>> --Jennifer >>> >>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "modwsgi" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/modwsgi. >>> For more options, visit https://groups.google.com/d/optout. >> > > > -- > You received this message because you are subscribed to the Google Groups > "modwsgi" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/modwsgi. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "modwsgi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/modwsgi. For more options, visit https://groups.google.com/d/optout.
