How to configure/activate mod_wsgi and apache 2.2 on windows 7

3,449 views
Skip to first unread message

Hanson

unread,
Apr 27, 2011, 6:37:34 AM4/27/11
to modwsgi
Please I have read the Quick Configuration Guide on
http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide but I
seem not to understand. I have downloaded and copied mod_wsgi-win32-
ap22py27-3.3.so to the modules directory in my apache installation
path.

Please how do I edit my httpd.conf, what and what will I add and where
will I add them?

I will be very grateful if you help me succeed in this task.
Thank you.

Graham Dumpleton

unread,
Apr 27, 2011, 6:46:54 AM4/27/11
to mod...@googlegroups.com

Where to put Windows binary and what to call it detailed in:

http://code.google.com/p/modwsgi/wiki/InstallationOnWindows

What to put in Apache configuration to have module loaded detailed in section:

http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide#Loading_Module_Into_Apache

Once you have that LoadModule line in place and Apache appears to
restart okay, then use hello world WSGI program in:

http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide

along with the WSGIScriptAlias directive as explained to test simple
script works.

For your actual application, how you configure things will depend on
what it is and how you want to expose it. Further guidelines in:

http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines

If this doesn't help, you will need to be more explicit about the
actual problem you are having.

Remember, the Apache error log is your friend and you should keep a
close eye on it for any sort of error message when you are having
problems. Also ensure to increase the Apache error log level to get
additional information out of mod_wsgi about what it is doing while
you sort things out. See:

http://code.google.com/p/modwsgi/wiki/DebuggingTechniques

Graham

Hanson Johnson

unread,
Apr 27, 2011, 8:56:01 AM4/27/11
to mod...@googlegroups.com
Hello Graham, thank you very much for your assistance. I was able to LoadModule wsgi_module modules/mod_wsgi.so in the httpd.conf file. I loaded it immediately after the last Loaded module there, I noticed it was alphabetically. But funny enough, when I restarted my apache, THE REQUESTED OPERATION FAILED!

Please what could be responsible for this?
Thank you.


--
You received this message because you are subscribed to the Google Groups "modwsgi" group.
To post to this group, send email to mod...@googlegroups.com.
To unsubscribe from this group, send email to modwsgi+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/modwsgi?hl=en.


Hanson Johnson

unread,
Apr 27, 2011, 10:06:36 AM4/27/11
to mod...@googlegroups.com
Hello Graham, thank you. I discovered my mistake, I added .so again to the LoadModule, when I removed it, apache is running fine. I am proceeding to the next step now.

WSGIScriptAlias /myapp /usr/local/www/wsgi-scripts/myapp.wsgi

This directive can only appear in the main Apache configuration files. The directive can be used at server scope but would normally be placed within the VirtualHost container for a particular site.


Please where is the VirtualHost container?
Thank you.


On Wed, Apr 27, 2011 at 3:46 AM, Graham Dumpleton <graham.d...@gmail.com> wrote:

Clodoaldo Neto

unread,
Apr 27, 2011, 12:03:54 PM4/27/11
to mod...@googlegroups.com
2011/4/27 Hanson Johnson <nijabi...@gmail.com>:

> Hello Graham, thank you. I discovered my mistake, I added .so again to the
> LoadModule, when I removed it, apache is running fine. I am proceeding to
> the next step now.
>
> WSGIScriptAlias /myapp /usr/local/www/wsgi-scripts/myapp.wsgi
>
> This directive can only appear in the main Apache configuration files. The
> directive can be used at server scope but would normally be placed within
> the VirtualHost container for a particular site.
>
> Please where is the VirtualHost container?

Look at the <VirtualHost> Directive in the Apache manual. Also make
more use of a search engine and use this list for specific mod_wsgi
questions because although Graham is extremely patient there are other
people subscribed who are not so tolerant with such very easily found
and out of topic questions.

Regards, Clodoaldo

Graham Dumpleton

unread,
Apr 27, 2011, 6:43:31 PM4/27/11
to mod...@googlegroups.com
Since you aren't likely to be hosting multiple sites under different
host names, don't worry about a VirtualHost, just place it at global
scope level in main Apache configuration file. Ie., at the end of the
httpd.conf file. With that should go the Directory block and other
directives within it that documentation says you will need.

If at some point in the future you need to use VirtualHost's then
start with Apache documentation to learn about them.

http://httpd.apache.org/docs/2.2/vhosts/

Graham

ANANDA SHANKAR DAS

unread,
Dec 29, 2016, 12:05:35 PM12/29/16
to modwsgi
Hi Graham,

I need the mod_wsgi whl file for win 64 bit-Apache webserver 2.2 +Python 3.5

I searched for it but could not get it. I have the one for apache version 2.4

Where do I get it?

when I try pip install mod-wsgi I get error

(r_web) C:\Users\Administrator\r_web\RosterWeb>pip install mod-wsgi

Collecting mod-wsgi
  Using cached mod_wsgi-4.5.11.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\ADMINI~1\AppData\Local\Temp\2\pip-build-xybcspx9\mod-wsgi\s
etup.py", line 150, in <module>
        'missing Apache httpd server packages.' % APXS)
    RuntimeError: The 'apxs' command appears not to be installed or is not execu
table. Please check the list of prerequisites in the documentation for this pack
age and install any missing Apache httpd server packages.

Graham Dumpleton

unread,
Dec 29, 2016, 2:48:47 PM12/29/16
to mod...@googlegroups.com
Using the pip install method has only been tested with Apache 2.4. As a result it only looks for Apache 2.4 by default.

If you want to try with Apache 2.2, set the environment variable in your shell:

    MOD_WSGI_APACHE_ROOTDIR="c:\Apache22"

and do what ever you need to do on Windows to export it so it is visible to the pip command when run.

Set the path for your Apache 2.2 installation appropriately.

If that works let me know and I will update setup.py to look for both c:\Apache24 and c:\Apache22 directories.

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.

ANANDA SHANKAR DAS

unread,
Dec 29, 2016, 4:06:43 PM12/29/16
to modwsgi
Hi Graham,

  I have   set   the  path to the  Apache  installation  "c:\Apache22"

C:\Users\Administrator>set MOD_WSGI_APACHE_ROOTDIR="c:\Apache22"

Please  let me know  about the  setup.py file   to  include  Apache2.2

and have   set the  path in windows 

Graham Dumpleton

unread,
Dec 29, 2016, 4:15:06 PM12/29/16
to mod...@googlegroups.com
On 30 Dec 2016, at 8:06 AM, ANANDA SHANKAR DAS <asda...@gmail.com> wrote:

Hi Graham,

  I have   set   the  path to the  Apache  installation  "c:\Apache22"

C:\Users\Administrator>set MOD_WSGI_APACHE_ROOTDIR="c:\Apache22"

Please  let me know  about the  setup.py file   to  include  Apache2.2

and have   set the  path in windows 

After doing that did you then run:

    pip install mod_wsgi

Once you have done that, if it works, you should be able to run:

    mod_wsgi-express module-config

and it will output what you need to configure Apache with to load the mod_wsgi module from where it is installed.

Then configure Apache for your WSGI application and check that it all works.

If you need a separate wheel file then do something like:

    pip wheel --wheel-dir=wheelhouse mod_wsgi

and that should give you a wheel file.

You do not need a wheel file if only installing for your own Apache as ‘pip install’ does what is required.

Why do you specifically need a wheel file?

Even you did need a wheel file, when installed from the wheel file, still use ‘mod_wsgi-express module-config’ to get what you need to configure Apache with to load the mod_wsgi module.

Graham

ANANDA SHANKAR DAS

unread,
Dec 29, 2016, 4:20:14 PM12/29/16
to modwsgi
Graham,

  I   still get the  same error when I  try pip install mod-wsgi . I  have   tried   both inside  and outside the   virtualenv   I created, same results

ANANDA SHANKAR DAS

unread,
Dec 29, 2016, 4:27:41 PM12/29/16
to modwsgi
No, I   donot specifically need the   wheel  file. I am very new to this. Excuse  my ignorache, but I   had    used the whl file in apache 2.4 and it worked perfectly. So I was looking for the  same thing  here as well. 

Graham Dumpleton

unread,
Dec 29, 2016, 4:28:00 PM12/29/16
to mod...@googlegroups.com
Try:

set MOD_WSGI_APACHE_ROOTDIR="c:\\Apache22

I don’t know how backslashes are handled in Windows environment variables and whether they need to be escaped.

Also ensure you are setting the correct path to where your Apache installation is. It must the directory which contains ‘include’ directory for Apache.

If you don’t set and export the environment variable it will keep complaining about APXS error as it falls back to that if it cannot find the Apache installation you are pointing at.

Graham

Graham Dumpleton

unread,
Dec 29, 2016, 11:05:38 PM12/29/16
to mod...@googlegroups.com
BTW, where are you even finding an Apache binary which has been compiled with VC14 compiler.

The latest I know of is compiled for VC10. As Python 3.5 requires VC14 compiler, there is no guarantee that Apache 2.2 compiled for VC10 will work.

Why must you use Apache 2.2? Why can’t you use Apache 2.4?

Graham

Graham Dumpleton

unread,
Dec 30, 2016, 12:32:23 AM12/30/16
to mod...@googlegroups.com
FWIW. If using Windows Powershell the environment variable needs to be set as:

    $env:MOD_WSGI_APACHE_ROOTDIR="c:\Apache2”

Again set the location to what you are actually using.

Using ‘set’ does not export it such that a child process finds it. A double backslash is not required.

I have also updated version of mod_wsgi in develop branch of the GitHub repo to look for C:\Apache22 and C:\Apache2 automatically.

So try:


But if your Apache is not in C:\Apache24, C:\Apache22 or C:\Apache2, set the environment variable.

The install script will also now generate better errors now if you specify a wrong location or default searches fail on Windows.

Graham

ANANDA SHANKAR DAS

unread,
Dec 30, 2016, 2:04:38 AM12/30/16
to modwsgi
Graham,

I  could  not   make  it to work.  Using  Apache 2.2  is a  production requirement. I will  try to sort    this out. Thanks   for helping me  in understanding  the  issue.

ANANDA SHANKAR DAS

unread,
Dec 30, 2016, 5:01:33 AM12/30/16
to modwsgi
Hi Graham, 

I  tried your  steps  , I get the  error as follows:

(r_web) C:\Users\Administrator\r_web\RosterWeb>pip install https://github.com/Gr
ahamDumpleton/mod_wsgi/archive/develop.zip
83kB)
    100% |################################| 788kB 328kB/s
Installing collected packages: mod-wsgi
  Running setup.py install for mod-wsgi ... error
    Complete output from command c:\users\administrator\envs\r_web\scripts\pytho
n.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\ADMINI~1\\AppData\
\Local\\Temp\\2\\pip-5h4juafu-build\\setup.py';f=getattr(tokenize, 'open', open)
(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __fi
le__, 'exec'))" install --record C:\Users\ADMINI~1\AppData\Local\Temp\2\pip-zt11
8dzx-record\install-record.txt --single-version-externally-managed --compile --i
nstall-headers c:\users\administrator\envs\r_web\include\site\python3.5\mod-wsgi
:
    c:\python35\Lib\distutils\dist.py:261: UserWarning: Unknown distribution opt
ion: 'bugtrack_url'
      warnings.warn(msg)
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.5
    creating build\lib.win-amd64-3.5\mod_wsgi
    copying src\__init__.py -> build\lib.win-amd64-3.5\mod_wsgi
    creating build\lib.win-amd64-3.5\mod_wsgi\server
    copying src\server\apxs_config.py -> build\lib.win-amd64-3.5\mod_wsgi\server

    copying src\server\environ.py -> build\lib.win-amd64-3.5\mod_wsgi\server
    copying src\server\__init__.py -> build\lib.win-amd64-3.5\mod_wsgi\server
    creating build\lib.win-amd64-3.5\mod_wsgi\server\management
    copying src\server\management\__init__.py -> build\lib.win-amd64-3.5\mod_wsg
i\server\management
    creating build\lib.win-amd64-3.5\mod_wsgi\server\management\commands
    copying src\server\management\commands\runmodwsgi.py -> build\lib.win-amd64-
3.5\mod_wsgi\server\management\commands
    copying src\server\management\commands\__init__.py -> build\lib.win-amd64-3.
5\mod_wsgi\server\management\commands
    creating build\lib.win-amd64-3.5\mod_wsgi\docs
    copying docs\_build\html\__init__.py -> build\lib.win-amd64-3.5\mod_wsgi\doc
s
    creating build\lib.win-amd64-3.5\mod_wsgi\images
    copying images\__init__.py -> build\lib.win-amd64-3.5\mod_wsgi\images
    copying images\snake-whiskey.jpg -> build\lib.win-amd64-3.5\mod_wsgi\images
    running build_ext
    building 'mod_wsgi.server.mod_wsgi' extension
    creating build\temp.win-amd64-3.5
    creating build\temp.win-amd64-3.5\Release
    creating build\temp.win-amd64-3.5\Release\src
    creating build\temp.win-amd64-3.5\Release\src\server
    cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ic:\Apache2/include -Ic:\python3
5\include -Ic:\python35\include /Tcsrc/server\mod_wsgi.c /Fobuild\temp.win-amd64
-3.5\Release\src/server\mod_wsgi.obj
    error: command 'cl.exe' failed: No such file or directory

    ----------------------------------------
Command "c:\users\administrator\envs\r_web\scripts\python.exe -u -c "import setu
ptools, tokenize;__file__='C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\2\\pip-5h4
juafu-build\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read()
.replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install
--record C:\Users\ADMINI~1\AppData\Local\Temp\2\pip-zt118dzx-record\install-reco
rd.txt --single-version-externally-managed --compile --install-headers c:\users\
administrator\envs\r_web\include\site\python3.5\mod-wsgi" failed with error code
 1 in C:\Users\ADMINI~1\AppData\Local\Temp\2\pip-5h4juafu-build\

Graham Dumpleton

unread,
Dec 30, 2016, 5:14:37 AM12/30/16
to mod...@googlegroups.com

ANANDA SHANKAR DAS

unread,
Dec 30, 2016, 5:35:21 AM12/30/16
to modwsgi
Yes, tried that  got the  same  error. Now  I downgraded to   python  3.4.3      since   few   packages  in the   build tool  didnot install and I had to skip it. Found out in    some forums   that  I need to install Visual Studio 2015. But its   incompatible to windows  server 2008,  so   downgraded  to python 3.4   Could   you please   help me   with the  mod_wsgi   for this

Graham Dumpleton

unread,
Dec 30, 2016, 5:39:49 AM12/30/16
to mod...@googlegroups.com
Try doing the exact same thing but with Python 3.4.

So long as you have the compiler installed and can install using pip any Python packages with C extensions, then technically you can use ‘pip install mod_wsgi’ to get the mod_wsgi module built, even if I haven’t myself tried it.

From memory Python 3.4 uses VC10, so if can, Apache should also be compiled with VC10 to avoid mixing ABI versions for objects.

Graham 

ANANDA SHANKAR DAS

unread,
Dec 30, 2016, 6:24:20 AM12/30/16
to modwsgi
Tried   the  same  as   mentioned in the  error below, still  same.


Whatever   mentioned in error   has   been installed   .




(r_web) C:\Users\Administrator\r_web\RosterWeb>pip install https://github.com/Gr
ahamDumpleton/mod_wsgi/archive/develop.zip
83kB)
    100% |################################| 788kB 504kB/s
Installing collected packages: mod-wsgi
  Running setup.py install for mod-wsgi ... error
    Complete output from command c:\users\administrator\envs\r_web\scripts\pytho
n.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\ADMINI~1\\AppData\
\Local\\Temp\\2\\pip-jani9ah8-build\\setup.py';f=getattr(tokenize, 'open', open)
(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __fi
le__, 'exec'))" install --record C:\Users\ADMINI~1\AppData\Local\Temp\2\pip-jbgq
6g2n-record\install-record.txt --single-version-externally-managed --compile --i
nstall-headers c:\users\administrator\envs\r_web\include\site\python3.4\mod-wsgi
:
    c:\python34\Lib\distutils\dist.py:260: UserWarning: Unknown distribution opt
ion: 'bugtrack_url'
      warnings.warn(msg)
    running install
    running build
    running build_py
    creating build
    creating build\lib.win32-3.4
    creating build\lib.win32-3.4\mod_wsgi
    copying src\__init__.py -> build\lib.win32-3.4\mod_wsgi
    creating build\lib.win32-3.4\mod_wsgi\server
    copying src\server\apxs_config.py -> build\lib.win32-3.4\mod_wsgi\server
    copying src\server\environ.py -> build\lib.win32-3.4\mod_wsgi\server
    copying src\server\__init__.py -> build\lib.win32-3.4\mod_wsgi\server
    creating build\lib.win32-3.4\mod_wsgi\server\management
    copying src\server\management\__init__.py -> build\lib.win32-3.4\mod_wsgi\se
rver\management
    creating build\lib.win32-3.4\mod_wsgi\server\management\commands
    copying src\server\management\commands\runmodwsgi.py -> build\lib.win32-3.4\
mod_wsgi\server\management\commands
    copying src\server\management\commands\__init__.py -> build\lib.win32-3.4\mo
d_wsgi\server\management\commands
    creating build\lib.win32-3.4\mod_wsgi\docs
    copying docs\_build\html\__init__.py -> build\lib.win32-3.4\mod_wsgi\docs
    creating build\lib.win32-3.4\mod_wsgi\images
    copying images\__init__.py -> build\lib.win32-3.4\mod_wsgi\images
    copying images\snake-whiskey.jpg -> build\lib.win32-3.4\mod_wsgi\images
    running build_ext
    building 'mod_wsgi.server.mod_wsgi' extension
    error: Microsoft Visual C++ 10.0 is required. Get it with "Microsoft Windows

    ----------------------------------------
Command "c:\users\administrator\envs\r_web\scripts\python.exe -u -c "import setu
ptools, tokenize;__file__='C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\2\\pip-jan
i9ah8-build\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read()
.replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install
--record C:\Users\ADMINI~1\AppData\Local\Temp\2\pip-jbgq6g2n-record\install-reco
rd.txt --single-version-externally-managed --compile --install-headers c:\users\
administrator\envs\r_web\include\site\python3.4\mod-wsgi" failed with error code
 1 in C:\Users\ADMINI~1\AppData\Local\Temp\2\pip-jani9ah8-build\

ANANDA SHANKAR DAS

unread,
Dec 30, 2016, 7:02:53 AM12/30/16
to modwsgi
Just to add   that  I am using the vc10  version of apache 2.2

ANANDA SHANKAR DAS

unread,
Dec 30, 2016, 1:21:29 PM12/30/16
to modwsgi
HI Graham,

  I installed   Visual Studio 10   Professional    , with that    its a different     error:

slate_name@16 referenced in function _wsgi_register_hooks
    mod_wsgi.obj : error LNK2019: unresolved external symbol __imp__ap_hook_chil
d_init@16 referenced in function _wsgi_register_hooks
    mod_wsgi.obj : error LNK2019: unresolved external symbol __imp__ap_hook_post
_config@16 referenced in function _wsgi_register_hooks
    wsgi_apache.obj : error LNK2019: unresolved external symbol __imp__apr_conv_
utf8_to_ucs2@16 referenced in function _wsgi_utf8_to_unicode_path
    wsgi_buckets.obj : error LNK2001: unresolved external symbol _apr_bucket_sha
red_copy
    wsgi_buckets.obj : error LNK2001: unresolved external symbol _apr_bucket_sha
red_split
    wsgi_buckets.obj : error LNK2019: unresolved external symbol __imp__apr_buck
et_free referenced in function _wsgi_python_bucket_destroy
    wsgi_buckets.obj : error LNK2019: unresolved external symbol __imp__apr_buck
et_shared_destroy@4 referenced in function _wsgi_python_bucket_destroy
    wsgi_buckets.obj : error LNK2019: unresolved external symbol __imp__apr_buck
et_shared_make@20 referenced in function _wsgi_apr_bucket_python_make
    wsgi_buckets.obj : error LNK2019: unresolved external symbol __imp__apr_buck
et_alloc referenced in function _wsgi_apr_bucket_python_make
    wsgi_interp.obj : error LNK2019: unresolved external symbol __imp__ap_get_se
rver_built@0 referenced in function _newInterpreterObject
    wsgi_interp.obj : error LNK2019: unresolved external symbol __imp__ap_get_se
rver_description@0 referenced in function _newInterpreterObject
    wsgi_metrics.obj : error LNK2019: unresolved external symbol __imp__ap_get_s
coreboard_worker@8 referenced in function _wsgi_server_metrics
    wsgi_metrics.obj : error LNK2019: unresolved external symbol __imp__ap_get_s
coreboard_process@4 referenced in function _wsgi_server_metrics
    wsgi_metrics.obj : error LNK2019: unresolved external symbol __imp__ap_exist
s_scoreboard_image@0 referenced in function _wsgi_server_metrics
    wsgi_thread.obj : error LNK2019: unresolved external symbol __imp__apr_threa
dkey_private_set@8 referenced in function _wsgi_thread_info
    wsgi_thread.obj : error LNK2019: unresolved external symbol __imp__apr_threa
dkey_private_get@8 referenced in function _wsgi_thread_info
    build\lib.win32-3.4\mod_wsgi\server\mod_wsgi.pyd : fatal error LNK1120: 103
unresolved externals
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\B
IN\\link.exe' failed with exit status 1120

    ----------------------------------------
Command "c:\users\administrator\envs\r_web\scripts\python.exe -u -c "import setu
ptools, tokenize;__file__='C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\2\\pip-2sr
owup3-build\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read()
.replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install
--record C:\Users\ADMINI~1\AppData\Local\Temp\2\pip-d76aqi9c-record\install-reco
rd.txt --single-version-externally-managed --compile --install-headers c:\users\
administrator\envs\r_web\include\site\python3.4\mod-wsgi" failed with error code
 1 in C:\Users\ADMINI~1\AppData\Local\Temp\2\pip-2srowup3-build\

Graham Dumpleton

unread,
Dec 30, 2016, 3:12:40 PM12/30/16
to mod...@googlegroups.com
Where did you get this Apache 2 binary package from? What site?

Can you run with:

    pip install -v https://github.com/GrahamDumpleton/mod_wsgi/archive/develop.zip

The -v option will show the actual compiler commands and output.

I need to see the main link like from the compilation.

Also, what is in the directory:

    c:\Apache2\lib

Graham

ANANDA SHANKAR DAS

unread,
Dec 30, 2016, 3:30:57 PM12/30/16
to modwsgi
I have   downloaded apache 2.2  from https://www.apachelounge.com/download/win64/

In  C:\Apache2\lib   I have

C:\Apache2\lib>dir
 Volume in drive C has no label.
 Volume Serial Number is 2806-D34A

 Directory of C:\Apache2\lib

30/12/2016  11:58    <DIR>          .
30/12/2016  11:58    <DIR>          ..
30/12/2016  11:58         1,921,920 apr-1.lib
30/12/2016  11:58         1,199,734 aprutil-1.lib
30/12/2016  11:58            62,526 libapr-1.exp
30/12/2016  11:58           103,936 libapr-1.lib
30/12/2016  11:58             3,929 libapriconv-1.exp
30/12/2016  11:58             7,404 libapriconv-1.lib
30/12/2016  11:58            38,621 libaprutil-1.exp
30/12/2016  11:58            64,916 libaprutil-1.lib
30/12/2016  11:58            60,508 libhttpd.exp
30/12/2016  11:58            99,028 libhttpd.lib
30/12/2016  11:58             9,775 mod_dav.exp
30/12/2016  11:58            16,660 mod_dav.lib
30/12/2016  11:58           600,878 xml.lib
              13 File(s)      4,189,835 bytes
               2 Dir(s)   1,870,245,888 bytes free

Its   a long output, the  tail is as follows

coreboard_process@4 referenced in function _wsgi_server_metrics
    wsgi_metrics.obj : error LNK2019: unresolved external symbol __imp__ap_exist
s_scoreboard_image@0 referenced in function _wsgi_server_metrics
    wsgi_thread.obj : error LNK2019: unresolved external symbol __imp__apr_threa
dkey_private_set@8 referenced in function _wsgi_thread_info
    wsgi_thread.obj : error LNK2019: unresolved external symbol __imp__apr_threa
dkey_private_get@8 referenced in function _wsgi_thread_info
    build\lib.win32-3.4\mod_wsgi\server\mod_wsgi.pyd : fatal error LNK1120: 103
unresolved externals
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\B
IN\\link.exe' failed with exit status 1120
error
Cleaning up...
  Removing source in C:\Users\ADMINI~1\AppData\Local\Temp\2\pip-epmtkelp-build
Command "c:\users\administrator\envs\r_web\scripts\python.exe -u -c "import setu
ptools, tokenize;__file__='C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\2\\pip-epm
tkelp-build\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read()
.replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install
--record C:\Users\ADMINI~1\AppData\Local\Temp\2\pip-1w7syfk4-record\install-reco
rd.txt --single-version-externally-managed --compile --install-headers c:\users\
administrator\envs\r_web\include\site\python3.4\mod-wsgi" failed with error code
 1 in C:\Users\ADMINI~1\AppData\Local\Temp\2\pip-epmtkelp-build\
Exception information:
Traceback (most recent call last):
  File "c:\users\administrator\envs\r_web\lib\site-packages\pip\basecommand.py",
 line 215, in main
    status = self.run(options, args)
  File "c:\users\administrator\envs\r_web\lib\site-packages\pip\commands\install
.py", line 342, in run
    prefix=options.prefix_path,
  File "c:\users\administrator\envs\r_web\lib\site-packages\pip\req\req_set.py",
 line 784, in install
    **kwargs
  File "c:\users\administrator\envs\r_web\lib\site-packages\pip\req\req_install.
py", line 878, in install
    spinner=spinner,
  File "c:\users\administrator\envs\r_web\lib\site-packages\pip\utils\__init__.p
y", line 707, in call_subprocess
    % (command_desc, proc.returncode, cwd))
pip.exceptions.InstallationError: Command "c:\users\administrator\envs\r_web\scr
ipts\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\ADMINI~1
\\AppData\\Local\\Temp\\2\\pip-epmtkelp-build\\setup.py';f=getattr(tokenize, 'op
en', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(
code, __file__, 'exec'))" install --record C:\Users\ADMINI~1\AppData\Local\Temp\
2\pip-1w7syfk4-record\install-record.txt --single-version-externally-managed --c
ompile --install-headers c:\users\administrator\envs\r_web\include\site\python3.
4\mod-wsgi" failed with error code 1 in C:\Users\ADMINI~1\AppData\Local\Temp\2\p
ip-epmtkelp-build\

ANANDA SHANKAR DAS

unread,
Dec 30, 2016, 3:32:16 PM12/30/16
to modwsgi

All   I  did is unzip the    file  downloaded  to C: Apache2  and then  go to the   bin folder and run httpd -k  install

Graham Dumpleton

unread,
Dec 30, 2016, 3:35:29 PM12/30/16
to mod...@googlegroups.com
I need the part of the output where link.exe is run and where can see all the command line arguments given to link.exe. It will be somewhere just before all the unresolved symbol errors. I need from the link.exe command through to the cleaning up message.

Graham

ANANDA SHANKAR DAS

unread,
Dec 30, 2016, 3:38:25 PM12/30/16
to modwsgi
Please  find the   complete output attached
mod_wsgi_output.txt

ANANDA SHANKAR DAS

unread,
Dec 30, 2016, 3:43:51 PM12/30/16
to modwsgi
Hi Graham,

  I have  attached the   entire  output to  the   file  attached
Graham

HI Graham,

Graham,

Graham,

<div dir="ltr" style="font-family: Helvetica; font-size: 16px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; w
mod_wsgi_output.txt

Graham Dumpleton

unread,
Dec 30, 2016, 3:43:55 PM12/30/16
to mod...@googlegroups.com
Are you sure you have installed same architecture for both Python and Apache?

That is, that they are both 64 bit?

Are you sure Python isn’t the 32 bit version?

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 https://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.
<mod_wsgi_output.txt>

ANANDA SHANKAR DAS

unread,
Dec 30, 2016, 4:11:08 PM12/30/16
to modwsgi
Graham,

  Thanks    for  pointing  that out, I  dont know  how  I ended   up   using 32 bit version of python 3.4. Anyway   I  corrected    that  and I ran  the   command you gave   me earlier,  please  find the  output attached.

I   guess  I need to find the  mod_wsgi.so and copy it in the module   dir and make   the following changes in conf file

LoadModule wsgi_module modules/mod_wsgi.so
<VirtualHost *>
        WSGIScriptAlias /index C:\Users\Administrator\r_web\RosterWeb\RosterWeb\Roster.wsgi
        <Directory C:\Users\Administrator\r_web\RosterWeb\RosterWeb\>
                Order deny,allow
                Require all granted
        </Directory>
</VirtualHost>

Right ?
mod_wsgi_output_sucess.txt

Graham Dumpleton

unread,
Dec 30, 2016, 4:15:54 PM12/30/16
to mod...@googlegroups.com
As already mentioned, run the command:

    mod_wsgi-express module-config

after mod_wsgi is installed and it will tell you the LoadModule line to use, as well as directives for LoadFile and WSGIPythonHome which ensure correct Python is used.

There isn’t a need to copy the mod_wsgi.so file into place. the directives from that command will set things up to use it from where it is installed.

So run the command. Let me know what it shows so can verify that I think it looks good.

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 https://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.
<mod_wsgi_output_sucess.txt>

ANANDA SHANKAR DAS

unread,
Dec 30, 2016, 4:22:13 PM12/30/16
to modwsgi
Here  is   output of the  command


(r_web) C:\Users\Administrator\r_web\RosterWeb>mod_wsgi-express module-config
LoadFile "c:/python34/python34.dll"
LoadModule wsgi_module "c:/users/administrator/envs/r_web/lib/site-packages/mod_wsgi/server/mod_wsgi.pyd"
WSGIPythonHome "c:/users/administrator/envs/r_web"

Graham Dumpleton

unread,
Dec 30, 2016, 4:42:42 PM12/30/16
to mod...@googlegroups.com
On 31 Dec 2016, at 8:22 AM, ANANDA SHANKAR DAS <asda...@gmail.com> wrote:

Here  is   output of the  command

Looks good. Use all of that instead of your existing LoadModule line.


(r_web) C:\Users\Administrator\r_web\RosterWeb>mod_wsgi-express module-config
LoadFile "c:/python34/python34.dll”

This line is forcibly linking the Python runtime DLL into Apache to avoid problems with Apache being able to find it. Normally the DLL would have to be in one of the standard library/bin directories that Windows looks in.

LoadModule wsgi_module "c:/users/administrator/envs/r_web/lib/site-packages/mod_wsgi/server/mod_wsgi.pyd”

This loads the mod_wsgi module. When using the ‘pip install’ method on Windows, it has a ‘.pyd’ extension rather than ‘.so’, but that is fine.

WSGIPythonHome "c:/users/administrator/envs/r_web”

This says where the Python installation, or Python virtual environment is located that ‘pip install’ was run out of. This is done explicitly again to avoid problems with correct installation being found.

Do note that if this is a Python virtual environment and you destroy the Python virtual environment, you will remove the mod_wsgi module as well and Apache will then fail to start up. Although, if Apache is running at the time, you likely wouldn’t be able to remove the mod_wsgi module anyway as it would be in use.

If you do need to recreate the a Python virtual environment, you would need to shutdown Apache first, then destroy it, reinstall any modules include mod_wsgi and then restart Apache, updating those directives if necessary.

Graham

ANANDA SHANKAR DAS

unread,
Dec 30, 2016, 5:26:13 PM12/30/16
to modwsgi
Graham,

 Could you please   verify the   conf file attached, it says   "the requested operation failed" while trying to start apache 2.2  from the  apache  monitor. I have put lines related to mod_wsgi at  the end.
HI Graham,

  &nb
httpd.conf

Graham Dumpleton

unread,
Dec 30, 2016, 5:48:47 PM12/30/16
to mod...@googlegroups.com
Stop Apache from the monitor.

Then go and start Apache manually from the command line using ‘start’ so it is running as you and not special service.

Quite possibly whatever service account Apache runs as cannot access the Python virtual environment under your account due to lack of access permissions.

Also, what messages are in the Apache error log. That may better explain what went wrong.

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 https://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.
<httpd.conf>

ANANDA SHANKAR DAS

unread,
Dec 30, 2016, 6:32:36 PM12/30/16
to modwsgi
Thanks   much, got my project up and running.

  On  trying to manually start from command prompt got the   error.

C:\Apache2\bin>httpd -k start
httpd: Syntax error on line 493 of C:/Apache2/conf/httpd.conf: Cannot load c:/python34/python34.dll into server: The specified module could not be found.

On checking the   path    in the  system , I found that  the path is C:\Python34\DLLs\python3.dll   

I replaced the  path and  Apache   started   without any issues.

  Thanks much for  the   help. This  is   my first project (web application) in Python /Flask   and I  could   not have  hosted/completed this without your help !!!
HI Graham,

Graham Dumpleton

unread,
Dec 30, 2016, 7:10:04 PM12/30/16
to mod...@googlegroups.com
Thanks for letting me know. The DLL location must be different in older Python versions. I will need to make the script check different locations

Graham
--

Graham Dumpleton

unread,
Dec 30, 2016, 7:27:32 PM12/30/16
to mod...@googlegroups.com
If you could run again:


This time with the -U option to force it to be reinstalled and run again:

    mod_wsgi-express module-config

to confirm the path is now generated correctly, that would be great.

You may need to do this when Apache is stopped as it will be trying to override the mod_wsgi module, which would be in use by Apache, thus preventing it. Not sure how pip on Windows will handle that.

Thanks.

Graham

ANANDA SHANKAR DAS

unread,
Dec 31, 2016, 1:45:45 AM12/31/16
to modwsgi
Hi Graham,

 Yrs, this time the  output for config is correct


(r_web) C:\Users\Administrator\r_web\RosterWeb\RosterWeb>pip install -U https://github.com/GrahamDumpleton/mod_wsgi/archive/develop.zip
     - 788kB 1.1MB/s
Installing collected packages: mod-wsgi
  Found existing installation: mod-wsgi 4.5.12
    Uninstalling mod-wsgi-4.5.12:
      Successfully uninstalled mod-wsgi-4.5.12
  Running setup.py install for mod-wsgi ... done
Successfully installed mod-wsgi-4.5.12

(r_web) C:\Users\Administrator\r_web\RosterWeb\RosterWeb>mod_wsgi-express module-config
LoadFile "c:/python34/DLLs/python34.dll"
LoadModule wsgi_module "c:/users/administrator/envs/r_web/lib/site-packages/mod_wsgi/server/mod_wsgi.pyd"
WSGIPythonHome "c:/users/administrator/envs/r_web"

HI Graham,

ANANDA SHANKAR DAS

unread,
Dec 31, 2016, 1:48:35 AM12/31/16
to modwsgi
Sorry, its not actually correct .

It is  :

LoadFile "c:/python34/DLLs/python34.dll"

Should be :

LoadFile "c:/python34/DLLs/python3.dll"

Graham Dumpleton

unread,
Dec 31, 2016, 2:06:38 AM12/31/16
to mod...@googlegroups.com
That’s odd. What are the names of all the files in the DLLs directory?

ANANDA SHANKAR DAS

unread,
Dec 31, 2016, 2:23:45 AM12/31/16
to modwsgi
C:\Python34\DLLs>dir
 Volume in drive C has no label.
 Volume Serial Number is 2806-D34A

 Directory of C:\Python34\DLLs

31/12/2016  01:55    <DIR>          .
31/12/2016  01:55    <DIR>          ..
03/08/2013  17:18            19,790 py.ico
03/08/2013  17:18            19,790 pyc.ico
06/10/2014  22:16           169,472 pyexpat.pyd
06/10/2014  22:13            78,848 python3.dll
06/10/2014  22:16            10,752 select.pyd
06/10/2014  22:14           628,224 sqlite3.dll
24/11/2013  20:13         1,591,808 tcl86t.dll
24/11/2013  20:14         1,943,040 tk86t.dll
06/10/2014  22:16           762,880 unicodedata.pyd
06/10/2014  22:16            10,240 winsound.pyd
06/10/2014  22:16            62,976 _bz2.pyd
06/10/2014  22:16           108,032 _ctypes.pyd
06/10/2014  22:16            15,360 _ctypes_test.pyd
06/10/2014  22:16           242,688 _decimal.pyd
06/10/2014  22:16           167,936 _elementtree.pyd
06/10/2014  22:16         1,147,904 _hashlib.pyd
06/10/2014  22:16           136,192 _lzma.pyd
06/10/2014  22:16            64,000 _msi.pyd
06/10/2014  22:16            14,848 _multiprocessing.pyd
06/10/2014  22:16            25,600 _overlapped.pyd
06/10/2014  22:16            52,224 _socket.pyd
06/10/2014  22:16            58,880 _sqlite3.pyd
06/10/2014  22:16         1,729,536 _ssl.pyd
06/10/2014  22:16            35,328 _testbuffer.pyd
06/10/2014  22:16            56,320 _testcapi.pyd
06/10/2014  22:16             7,168 _testimportmultiple.pyd
06/10/2014  22:16            43,008 _tkinter.pyd
              27 File(s)      9,202,844 bytes
               2 Dir(s)     878,366,720 bytes free

Graham Dumpleton

unread,
Jan 2, 2017, 6:03:26 PM1/2/17
to mod...@googlegroups.com
I should have fixed this now in latest release on PyPi. No need to install from GitHub now.

Seems the following is the case.

* With Python 2.X, the DLL is installed in system directories somewhere, not left in Python installation.

* With Python <3.4, the DLLs directory exists and library is pythonX.dll in that directory.

* With Python >3.4, there is no DLLs directory but DLL exists in top directory as pythonXY.dll.

I have adjusted script accordingly and even pulled out an old VM from my draw to confirm that pip install works on 2.7 and 3.4 as well, ad gives correct results. Didn’t check Apache didn’t blow up, but close enough. :-)

Graham

Reply all
Reply to author
Forward
0 new messages