How to install mod_wsgi for apache 2.4 and python 3.4 on windows?
Asked Answered
M

5

6

I had apache 2.4 already installed with xampp.I tried adding mod_wsgi using the steps mentioned here

But when I add the line

LoadModule wsgi_module modules/mod_wsgi-py34-vc10.so

Apache does not start.

Mika answered 17/2, 2017 at 12:53 Comment(0)
B
12

It is better to build mod_wsgi yourself from code rather than use an arbitrary binary off the net. The steps are as follows.

  • Ensure you have a decent Apache installation which includes header files, e.g. Apache 2.4.37 Win64 from Apache Lounge . Preferably installed at location of C:/Apache24.

  • Ensure your Python installation is set up so that you can pip install modules. This must include having the correct Microsoft C compiler needed by that Python version.

  • Run pip install mod_wsgi. If your Apache installation is not at C:/Apache24, then first set the environment variable MOD_WSGI_APACHE_ROOTDIR to its location. Ensure you specify path as C:/Apache24 form and not with back slashes, that is, not as C:\Apache24. This is only needed when doing the install, not later.

  • Run mod_wsgi-express module-config.

  • Copy the output from runing mod_wsgi-express module-config into your Apache configuration file.

  • Add configuration for a WSGI application to the Apache configuration.

  • Restart Apache and see if it works.

Note that you are better off starting with a WSGI hello world rather than some huge Django application when initially testing.

Bluster answered 17/2, 2017 at 20:47 Comment(10)
Thanks.I started learning Django instead.Using their server for nowMika
When I run pip install mod_wsgi it fails with c:\apache24\include\apr_network_io.h(29) : fatal error C1083: Cannot open include file: 'apr_perms_set.h': No such file or directory'. This is with httpd 2.4.27. Any ideas how to fix that?Inferno
The above attempt was with source I downloaded from http://mirrors.gigenet.com/apache/httpd/httpd-2.4.27.tar.gz. I just tried building with source cloned from github and that failed with c:\apache24\include\ap_hooks.h(39) : fatal error C1083: Cannot open include file: 'apr.h': No such file or directoryInferno
I thought this was the same question, and I tried your solution and I had issues. That is why I asked in the comments. I will create a new question.Inferno
"first set the environment variable MOD_WSGI_APACHE_ROOTDIR to its location". How is this done?Luminous
That depends on what shell you are using on Windows. Have you looked up "How to set environment variable from shell in Windows"?Bluster
in windows cmd setting the environment variable is done via set MOD_WSGI_APACHE_ROOTDIR=c:/path/to/apache Note that it will be unset as soon as you close the cmsElijah
You might have to install visual studio build tools for this to work. These can be found on the visualstudio,microsoft.com/downloads under tools. In the following menue you have to choose cpp build tools and of those you only need the windows 10 sdk (around 4.5 GB)Elijah
I've posted a question about the missing include files: #54268896Canaigre
Where to add the return of the mod_wsgi-express module-config cmd in the httpd.conf? Do I open a directory for this, or do I have to add it to some existing one in the file? The document doesnt clarify it.Meghan
I
3

Use the release of Apache Lounge , if you still find c:\apache24\include\apr_network_io.h(29) : fatal error C1083: Cannot open include file: 'apr_perms_set.h': No such file or directory'. . This is best fit to Windows.

Insulate answered 24/2, 2018 at 12:18 Comment(0)
S
2
This topic is useful for Windows 10, xampp webserver as well.
I was struggling to find precompiled mod_wsgi.so for 
Apache/2.4.27 (Win32) 
Python/2.7.13 
This [link][1] is useful to find the appropriate version of mod_wsgi.
IF you are lucky, you can find the precompiled version [here][2]
There is a step by step guidance available [here][3]


  [1]: https://github.com/GrahamDumpleton/mod_wsgi/blob/develop/win32/README.rst
  [2]: http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
  [3]: https://everything2.com/title/Installing+Python+on+XAMPP
Semiannual answered 15/9, 2017 at 9:23 Comment(2)
The recommended method is to build it yourself using pip install mod_wsgi as explain in another answer. Grabbing arbitrary binaries is not guaranteed to work. You should build it for your specific Apache installation.Bluster
lfd.uci.edu/~gohlke/pythonlibs saved me a lot of time getting the VC compiler toolchain on my machine. Basically pip install <.whl file>, then continue following the instructions here: github.com/GrahamDumpleton/mod_wsgi/blob/develop/win32/…Sublease
L
1

@LarryMartell I met the same issue on windows and fixed it. You can try to copy file apr_perms_set.h from apr repository (https://github.com/traviscross/apr) to Apache2.4's include folder.

Linguistician answered 4/10, 2017 at 3:20 Comment(1)
This doesn't answer the original question. Copying APR header files from a separate repo is also not guaranteed to work anyway if the issue was they were missing. Use a Apache distro which ships header files instead. If you aren't use the exact same header files as the Apache was compiled with, you can encounter problems.Bluster
T
1

I am using a 64 bit operating system and have 64 bit python installed.

installing apache distribution for 64 bit OS from apachelounge https://www.apachelounge.com/download/ resolved the problem for me.

Trifid answered 9/9, 2018 at 8:25 Comment(1)
Yes, this is the only solution I've found so far. A question stays how to fix it for ApacheHaus: #54268896Canaigre

© 2022 - 2024 — McMap. All rights reserved.