這篇文章主要介紹了windows apache2.4 vc9(apachehaus)詳細安裝配置教程,需要的朋友可以參考下
1,Apache下載
選擇一個版本,點擊Download
由于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程序的文件夾,例:
ServerRoot?"C:/Users/myPC/Downloads/httpd-2.2.31-x86-r3/Apache22"
找到Listen選項,設置端口,大約46行,一般不修改,使用默認80,在開啟服務器前請保證80端口未被占用
找到DocumentRoot選項,修改服務器根目錄,例:
DocumentRoot?"F:/"
請保證此目錄存在,否則服務器無法正常啟動
修改Directory,保證其與服務器根目錄相同,只修改下面的第一行中引號部分
<directory> ??# ??#?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文件夾
ScriptAlias?/cgi-bin/?"C:/Users/myPC/Downloads/httpd-2.2.31-x86-r3/Apache22/cgi-bin"
找到隨后的Directory選項,設置腳本目錄,大約342行,需要將其設置為和前面的ScriptAlias目錄相同
<directory> ??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服務由于下列服務特定錯誤而終止:函數不正確。
改成的效果:
<virtualhost> ?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> ??SSLOptions?+StdEnvVars </filesmatch><directory> ??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行
<virtualhost> ?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> ??SSLOptions?+StdEnvVars </filesmatch><directory> ??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行
<virtualhost> ?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> ??SSLOptions?+StdEnvVars </filesmatch><directory> ??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命令啟動服務器 可以顯示啟動過程中的日志,便于分析錯誤。