前提条件
http://blog.csdn.net/hellokandy/article/details/53379724
Visual Studio 6 : vc6
Visual Studio 2003 : vc7
Visual Studio 2005 : vc8
Visual Studio 2008 : vc9
Visual Studio 2010 : vc10
Visual Studio 2012 : vc11
Visual Studio 2013 : vc12
Visual Studio 2015 : vc14
python中VC编译器版本的对应关系
http://blog.csdn.net/davidsu33/article/details/51507727
例如:Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] on win32
For this version of Visual C++ Use this compiler version Visual C++ 4.x MSC_VER=1000 Visual C++ 5 MSC_VER=1100 Visual C++ 6 MSC_VER=1200 Visual C++ .NET MSC_VER=1300 Visual C++ .NET 2003 MSC_VER=1310 Visual C++ 2005 (8.0) MSC_VER=1400 Visual C++ 2008 (9.0) MSC_VER=1500 Visual C++ 2010 (10.0) MSC_VER=1600 Visual C++ 2012 (11.0) MSC_VER=1700 Visual C++ 2013 (12.0) MSC_VER=1800 Visual C++ 2015 (14.0) MSC_VER=1900
第一步,获取apache
apache安装包选用的第三方发布的已经编译好的包,针对windows环境,主要有两个公司的编译包,
一是Apache Lounge Distribution,下载地址为http://www.apachelounge.com/download/
二是apache haus Distribution,下载地址为https://www.apachehaus.com/cgi-bin/download.plx#APACHE24VC14
其安装说明(下载包中有一个readme_txt)如下
第二步:安装c++运行时环境(apache需要)
注意安装对应的c++运行环境,该c++运行环境版本就是apache和python对应的编译器版本,在apache lounge的下载页面中有c++运行环境的下载链接
第三步 :按照apache的说明,安装apache
第四步:安装mod_wsgi
从pypi下载mod_wsgi库,解压,用python setup.py install运行.
4.1 安装vs2015 build tools
报错error:Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools":http://landinghub.visualstudio.com/visual-cpp-build-tools" ………………cl.exe failed with exit status2
cl.exe failed with exit status2
这是因为安装过程中需要c++编译器。
VisualC++ 2015 Build Tools
Standalone compiler,libraries and scripts
These tools allow you to build C++ libraries and applicationstargeting Windows desktop. Theyare the same tools that you find in VisualStudio 2015 in a scriptable standalone installer. Now you only need to downloadthe tools you need to build C++ projects.
The Visual C++ Build Tools download is refreshed to includeevery Visual Studio update. Visual Studio updates won't install on top of theVisual C++ Build Tools installation.
Even though Python is an interpreted language, you may need to installWindows C++ compilers in some cases. Unlike Linux, compilers for Windows arenot included by default in the OS.
For example, you will need to use them if you wish to:
- Install a non-pure Python package from sources with Pip (if there is no Wheel package provided).
- Compile a Cython or Pyrex file.
Microsoft provides official C++ compilers called Visual C++,you can find them bundled with VisualStudio or, for some versions, in standalonedistributions. Some alternative compilers exist like MinGW, butincompatibilities may occur with a CPython official distribution that is builtwith Microsoft Visual C++.
The compiler's architecture must be the same as Python's (for example: ifyou use Python 64bit, you have to use an x64 compiler).
Which Microsoft Visual C++compiler to use with a specific Python version ?
Each Python version uses a specific compiler version (e.g. CPython 2.7 uses Visual C++9.0, CPython 3.3 uses Visual C++ 10.0, etc). So, you need to install the compiler version that corresponds toyour Python version :
Visual C++ | CPython |
14.0 | 3.5, 3.6 |
10.0 | 3.3, 3.4 |
9.0 | 2.6, 2.7, 3.0, 3.1, 3.2 |
在安装好vs2015 build tools之后,重新运行python setup.py install,这时如果选择的Apache不对,则可能会报错。
4.2选择合适的apache第三方编译版本
笔者一开始选择的是Apache Haus Distribution httpd-2.4.27-x64-vc14.zip,这个版本在python setup.py install的过程中,会报错提示找不到头文件。
c:\apache24\include\http_config.h(29) : fatal error C1083: Cannot open include file: 'ap_config.h': No such file or directory'.
打开httpd.conf,在文档的最后部分添加如下代码(记得对应你的项目地址和apache地址)
然后设置Django的settings.py文件:
注意如果DEBUG是True,Django只会显示可爱的错误页面。
参见 DEBUG。在笔者的测试项目中,没有对TEMPLATE_DEBUG进行设置是可行的)
Django还允许任何条目的完全限定域名(FQDN)。某些浏览器在主机标头中包含一个后跟点,Django在执行主机验证时将其标记。
如果主机头(或X-Forwarded-Host(如果USE_X_FORWARDED_HOST已启用))与此列表中的任何值不匹配,则django.http.HttpRequest.get_host()方法将引发SuspiciousOperation。
当DEBUG为True并且ALLOWED_HOSTS为空时,主机将针对['localhost','127.0.0.1','[:: 1]']进行验证。
此验证仅适用于get_host();如果您的代码直接从request.META访问Host头,您将绕过此安全保护。
)
当遇到这种问题的时候 在你的httpd.conf文件中搜索 denied(所有的denied都注释掉或者改为 granted)
将require all denied注释掉, 并加上 require allgranted 这里解释一下这两行代码的意思。require all denied即拒绝所有访问。这样任何人包括你自己都无法访问你的项目。require all granted 即接受所有访问。 你可以自行设置允许接受的访问地址。PS:All from all应该是老版本的apache了吧。新版本不知道有没有这一条语句。
然后再次重新启动httpd.exe,访问127.0.0.1:80,即可显示你的django项目。如果还不行,打开apache目录下的logs/access、errors查看系统记录,它会指出httpd.conf中配置出现错误的代码行数,仔细看看再自行搜索一下解决方法即可。
第六步、设置局域网访问
经过以上步骤可以在本机上进行访问了,其他电脑依然无法访问我们的服务器,那么需要进行设置。
首先打开cmd命令窗口 输入ipconfig 得到你的局域网/本机ip地址,
然后再次打开httpd.conf文件,将之前设置过的Listen、servername改成:
即可,重新启动httpd.exe文件
会弹出防火墙选择窗口,选择允许访问网络即可。这样同一局域网下的其他电脑就可以访问你的网站了。如果不行,关闭防火墙
第七步、测试
在浏览器地址栏输入127.0.0.1/polls,成功出现index.html网页内容。
同时,可以通过浏览器访问网站静态文件:首先,在项目部署前已经运行了命令python manage.py collectstatic,因为我们在项目的setting.py文件中设置了STATIC_URL='static',所以可以通过127.0.0.1/static/来访问静态文件。
例如,项目根目录是E:\prj\notebook\django\xystest\,我的静态文件根目录是STATIC_ROOT = os.path.join(BASE_DIR, 'collect_static'),在本地文件夹E:\prj\notebook\django\xystest\collect_static下面有文件BU.jpg,则通过127.0.0.1/static/BU.jpg可以打开该图片,在路径E:\prj\notebook\django\xystest\collect_static\polls有文件sty.css,那么127.0.0.1/static/polls/sty.css可以打开sty.css文件的内容。