apache安装笔记

前提条件

有一点必须要保证的是apache和python的版本必须要一致(而且要使用相同的编译器编译出来的)

VS版本 与 VC版本 的对应关系

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

我们应该选择Apache Lounge Distribution,第二个版本虽然可以作为apache服务器使用,但是在安装mod_wsgi时却会缺失文件,不能正确安装。


其安装说明(下载包中有一个readme_txt)如下


Build with Visual Studio?2015  x64
------------------------------------
- Be sure you have installed the Visual C++ Redistributable for Visual Studio 2015 x64.
  Download and install, if you not have it already,  see:


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


Minimum system required
-----------------------


Windows 7 SP1
Windows 8 / 8.1
Windows 10
Windows Server 2016
Windows Server 2008 R2 SP1 
Windows Server 2012 / R2
Windows Vista SP2


Install
-------


- Unzip the Apache24 folder to c:/Apache24 (that is the ServerRoot in the config).
  Default folder for your your webpages is DocumentRoot "c:/Apache24/htdocs"


  When you unzip to an other location, change ServerRoot in the httpd.conf,
  and change in httpd.conf the Documenroot, Directories, ScriptAlias,
  also when you use the extra folder config file(s) change to your location there. 


Start apache in a DOS box:


>httpd.exe


Install as a service:


>httpd.exe -k install


ApacheMonitor:


Double click ApacheMonitor.exe, or put it in your Startup folder.




第二步:安装c++运行时环境(apache需要)

注意安装对应的c++运行环境,该c++运行环境版本就是apache和python对应的编译器版本,在apache lounge的下载页面中有c++运行环境的下载链接

apache安装笔记_第1张图片

第三步 :按照apache的说明,安装apache

一般就安装到c:/Apache24这个目录,如果要放到别的目录,则要在httpd.conf文件中替换对应的所有目录
install
-------


- Unzip the Apache24 folder to c:/Apache24 (that is the ServerRoot in the config).
  Default folder for your your webpages is DocumentRoot "c:/Apache24/htdocs"


  When you unzip to an other location, change ServerRoot in the httpd.conf,
  and change in httpd.conf the Documenroot, Directories, ScriptAlias,
  also when you use the extra folder config file(s) change to your location there. 


Start apache in a DOS box:


>httpd.exe


Install as a service:


>httpd.exe -k install


ApacheMonitor:


Double click ApacheMonitor.exe, or put it in your Startup folder.



第四步:安装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++编译器。

点击链接http://landinghub.visualstudio.com/visual-cpp-build-tools,下载vc14(vs2015)的构建编译工具并安装,安装过程中会自动下载vs2015。

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.0CPython 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'.

打开目录c:\apache24\include\确实找不到ap_config.h文件。

解决办法,下载Apache Lounge Distribution    httpd-2.4.27-win64-VC14.zip,将其解压并把其中的Apache24文件夹拷贝到C盘根目录,其最终路径为c:/Apache24 (在apache的配置文件中,此路径为默认的ServerRoot)

然后再运行python setup.py install,则成功安装了mod_wsgi

第五步   配置apache和django
安装好mod_wsgi之后,在python安装目录下的scripts子目录下,有mod_wsgi-express.exe文件,执行命令mod_wsgi-express module-config,将输出三行内容,如下图所示:


打开httpd.conf,在文档的最后部分添加如下代码(记得对应你的项目地址和apache地址)

[plain]  view plain  copy
  1. #添加mod_wsgi.so模块  
  2. LoadFile "D:/ProgramData/Anaconda3/python36.dll"
    LoadModule wsgi_module "D:/ProgramData/Anaconda3/lib/site-packages/mod_wsgi-4.5.18-py3.6-win-amd64.egg/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
    WSGIPythonHome "D:/ProgramData/Anaconda3"  
    #指定项目的wsgi.py配置文件路径  
    WSGIScriptAlias / E:/prj/notebook/django/xystest/xystest/wsgi.py  
      
    #指定项目目录  
    WSGIPythonPath  E:/prj/notebook/django/xystest  
      
     
     
        Require all granted  
     
     
      
    #项目静态文件地址  
    Alias /static E:/prj/notebook/django/xystest/collect_static  
     
        AllowOverride None  
        Options None  
        Require all granted  
     
      
    #项目media地址  
    Alias /media E:/prj/notebook/django/xystest/media  
     
        AllowOverride None  
        Options None  
        Require all granted  
     
然后设置Django的settings.py文件:

[python]  view plain  copy
  1. TEMPLATE_DEBUG
  2. 默认:False

        自1.8版本起,不赞成使用:
        在一个DjangoTemplates引擎中的OPTIONS设置'debug' 选项来代替。


  3. ALLOWED_HOSTS
  4. 默认: [] (Empty list)


#(xys:TEMPLATE_DEBUG---一个打开/关闭模板调试模式的布尔值。如果值是True,在模板渲染期间,抛出任何异常都将显示一个可爱的、详情报告的错误页面。该页面包含该模板相关的代码段,并且使用适当的行高亮。
注意如果DEBUG是True,Django只会显示可爱的错误页面。
参见 DEBUG。在笔者的测试项目中,没有对TEMPLATE_DEBUG进行设置是可行的
#(xys:ALLOWED_HOSTS---表示此Django站点可以投放的主机/域名的字符串列表。这是防止HTTP主机头部攻击的安全措施,即使在许多看似安全的Web服务器配置下也是如此。此列表中的值可以是完全限定名称(例“www.example.com”),在这种情况下,它们将完全匹配请求的主机标头(不区分大小写,不包括端口)。以期间开头的值可以用作子域通配符:'.example.com'将匹配example.com,www.example.com和example.com的任何其他子域。值“*”匹配任何东西;在这种情况下,您有责任提供您自己对Host头的验证(可能在中间件中);如果是这样,中间件必须首先列在MIDDLEWARE中)。


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头,您将绕过此安全保护。





重新启动apche的bin/httpd.exe程序,访问127.0.0.1:80,返回的是you don't have permission to access......

当遇到这种问题的时候 在你的httpd.conf文件中搜索 denied(所有的denied都注释掉或者改为 granted)
apache安装笔记_第2张图片
将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改成:

[plain]  view plain  copy
  1. Listen 你的IP地址:80  
  2. ......  
  3. ServerName 你的IP地址:80Listen 你的IP地址:80  
  4. ......  
  5. ServerName 你的IP地址:80  

即可,重新启动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文件的内容。


你可能感兴趣的:(网站开发)