【Web建站】Window10下Apache2.4的安裝和執行

NO IMAGE

前言

以前用Python執行的Web框架都是要執行在Linux下,加上WSGI伺服器,比如Gunicorn Flask,後來瞭解到了Apache,看看能不能基於Apache這個Web伺服器下給Python提供Web環境。於是上網找了很多資料,現在總結如下。

這篇是在Window10下Apache2.4的安裝和執行。

開發環境

  • Windows 10 x64
  • Apache2.4 x64

版本介紹及安裝過程

首先我們要先下載Apache2.4伺服器:
http://httpd.apache.org/download.cgi

關於現在版本的伺服器說明一下,Apache有本身的伺服器是不能使用的,必須要先編譯才可以使用的。但是在他的官網上也提供了第三方編譯好的Apache所以這裡我們就,下載第三方的而不用自己手動在編譯了。這裡它提供了五個第三方的伺服器。

  1. 如果要安裝繼承開發環境,可以選擇後兩個WampServer和XAMPP,安裝使用都很方便。
  2. 下載單獨的安裝包可以選擇前兩個網站ApacheHaus和Apache Lounge

下載工程如下圖所示:

image

image

image

image

說明:今天我們就以ApacheHaus為例,其他版本可能配置不同,可以自行搜尋解決。根據提供的網址下載好伺服器

Apache伺服器配置

  1. 下載好之後我們將壓縮包進行解壓,然後將解壓後的檔案放置在指定的目錄下。這理我放在D:\Apache。
  2. 進入Apache24\conf目錄下開啟httpd.conf檔案,對其進行修改預設的配置

修改一

第38行預設是

Define SRVROOT "/Apache24"    
ServerRoot "${SRVROOT}"  

修改為你安裝Apache的所在目錄

#Define SRVROOT "/Apache24"
Define SRVROOT "D:\Apache\httpd-2.4.25-x64-vc11-r1\Apache24"
ServerRoot "${SRVROOT}"

如果不修改會提示錯誤:

httpd.exe: Syntax error on line 39 of D:/Android_Develop_Tools/httpd-2.4.23-x64-
vc14/Apache24/conf/httpd.conf: ServerRoot must be a valid directory

修改二

第60行預設是:

#Listen 12.34.56.78:80    
Listen 80   

改為8081

#Listen 12.34.56.78:80  
Listen 8081  

修改三

第224行預設是:

ServerName localhost:80   

改為:

ServerName localhost:8081  

如果不修改會提示錯誤:

(OS 10048)通常每個套接字地址(協議/網路地址/埠)只允許使用一次。  : AH00072: make_sock: could not bind to address [::]:80
(OS 10048)通常每個套接字地址(協議/網路地址/埠)只允許使用一次。  : AH00072: make_sock: could not bind to address 0.0.0.0:80
AH00451: no listening sockets available, shutting down

以管理員身份執行cmd或者PowerShell,進入到Apache24\bin目錄下,並輸入./httpd.exe -k install,安裝apache服務,看到以下資訊說明安裝成功:

Installing the 'Apache2.4' service
The 'Apache2.4' service is successfully installed.

需要解除安裝則輸入./httpd.exe -k uninstall即可。

解決443埠被佔用

如果提示443埠被佔用了

(OS 10048)通常每個套接字地址(協議/網路地址/埠)只允許使用一次。  : AH00072: make_sock: could not bind to address [::]:443
(OS 10048)通常每個套接字地址(協議/網路地址/埠)只允許使用一次。  : AH00072: make_sock: could not bind to address 0.0.0.0:443 AH00451: no listening sockets available, shutting down

解決辦法為

開啟httpd.conf, 找到載入ssl_module的那一行, 加#號註釋掉就好了:# LoadModule ssl_module modules/mod_ssl.so
現在輸入httpd.exe -k start命令就可以了。

小技巧

如果不想每次啟動停止Apache都輸入命令,可以到Apache24\bin目錄下使用ApacheMonitor.exe軟體。


參考資料:
1. http://www.cnblogs.com/znan/p/6121916.html