Windows binaries for mod_wsgi 4.4.2 available for testing.

3,795 views
Skip to first unread message

Graham Dumpleton

unread,
Dec 19, 2014, 5:43:24 AM12/19/14
to mod...@googlegroups.com, Nick Abelson
After a long and arduous battle, almost giving in, and having to seek help from the masses, I have managed to compile working mod_wsgi 4.4.2 binaries for Windows.

The painful experience means I now understand why a lot of the problems people were having were occurring.

I am temporarily putting the binaries up for download at:

https://dl.dropboxusercontent.com/u/22571016/mod_wsgi-windows-4.4.2.zip

but if all is okay I will add them to the actual download page on github.

This file contains binaries for multiple Apache/Python combinations.

mod_wsgi-windows-4.4.2/Apache22-win32-VC9/modules/mod_wsgi-py26.so
mod_wsgi-windows-4.4.2/Apache22-win32-VC9/modules/mod_wsgi-py27.so
mod_wsgi-windows-4.4.2/Apache22-win32-VC9/modules/mod_wsgi-py32.so

mod_wsgi-windows-4.4.2/Apache24-win32-VC9/modules/mod_wsgi-py26.so
mod_wsgi-windows-4.4.2/Apache24-win32-VC9/modules/mod_wsgi-py27.so
mod_wsgi-windows-4.4.2/Apache24-win32-VC9/modules/mod_wsgi-py32.so

mod_wsgi-windows-4.4.2/Apache24-win32-VC10/modules/mod_wsgi-py33.so
mod_wsgi-windows-4.4.2/Apache24-win32-VC10/modules/mod_wsgi-py34.so

mod_wsgi-windows-4.4.2/Apache24-win64-VC10/modules/mod_wsgi-py33.so
mod_wsgi-windows-4.4.2/Apache24-win64-VC10/modules/mod_wsgi-py34.so

When using these, it is very very very important you use the matching versions of both Python and Apache. You cannot necessarily use VC9 binaries safely with a newer VC10 or VC11 variant of Apache. Same with using VC10 binaries with a VC11 variant of Apache.

Many of the problems people were having with the Windows binaries from the external site were due to the wrong build of Apache being used, perhaps combined with the binaries being compiled against the wrong build of Apache in the first place.

The key to which Apache/Python variant you must use is in the second directory name, with the actual Python version number in the final file name.

====

## Apache22-win32-VC9 ##

Apache 2.2 VC9 32 bit binary from:

http://www.apachelounge.com/download/additional/

http://www.apachelounge.com/download/win32/binaries/httpd-2.2.29-win32-VC9.zip

Python VC9 32 bit binaries from:

https://www.python.org/downloads/windows/

Python 2.6 Windows x86 MSI installer:

https://www.python.org/ftp/python/2.6.6/python-2.6.6.msi

Python 2.7 Windows x86 MSI installer:

https://www.python.org/ftp/python/2.7.9/python-2.7.9.msi

Python 3.2 Windows x86 MSI installer:

https://www.python.org/ftp/python/3.2.5/python-3.2.5.msi

## Apache24-win32-VC9 ##

Apache 2.4 VC9 32 bit binary from:

http://www.apachelounge.com/download/additional/

http://www.apachelounge.com/download/win32/binaries/httpd-2.4.10-win32-VC9.zip

Python VC9 32 bit binaries from:

https://www.python.org/downloads/windows/

Python 2.6 Windows x86 MSI installer:

https://www.python.org/ftp/python/2.6.6/python-2.6.6.msi

Python 2.7 Windows x86 MSI installer:

https://www.python.org/ftp/python/2.7.9/python-2.7.9.msi

Python 3.2 Windows x86 MSI installer:

https://www.python.org/ftp/python/3.2.5/python-3.2.5.msi

## Apache24-win32-VC10 ##

Apache 2.4 VC10 32 bit binary from:

http://www.apachelounge.com/download/win32/

http://www.apachelounge.com/download/win32/binaries/httpd-2.4.10-win32.zip

Python VC10 32 bit binaries from:

https://www.python.org/downloads/windows/

Python 3.3 Windows x86 MSI installer:

http://www.python.org/ftp/python/3.3.5/python-3.3.5.msi

Python 3.4 Windows x86 MSI installer:

https://www.python.org/ftp/python/3.4.2/python-3.4.2.msi

## Apache24-win64-VC10 ##

Apache 2.4 VC10 64 bit binary from:

http://www.apachelounge.com/download/win64/

http://www.apachelounge.com/download/win64/binaries/httpd-2.4.10-win64.zip

Python VC10 32 bit binaries from:

https://www.python.org/downloads/windows/

Python 3.3 Windows x86-64 MSI installer:

http://www.python.org/ftp/python/3.3.5/python-3.3.5.amd64.msi

Python 3.4 Windows x86-64 MSI installer:

https://www.python.org/ftp/python/3.4.2/python-3.4.2.amd64.msi

====

If you want to be able to compile any Python modules with C extensions yourself, then the compilers you need are:

====

## win32-VC9 ##

Microsoft Visual Studio 2008 Express

http://download.microsoft.com/download/E/8/E/E8EEB394-7F42-4963-A2D8-29559B738298/VS2008ExpressWithSP1ENUX1504728.iso

## win32-VC10 ##

Visual C++ 2010 Express

http://www.visualstudio.com/downloads/download-visual-studio-vs#DownloadFamilies_4

## win64-VC10 ##

Microsoft Windows SDK for Windows 7

http://www.microsoft.com/en-us/download/details.aspx?id=8279

====

All as clear as mud and so obvious that I cannot understand why anyone has any problems. :-)

Anyway, they work for me with the most basic of testing. For those having issues with the third party Windows binaries, try these. Pay very close attention though to which build of Apache you have. It must use the same Microsoft C/C++ compiler as Python uses, that is VC9 or VC 10. You should not use the VC11 build of Apache from ApacheLounge as expect that will cause problems.

Let me know which combination you are using if you have success. Hopefully you will not have problems, but if you do let me know, being very clear about what versions of packages you are using together.

Also let me know if I made any obvious mistakes in my description of the combinations above.

Thanks.

Graham

Graham Dumpleton

unread,
Dec 20, 2014, 6:27:56 AM12/20/14
to mod...@googlegroups.com, Nick Abelson

On 20/12/2014, at 10:13 PM, "Nick Abelson" <nick.a...@gmail.com> wrote:

> It looks like you've been very busy! Thank you
>
> What is the easiest way to find out which version of Apache I am
> running?

Run the Apache httpd.exe with the -V option:

C:\Apache24\bin\httpd.exe -V

The output would be something like:

Server version: Apache/2.4.10 (Win64)
Apache Lounge VC10 Server built: Jul 19 2014 12:25:58
Server's Module Magic Number: 20120211:36
Server loaded: APR 1.5.1, APR-UTIL 1.5.3
Compiled using: APR 1.5.1, APR-UTIL 1.5.3
Architecture: 64-bit
Server MPM: WinNT
threaded: yes (fixed thread count)
forked: no
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses disabled)
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/apache"
-D SUEXEC_BIN="/apache/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error.log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

You can see in my case that is VC10 and 64 bit.

> I know it is 2.4 but not sure if it is 32 or 64 bit version,
> nor VC9 or 10. I have checked the readme and there is nothing in there,
> nor the license.
>
> Will you be doing a 2.7 python/2.4 64 bit version of the binary?

The problem is that ApacheLounge doesn't actually provide a 64 bit version which has been compiled with VC9.

The only way therefore would be to attempt to run a 64 bit VC9 version of mod_wsgi within the 64 bit VC10 version of Apache.

As you are mixing VC9 with VC10 at that point, you can't be absolutely certain that things will be okay.

The ApacheLounge site says the VC10 Apache version can load VC9 Apache modules, but whether Python uses parts of the VC9 run time API which would preclude that I cannot be sure.

I do intend trying this combination to see if it may work, but I have to download yet another Microsoft compiler first as the Visual Studio Express 2008 only includes a usable 32 bit compiler.

> I don't
> want to move to version 3 of Python but am running a 64 bit laptop, so
> my assumption is that I installed the 64 bit version.

Just because you are running a 64 bit version of Windows doesn't prevent you from running 32 bit binaries, it can handle both. It just means you have to use 32 bit Python as well though. Overall you aren't likely going to notice any difference in running 32 bit variants of Apache and Python.

Graham

> Thanks
> ---
> This email is free from viruses and malware because avast! Antivirus protection is active.
> http://www.avast.com
>

Graham Dumpleton

unread,
Dec 20, 2014, 6:57:32 AM12/20/14
to mod...@googlegroups.com, Nick Abelson
Don't know what you mean in 'in PS'.

The command:

C:\Apache24\bin\httpd.exe -V

must be run manually in a command shell or other shell if using a decent terminal shell like bash.

The output should display in the terminal when run.

Graham

On 20/12/2014, at 10:34 PM, "Nick Abelson" <nick.a...@gmail.com> wrote:

> That didn't return anything in PS
> however I did track down the download I used and it is named:
> httpd-2.4.10-win64-VC11
> :(

Graham Dumpleton

unread,
Dec 20, 2014, 7:09:59 AM12/20/14
to Nick Abelson, mod...@googlegroups.com
Don't put quotes around the command and option. That is, use:

.\httpd.exe -V

not:

".\httpd.exe -V"

I verified that the quoting is the problem.

BTW, can you use reply-all. I am trying to keep this discussion on the mailing list as the tips am giving are generally useful to others as well.

Graham

On 20/12/2014, at 11:02 PM, "Nick Abelson" <nick.a...@gmail.com> wrote:

> Sorry PS = powershell on Windows - an enhanced DOS prompt
> see attached
> <Screenshot 2014-12-20 12.00.35.png>

Nick Abelson

unread,
Dec 20, 2014, 7:13:45 AM12/20/14
to Graham Dumpleton, mod...@googlegroups.com
That worked - thanks
Windows PowerShell
Copyright (C) 2013 Microsoft Corporation. All rights reserved.

PS C:\Users\nicka_000> cd..
PS C:\Users> cd,,
At line:1 char:3
+ cd,,
+ ~
Missing argument in parameter list.
At line:1 char:4
+ cd,,
+ ~
Missing argument in parameter list.
+ CategoryInfo : ParserError: (:) [],
ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingArgument

PS C:\Users> cd..
PS C:\> cd program files
Set-Location : A positional parameter cannot be found that accepts
argument 'files'.
At line:1 char:1
+ cd program files
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Location],
ParameterBindingException
+ FullyQualifiedErrorId :
PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetLocationCommand

PS C:\> C:\Program Files\Apache Software Foundation\Apache2.4\bin
C:\Program : The term 'C:\Program' is not recognized as the name of a
cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
At line:1 char:1
+ C:\Program Files\Apache Software Foundation\Apache2.4\bin
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Program:String) [],
CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

PS C:\> C:\Program Files\Apache Software Foundation\Apache2.4\C:\Program
Files\Apache Software Foundation\Apache2.4\bin\
httpd.exe -v
C:\Program : The term 'C:\Program' is not recognized as the name of a
cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
At line:1 char:1
+ C:\Program Files\Apache Software Foundation\Apache2.4\C:\Program
Files\Apache So ...
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Program:String) [],
CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

PS C:\> cd program~files
cd : Cannot find path 'C:\program~files' because it does not exist.
At line:1 char:1
+ cd program~files
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\program~files:String)
[Set-Location], ItemNotFoundException
+ FullyQualifiedErrorId :
PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand

PS C:\> cd "C:\Program Files\Apache Software Foundation\Apache2.4\bin"
PS C:\Program Files\Apache Software Foundation\Apache2.4\bin> httpd.exe
-v
httpd.exe : The term 'httpd.exe' is not recognized as the name of a
cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
At line:1 char:1
+ httpd.exe -v
+ ~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (httpd.exe:String) [],
CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException


Suggestion [3,General]: The command httpd.exe was not found, but does
exist in the current location. Windows PowerShell
does not load commands from the current location by default. If you
trust this command, instead type ".\httpd.exe". See
"get-help about_Command_Precedence" for more details.
PS C:\Program Files\Apache Software Foundation\Apache2.4\bin> httpd.exe
-V
httpd.exe : The term 'httpd.exe' is not recognized as the name of a
cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
At line:1 char:1
+ httpd.exe -V
+ ~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (httpd.exe:String) [],
CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException


Suggestion [3,General]: The command httpd.exe was not found, but does
exist in the current location. Windows PowerShell
does not load commands from the current location by default. If you
trust this command, instead type ".\httpd.exe". See
"get-help about_Command_Precedence" for more details.
PS C:\Program Files\Apache Software Foundation\Apache2.4\bin>
".httpd.exe -V"
.httpd.exe -V
PS C:\Program Files\Apache Software Foundation\Apache2.4\bin>
".\httpd.exe"
.\httpd.exe
PS C:\Program Files\Apache Software Foundation\Apache2.4\bin>
".\httpd.exe -V"
.\httpd.exe -V
PS C:\Program Files\Apache Software Foundation\Apache2.4\bin> get-help

TOPIC
Windows PowerShell Help System

SHORT DESCRIPTION
Displays help about Windows PowerShell cmdlets and concepts.

LONG DESCRIPTION
Windows PowerShell Help describes Windows PowerShell cmdlets,
functions, scripts, and modules, and explains concepts, including
the elements of the Windows PowerShell language.

Windows PowerShell does not include help files, but you can read the
help topics online, or use the Update-Help cmdlet to download help
files
to your computer and then use the Get-Help cmdlet to display the
help
topics at the command line.

You can also use the Update-Help cmdlet to download updated help
files
as they are released so that your local help content is never
obsolete.

Without help files, Get-Help displays auto-generated help for
cmdlets,
functions, and scripts.


ONLINE HELP
You can find help for Windows PowerShell online in the TechNet
Library
beginning at http://go.microsoft.com/fwlink/?LinkID=108518.

To open online help for any cmdlet or function, type:

Get-Help <cmdlet-name> -Online

UPDATE-HELP
To download and install help files on your computer:

1. Start Windows PowerShell with the "Run as administrator"
option.
2. Type:

Update-Help

After the help files are installed, you can use the Get-Help cmdlet
to
display the help topics. You can also use the Update-Help cmdlet to
download updated help files so that your local help files are always
up-to-date.

For more information about the Update-Help cmdlet, type:

Get-Help Update-Help -Online

or go to: http://go.microsoft.com/fwlink/?LinkID=210614


GET-HELP
The Get-Help cmdlet displays help at the command line from content
in
help files on your computer. Without help files, Get-Help displays
basic
help about cmdlets and functions. You can also use Get-Help to
display
online help for cmdlets and functions.

To get help for a cmdlet, type:

Get-Help <cmdlet-name>

To get online help, type:

Get-Help <cmdlet-name> -Online

The titles of conceptual topics begin with "About_".
To get help for a concept or language element, type:

Get-Help About_<topic-name>

To search for a word or phrase in all help files, type:

Get-Help <search-term>

For more information about the Get-Help cmdlet, type:

Get-Help Get-Help -Online

or go to: http://go.microsoft.com/fwlink/?LinkID=113316


EXAMPLES:
Save-Help : Download help files from the Internet and
saves
them on a file share.
Update-Help : Downloads and installs help files from
the
Internet or a file share.
Get-Help Get-Process : Displays help about the Get-Process
cmdlet.
Get-Help Get-Process -Online
: Opens online help for the Get-Process
cmdlet.
Help Get-Process : Displays help about Get-Process one page
at a time.
Get-Process -? : Displays help about the Get-Process
cmdlet.
Get-Help About_Modules : Displays help about Windows PowerShell
modules.
Get-Help remoting : Searches the help topics for the word
"remoting."

SEE ALSO:
about_Updatable_Help
Get-Help
Save-Help
Update-Help













PS C:\Program Files\Apache Software Foundation\Apache2.4\bin>
".\httpd.exe -V"
.\httpd.exe -V
PS C:\Program Files\Apache Software Foundation\Apache2.4\bin>
.\httpd.exe -V
Server version: Apache/2.4.2 (Win64)
Server built: May 11 2012 20:42:30
Server's Module Magic Number: 20120211:3
Server loaded: APR 1.4.6, APR-UTIL 1.4.1
Compiled using: APR 1.4.6, APR-UTIL 1.4.1
Architecture: 64-bit
Server MPM: WinNT
threaded: yes (fixed thread count)
forked: no
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses disabled)
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/apache"
-D SUEXEC_BIN="/apache/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error.log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
PS C:\Program Files\Apache Software Foundation\Apache2.4\bin>

Graham Dumpleton

unread,
Dec 20, 2014, 3:20:24 PM12/20/14
to Nick Abelson, mod...@googlegroups.com

On 20/12/2014, at 11:12 PM, Nick Abelson <nick.a...@gmail.com> wrote:

Server version: Apache/2.4.2 (Win64)

That you are using a much older Apache version and not from ApacheLounge may also not help.

The mod_wsgi binaries are built specifically for the ApacheLounge distribution.

The Apache Software Foundation stopped making available Windows binaries some time back.

Graham

Graham Dumpleton

unread,
Dec 20, 2014, 10:15:56 PM12/20/14
to mod...@googlegroups.com, Nick Abelson
Note that as far as compiling mod_wsgi goes, my comments about compiler at the end of the post still applies. I used makefiles to nmake direct and bypassed distutils. The makefiles are in the 'win32' directory of mod_wsgi source code. I will be updating instructions later on how to build yourself.

It seems though if you want to be able to build Python extensions with distutils, you have to do even more craziness. Someone just happened to have blogged about it.

http://blog.ionelmc.ro/2014/12/21/compiling-python-extensions-on-windows/

Graham

Graham Dumpleton

unread,
Dec 21, 2014, 8:39:17 PM12/21/14
to mod...@googlegroups.com, Nick Abelson
I think you are missing the point of the statement:

"""When using these, it is very very very important you use the matching versions of both Python and Apache. You cannot necessarily use VC9 binaries safely with a newer VC10 or VC11 variant of Apache. Same with using VC10 binaries with a VC11 variant of Apache."""

Over time Microsoft updates their compilers. Each different version generally uses a different runtime library. These libraries are labelled as VC9, VC10, VC11 for most recent Visual Studio and compiler releases.

Each of these runtime libraries are not completely ABI compatible.

So although Windows may technically allow you to dynamically load binary components compiled with different compilers and runtimes into the same process, those pieces of code cannot necessarily interoperate with each other.

If all the data structures and operations performed by the components compiled against different runtimes are hidden by high level abstract function calling interfaces, then you may be okay. The problem is where direct references to data structures are passed between components. This can be an issue because the size and layout of data structures implemented by these run time libraries can change between versions.

For example, you can't pass FILE objects between code compiled against different runtimes. You also cannot necessarily pass references to C++ objects from the C++ standard library such as std:string.

If you do pass such references to object between components compiled against different runtimes and the incompatible one attempts to then access the internals of the objects, based on its different view of what the layout of that object is, then a process crash, incorrect behaviour or data corruption could occur.

This is the underlying problem you are going to face and why it is important not too mix them.

So I can probably guarantee that you should be okay if all components are VC9, or all components are VC10, but if you start mixing them and you have a problem I can't really help you too much because it could be due to such problems as a I describe.

Now the ApacheLounge web site says that the VC11 Apache can load Apache modules compiled against VC9 to VC10 and as far as loading of dynamically loadable objects goes that is true as Windows allows it. That statement though doesn't mean you cannot have problems with ABI incompatibilities.

When one reads the forums for ApacheLounge they clarify that statement about what versions of modules can be loaded with Apache built for another run time and they qualify it to just the third party modules they have compiled and make available themselves. In other words, they have vetted those modules and determined that they only use high level abstract calling interfaces of Apache to create and pass around data and so believe there is no direct sharing of data structures that could cause problems.

They specifically say that that statement doesn't apply to other Apache modules such as mod_php for example.

Getting to you question as to whether I will ever supply a mod_wsgi guaranteed to be compatible with the VC11 versions of Apache.

Technically I cannot and I cannot do that for any available Python version.

This is because there is no Python version which was compiled with the VC11 compiler.

Even Python 3.5 looks like it may skip VC11 and usual VC12 instead.

The issue therefore is whether it is going to be safe to use a VC9 compiled mod_wsgi with VC11 Apache. That I can't tell you right now.

The interface between Apache and mod_wsgi is high level enough that no problematic data structures may be passed across, but I simply don't know.

If I say that you can do it and you have a problem, then I have put myself in a bad spot. So all I can say is that you can try, but I don't know if it will work. If it doesn't work, I would require you to go back and use a VC9 Apache to verify the problem occurs there first and then debug with VC9 compatible components.

Even so, right now I am only providing a 32 bit VC9 mod_wsgi and no 64 bit VC9 mod_wsgi. This is because there is no VC9 Apache which is 64 bit provided by ApacheLounge.

I would have to compile against a 64 bit VC10 Apache and so immediately having to content again with the problem that they are compiled with different runtime ABIs and so can't guarantee it will work.

Even if do that, would have to first solve the problem of how to even compile a 64 VC9 mod_wsgi. The standard Visual Studio Express 2008 doesn't readily support compiling 64 bit binaries. Instead I would have to download and install yet another Microsoft compiler I have found out about that does. That doesn't solve the concerns over ABI compatibility though.

Hopefully that explains things in more detail and hasn't just confused you more.

In summary though.

1. There is no 64 bit VC9 mod_wsgi for Python 2.7 which you could event attempt to use with a 65 bit Apache of any version.

2. I may look at trying to build a 64 bit VC9 mod_wsgi for Python 2.7, but because of ABI incompatibilities between VC9 runtime and runtimes used by 64 bit Apache versions available, cannot guarantee it would work anyway.

Graham

On 21/12/2014, at 11:38 PM, Nick Abelson <nick.a...@gmail.com> wrote:

Ok so I'll uninstall and re-install a version from Apache Lounge - given I am using Python 2.7 should I go for an older version of Apache or will you be doing a version of the wsgi for one of these?
Apache 2.4.10 Win64
[Apache VC11 Binary] httpd-2.4.10-win64-VC11.zip                             20 Oct '14 12.579K

  PGP Signature(Public PGP key), SHA1-SHA512 Checksums
Apache 2.4.10 Win32
[Apache VC11 Binary] httpd-2.4.10-win32-VC11.zip                             20 Oct '14 11.985K

  PGP Signature(Public PGP key), SHA1-SHA512 Checksums
thanks
 
------ Original Message ------
From: "Graham Dumpleton" <graham.d...@gmail.com>
To: "Nick Abelson" <nick.a...@gmail.com>
Sent: 20/12/2014 20:20:15
Subject: Re: Windows binaries for mod_wsgi 4.4.2 available for testing.
 



Graham Dumpleton

unread,
Dec 25, 2014, 5:53:22 PM12/25/14
to mod...@googlegroups.com, Nick Abelson
Please use reply-all and keep the discussion on the mod_wsgi list.

On 23/12/2014, at 12:50 AM, Nick Abelson <nick.a...@gmail.com> wrote:

Thanks - I think I followed that!
So given I have python 2.7 set up and don't want to upgrade to 3.x, I should take that as a starting point. I am running Python 2.7.9rc1 but can't see if that is VC9 or VC10,

I already specified in the summary I gave at:


that Python 2.7 is always compiled with the VC9 compiler.

unless the .9 refers to the VC number?

No. The third number in the Python version number is the patch level. It is only the major/minor version which indicates what compiler was used.

So going back to your original email I am interested in this combo:
 
   mod_wsgi-windows-4.4.2/Apache24-win32-VC9/modules/mod_wsgi-py27.so
 
Previously I installed Apache through an MSI file due to this information in the install readme:
  For complete documentation, see manual/platform/windows.html.en or
  
http://httpd.apache.org/docs/2.4/platform/windows.html.
 
  The Apache/Win32 binaries are distributed as Windows Installer packages 
  (.msi) named httpd-2.4.xx-win32-x86-no_ssl.msi for a version without mod_ssl
  and httpd-2.4.xx-win32-x86-openssl-1.0.1x.msi for a version including the
  mod_ssl plus the openssl library and command line utility.  Additional 64 bit
  binaries have similarly named -win64-x64 package names.  These packages
  may be unpacked without "installing" them by using the msiexec /a option.
 
  If you have unpacked a source distribution (named httpd-2.4.x-win32-src.zip, 
  without any -x86 or -x64 notation) you must compile the package yourself, 
  see the links mentioned above.  Unless you intended to do this, please look
  again for an .msi package in 
http://www.apache.org/dist/httpd/binaries/win32/
  and install that desired .msi package.
 
  The .msi package configures the httpd.conf file, and installs and starts 
  the Apache2.4 service for you.  It also installs plenty of useful shortcuts
  and the taskbar ApacheMonitor.  We strongly encourage you to use it.
 
I can't find an msi on Apache Lounge for the version of Apache that I need, which means I need to configure myself.

Why do you need '64 bit'? What other specific things related to your Python application are you running which require 64 bit?

Just because your Windows is 64 bit doesn't mean you cannot run 32 binaries.

If you are not trying to use any precompiled Python extensions which are specifically 64 bit, you can't quite happily use Python 2.7 32 bit version and then you should be good as then the compatible 32 bit versions of Apache and mod_wsgi are available.

I have looked here http://httpd.apache.org/docs/2.4/platform/windows.html but am not clear on how to make changes to the httpd file and what needs to be changed both in that file and if there are other files that also need amending. I have found this parameter: ServerRoot "C:\Apache24\" , which presumably needs to point to where the apache files are. Is there anything else I need to change? I can't seem to save the file after editing - permissions look fine but it get access denied. So can't even test whether that was the magic parameter that will make everything work!
 
Can you point me to any online resources that will offer more help? Or even an msi file for easy installation?

Have you tried looking at the ApacheLounge How To, Documentation and Tips?

As you are starting out and also need specifics for Windows, have you tried using the ApacheLounge forums? Since ApacheLounge is providing Windows specific versions, you will find a lot more like minded Windows people there who can help with the basics of setting up Apache on Windows.

Graham

Thanks
 
 
 
------ Original Message ------
From: "Graham Dumpleton" <graham.d...@gmail.com>

David Gleba

unread,
Feb 5, 2015, 2:50:23 PM2/5/15
to mod...@googlegroups.com, nick.a...@gmail.com


I am looking for windows mod_wsgi binaries compiled vc11 ap24 py279 win32 and possibly win64.

Does anyone where I can find these?

I have used the above vc9 mod_wsgi with success and I am hoping to find it compiled with vc11.

thanks in advance

David

Graham Dumpleton

unread,
Feb 5, 2015, 3:06:23 PM2/5/15
to mod...@googlegroups.com, nick.a...@gmail.com
Please read:


Technically you cannot have binaries compiled for VC11 of mod_wsgi because Python 2.7.9 requires the VC9 compiler be used and you cannot change that.

This is explained in that link.

In general, mixing binaries compiled against different ABIs will not work.

Whether they might depends on the data structures passed between code running in each type of binary.

The interface between Apache and mod_wsgi is simple enough that you might be able to use a VC9 mod_wsgi binary with a VC11 Apache, but it isn't absolutely guaranteed. Some people have had success though.

Even if you find it works, any C extensions of Python modules under Python 2.7 must be compiled with a VC9 compiler and you cannot change that.

More details can be found in that link.

Graham

--
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 modwsgi+u...@googlegroups.com.
To post to this group, send email to mod...@googlegroups.com.
Visit this group at http://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.

David Gleba

unread,
Feb 6, 2015, 12:26:26 PM2/6/15
to mod...@googlegroups.com
Thanks for this!
Very helpful!
Reply all
Reply to author
Forward
0 new messages