通过百度搜索,apache上没有找到windows下的安装包,仅找到了src文件。
通过百度软件等搜索没有找到带ssl的包,所以在网站上下载http://httpd.apache.org/
网站上提供了2.2版本和2.4版本,建议用2.2版本,网上评论兼容性较好。
http://httpd.apache.org/
http://httpd.apache.org/download.cgi
http://httpd.apache.org/docs/current/platform/windows.html#down
http://www.apachehaus.com/cgi-bin/download.plx
此处vc9 指的是Microsoft visual c++ 2008 redistributable。VC9是指用VS2008编译的代码,而VC11是用VS2012编译的,而用VS2012编译的无法在windows xp和server 2003中使用。
下载完成后,解压缩到特定目录。
解压缩后将D:\soft\httpd-2.2.31-x86\Apache22\conf中的httpd.conf修改文件中的特定项
其实是将配置文件中的 /Apache22或者/Apache22/htdocs 替换为实际目录,这个地方或许有一个一劳永逸的配置地方,但是没有找到,所以修改了许多地方。
ServerRoot "D:\soft\httpd-2.2.31-x86\Apache22\"
Listen 8088
DocumentRoot "D:\soft\httpd-2.2.31-x86\Apache22\htdocs"
<Directory "D:/soft/httpd-2.2.31-x86/Apache22/htdocs">
D:\soft\httpd-2.2.31-x86\Apache22\conf\extra\httpd-ahssl.conf
只要将文件中的/Apache22修改为实际路径
SSLCertificateFile D:/soft/httpd-2.2.31-x86/Apache22/conf/ssl/server.crt
SSLCertificateKeyFile D:/soft/httpd-2.2.31-x86/Apache22/conf/ssl/server.key
DocumentRoot D:/soft/httpd-2.2.31-x86/Apache22/htdocs
CustomLog "D:/soft/httpd-2.2.31-x86/Apache22/logs/ssl_request.log" \
以上配置是在机器上测试完成的。
接下来需要配置安装Apache的主服务,有了它,Apache才可启动:
打开CMD窗口,输入:"D:\application_software\Apache\bin\httpd.exe" -k install -n apache
切记,包含引号。该命令的意思是,安装apache服务,并将该服务名称命名为apache(你也可以改成别的),回车。
服务安装完毕,完毕后,会自动测试,若有问题,窗口会提示错误,此时,请根据错误自行排查。
在安装目录中,找到D:\application_software\Apache\bin\ApacheMonitor.exe可执行文件,双击运行,桌面右下角会出现图标,双击打开窗口界面,会看到如图所示:
点击左侧start,启动apache服务。
补充句,从该界面可看出,其可以手动控制服务的开启与关闭,为了节省资源,关闭Apache服务器的时候,请先点击“Stop”关闭apache服务。
当然,该服务也可以在windows系统服务中关闭(建议设置成手动)
下图显示的是该服务成功显示的状态:
若Apache服务器软件不想用了,想要卸载,需要先卸载apache服务(切记,若直接删除安装路径的文件夹,会有残余文件在电脑,可能会造成不必要的麻烦)
在CMD命令窗口,输入如下(建议先停止服务再删除):
sc delete apache
apache是Apache服务器的服务名
故障排除:
命令行下输入bin目录下,httpd -t,会显示配置文件中的错误。
或者查看apache错误日志:目录下的apache/logs/error.log
查看window系统日志:
路径:我的电脑——》右键管理——》系统工具——》事件查看器——》应用程序日志
在命令行使用netstat -aon|findstr "80"
这个命令就可以查看到使用80这个端口的程序了。然后我就看到了一些使用80端口的进程PID,通过tastlist /FI "PID eq ***" (***表示PID)就可以看到是哪些程序在使用了(或者直接通过任务管理器->进程->查看->选择列,把PID勾上,也可以看到相应的进程)。