最近在學習Django,因此需要mod_wsgi,我下載了mod_wsgi-4.4.11,之前版本的mod_wsgi還有二進制版本提供的,但是4.4.11版本已經不提供二進制版本了,只能下載源代碼自己編譯了,下載地址:https://github.com/GrahamDumpleton/mod_wsgi/releases。
下載解壓后,在win32目錄下找到與自己的python和apache服務器版本對應的mk文件,我安裝的是python3.4和apache2.4,因此就找到ap24py34-win32-VC10.mk,用記事本打開,將其中的APACHE_ROOTDIR和PYTHON_ROOTDIR修改為自己的apache和python的根目錄。
然后就是打開命令行設置一下環境進行編譯了,設置環境變量,這里需要設置path, include和lib,在cmd窗口中輸入:
set path = C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin;C:\Program Files\Microsoft Visual Studio 10.0\VC\bin;C:\Program Files\Microsoft Visual Studio 10.0\Common7; set include = C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include;C:\Program Files\Microsoft Visual Studio 10.0\VC\include; set lib = C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib;C:\Program Files\Microsoft Visual Studio 10.0\VC\lib;
設置好環境變量,然后輸入:nmake -f ap24py34-win32-VC10.mk install,就開始進行編譯了。
但是編譯過程中出現錯誤:
錯誤提示信息說是因為wsgi_memory.obj中無法解析外部符號_GetProcessMemoryInfo@12,也就是說找不到Windows調用GetProcessMemoryInfo的實現,因此,在src\server目錄中找到wsgi_memory.c,在該文件中添加下面的代碼:
#pragma once #pragma message("Psapi.h --> Linking with Psapi.lib") #pragma comment(lib,"Psapi.lib")
然后再進行編譯,就可以看到編譯成功了,並且mod_wsgi.so文件也自動拷貝到apache服務器目錄中去了!