Apache 服務器下載及安裝

Windows Apache(ApacheHaus)安裝配置教程

轉自:  http://www.cnblogs.com/xyb930826/p/5444718.html

1,Apache下載

選擇一個版本,點擊Download

點擊File For Microsoft Windows

由於Apache HTTP Server官方不提供二進制(可執行)的發行版,所以我們選擇一些貢獻者編譯完成的版本,我們選擇第一個ApacheHaus

點擊ApacheHaus,進入下載頁

選擇其中一個版本,如果你的Windows還沒安裝對應的VC環境的話,選擇對應的VCRedistribute版本下載安裝。我選擇Apache 2.4VC9版,因爲我的電腦中已經安裝了VC9的環境。

點擊JumpLinks下第一行的某一個版本,下載對應壓縮包。

2,配置Apache之一--httpd.conf

解壓後進入裏面Apache22(最後兩位數字可能不同)文件夾,使用文本編輯器(推薦ultraedit)打開conf文件夾中的httpd.conf配置文件

找到ServerRoot選項,設置Apache目錄,大約在35行左右,將其改成你的Apache程序的文件夾,例

1
ServerRoot "C:/Users/myPC/Downloads/httpd-2.2.31-x86-r3/Apache22"

找到Listen選項,設置端口,大約46行,一般不修改,使用默認80,在開啓服務器前請保證80端口未被佔用

找到DocumentRoot選項,修改服務器根目錄,例:

1
DocumentRoot "F:/"

請保證此目錄存在,否則服務器無法正常啓動

修改Directory,保證其與服務器根目錄相同,只修改下面的第一行中引號部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<Directory "F:/">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks
 
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None
 
    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all
 
</Directory>

找到ScriptAlias選項,設置服務器腳本目錄,大約326行,一般將其設置爲Apache目錄下的cgi-bin文件夾

1
ScriptAlias /cgi-bin/ "C:/Users/myPC/Downloads/httpd-2.2.31-x86-r3/Apache22/cgi-bin"

找到隨後的Directory選項,設置腳本目錄,大約342行,需要將其設置爲和前面的ScriptAlias目錄相同

1
2
3
4
5
6
<Directory "C:/Users/myPC/Downloads/httpd-2.2.31-x86-r3/Apache22/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

3,配置Apache之二--ssl配置

如果你這使啓動服務,一般會出現下面的消息對話框:

提示

Windows不能在本地計算機啓動Apache2.2。有關更多信息,查閱系統日誌文件。如果這是非Microsoft服務,請與廠商聯繫,並參考特定服務器錯誤代碼1。

確定此問題的原因:

右鍵  計算機,點擊管理->Windows日誌->應用程序,顯示如下

 

這是由於SSL配置不正確所產生的,下面說一下解決辦法。

打開Apache程序目錄下的conf/extra/httpd-ahssl.conf文件,配置VirtualHost選項,有三處名爲VirtualHost的選項,均需修改。

第一個在107行左右。

在110行左右,將其中的SSLCertificateFile改爲:Apache所在目錄/conf/ssl/server.crt

在111行左右,將SSLCertificateKeyFile改爲:Apache所在目錄/conf/ssl/server.key

在112行左右,將DocumentRoot改爲你的服務器根目錄

在126行左右,將CustomLog改爲:Apache所在目錄/logs/ssl_request.log,這個不改的話也會錯。一般會出現如下錯誤:

 

Apache2.2服務由於下列服務特定錯誤而終止:函數不正確。

改成的效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<VirtualHost _default_:443>
  SSLEngine on
  ServerName localhost:443
  SSLCertificateFile C:/Users/myPC/Downloads/httpd-2.2.31-x86-r3/Apache22/conf/ssl/server.crt
  SSLCertificateKeyFile C:/Users/myPC/Downloads/httpd-2.2.31-x86-r3/Apache22/conf/ssl/server.key
  DocumentRoot F:/
 
# openssl req -new > server.csr
# openssl rsa -in privkey.pem -out server.key
# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 2048
<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/Apache22/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown\
         downgrade-1.0 force-response-1.0
CustomLog "C:/Users/myPC/Downloads/httpd-2.2.31-x86-r3/Apache22/logs/ssl_request.log"\
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</virtualhost>

主要改上文四處地方

在130行和152行還有另外兩個VirtualHost,均需修改上述的四個選項

例:

130行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<VirtualHost *:443>
  SSLEngine on
  ServerName serverone.tld:443
  SSLCertificateFile C:/Users/myPC/Downloads/httpd-2.2.31-x86-r3/Apache22/conf/ssl/serverone.crt
  SSLCertificateKeyFile C:/Users/myPC/Downloads/httpd-2.2.31-x86-r3/Apache22/conf/ssl/serverone.key
  DocumentRoot F:/
# openssl req -new > serverone.csr
# openssl rsa -in privkey.pem -out serverone.key
# openssl x509 -in serverone.csr -out serverone.crt -req -signkey serverone.key -days 2048
<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/Apache22/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown\
         downgrade-1.0 force-response-1.0
CustomLog "C:/Users/myPC/Downloads/httpd-2.2.31-x86-r3/Apache22/logs/ssl_request.log"\
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"env=HTTPS
</virtualhost>

第152行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<VirtualHost *:443>
  SSLEngine on
  ServerName servertwo.tld:443
  SSLCertificateFile C:/Users/myPC/Downloads/httpd-2.2.31-x86-r3/Apache22/conf/ssl/servertwo.crt
  SSLCertificateKeyFile C:/Users/myPC/Downloads/httpd-2.2.31-x86-r3/Apache22/conf/ssl/servertwo.key
  DocumentRoot F:/
# openssl req -new > servertwo.csr
# openssl rsa -in privkey.pem -out servertwo.key
# openssl x509 -in servertwo.csr -out servertwo.crt -req -signkey servertwo.key -days 2048
<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/Apache22/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown\
         downgrade-1.0 force-response-1.0
CustomLog "C:/Users/myPC/Downloads/httpd-2.2.31-x86-r3/Apache22/ssl_request.log"\
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</virtualhost>

上述的兩個VirtualHost均需修改四處

這樣,Apache就算配置完了,如果還有問題,可能還需配置./conf/extra/httpd-ssl.conf,配置方法和配置VirtualHost的相似

4,啓動Apache HTTP Server

使用Windows命令行以管理員身份進入Apache程序的文件夾下的bin文件夾,輸入httpd -k install,完成Apache服務的安裝。

然後雙擊bin目錄下的ApacheMonitor.exe,點擊右邊的start啓動服務器,如果正常,如下圖:

測試一下:

5,其它

卸載Apache HTTP Server:

管理員身份進入bin目錄,使用httpd -k uninstall 移除服務

使用httpd -w -n "Apache2" -k start命令啓動服務器 可以顯示啓動過程中的日誌,便於分析錯誤。

分類: 服務器
1
0
«上一篇:Windows程序設計(第五版)學習:第四章 文本輸出
»下一篇:React學習之一:React初探
posted @ 2016-04-29 13:05 請纓提旅 閱讀(2948) 評論(0)編輯收藏
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章