成功安装,但无法启动我的Windows 7系统上的Apache 2.4

我试图安装和运行在我的Windows 7系统上的Apache 2.4我去的Apache 2.4的bin目录,并运行以下:注意:我打开了pipe理员的cmd窗口。 C:\ Apache24 \ bin> httpd.exe -k安装

其产出如下:

Installing the Apache2.4 service The Apache2.4 service is successfully installed. Testing httpd.conf.... Errors reported here must be corrected before the service can be started. (OS 10013)An attempt was made to access a socket in a way forbidden by its acces s permissions. : AH00072: make_sock: could not bind to address [::]:80 (OS 10013)An attempt was made to access a socket in a way forbidden by its acces s permissions. : AH00072: make_sock: could not bind to address 0.0.0.0:80 AH00451: no listening sockets available, shutting down AH00015: Unable to open log 

所以它安装了Apache 2.4作为服务,但它无法启动。 似乎正在使用本地端口80。 这是“[::]:80”是什么意思?

然后我停止了我已经运行的apache 2.0服务和mysql服务,希望停止其中一个可能释放localhost端口80。

我也运行netstat -o来查看是否正在使用端口80。 不是。

但是,我发现一个进程正在使用上面的套接字,它是一个正在上面的套接字上侦听的进程

  TCP [::]:80 User-PC:0 LISTENING 4 

然后我运行任务列表,发现系统正在使用pid 4. 4在pid列下

 System 4 Services 0 544 K 

最后,从失败的尝试启动服务,我得到了一个错误,这是logging在Windows系统事件。

 Log Name: System Source: Service Control Manager Date: 2/21/2013 1:58:03 PM Event ID: 7024 Task Category: None Level: Error Keywords: Classic User: N/A Computer: User-PC Description: The Apache2.4 service terminated with service-specific error Incorrect function. Event Xml: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Service Control Manager" Guid="{555908d1-a6d7-4695-8e1e-26931d2012f4}" EventSourceName="Service Control Manager" /> <EventID Qualifiers="49152">7024</EventID> <Version>0</Version> <Level>2</Level> <Task>0</Task> <Opcode>0</Opcode> <Keywords>0x8080000000000000</Keywords> <TimeCreated SystemTime="2013-02-21T18:58:03.723988900Z" /> <EventRecordID>87756</EventRecordID> <Correlation /> <Execution ProcessID="560" ThreadID="7596" /> <Channel>System</Channel> <Computer>User-PC</Computer> <Security /> </System> <EventData> <Data Name="param1">Apache2.4</Data> <Data Name="param2">%%1</Data> </EventData> </Event> 

从尝试开始的错误说,由于缺乏访问,make-sock无法绑定到我看起来像本地端口80的套接字。例如,

  (OS 10013)An attempt was made to access a socket in a way forbidden by its acces s permissions. : AH00072: make_sock: could not bind to address [::]:80 

任何人都可以告诉我做错了什么?

抱歉的问题。 为了解决我的问题,我只是告诉apache 2.4在httpd.conf中听一个不同的端口。 由于系统使用的是在端口80上侦听的pid 4,所以我不想进一步探索这个。

我把以下内容放到httpd.conf中。 听127.0.0.1:122

最有可能的罪魁祸首是Microsoft Internet信息服务器。 您可以在Windows 7 / Vista上的命令行中停止该服务:

净停止是/年

或XP:

净停止iisadmin / y

阅读这个http://www.sitepoint.com/unblock-port-80-on-windows-run-apache/

端口80可能由Microsoft HTTPAPI使用

尝试停止以下服务:
   Web部署代理服务
   SQL server报告服务
   SQL server VSS编写器

我也有同样的问题,将win7升级到win10后。 然后我检查services.msc,发现“ 万维网发布服务 ”默认情况下自动运行。 那么我禁用它,再次运行Apache服务。

我终于解决了这个问题,那是因为有些系统像skype和系统进程那个端口是80,你可以用netstat -ao检查80端口

请找到以下步骤

  1. 安装Apache HTTP后,使用cmd转到bin文件夹

  2. 使用httpd.exe -k安装即使你看到错误没关系安装它作为服务

  3. 现在确保服务已经安装(即使没有启动)根据你的操作系统

  4. 重新启动系统,那么你会发现Apache服务将是第一个采取80端口,

恭喜,问题解决了。

如果您使用的是Windows操作系统,并且认为Skype不是可疑人员,那么您可能需要检查任务管理器并检查“显示来自所有用户的进程”,并确保没有httpd.exe项。 否则,结束它的过程。 这解决了我的问题。

所以,这就是为什么我做了两个(或更多)的职位。

我在启动服务时遇到同样的问题(日志无法打开)。

我以为是因为我试图在一个VeraCrypt encripted容器中有htdocs,因为我把这样的内容挂载了,所以我用了一个juntion来不影响路径。

我读的原因可能是低的内存:经过一些测试,我得到了下一个结论。

Windows不发送页面到虚拟RAM来释放足够的内存,如果它是一个服务,对于它正在做的应用程序,我有超过200GiB的页面文件准备用作4GiB 64位Windows 10中的虚拟内存。

我的解决方案

  1. 运行一个免费的实用程序,免费ram(512MiB在我的测试)
  2. 在开始服务之后,它始终没有错误

真正的原因:

  • 我使用的虚拟机使用1/2物理免费ram(1.5GiB)

希望这可以帮助别人。

这可能是因为物理RAM短缺。

检查文档中的最低系统要求,并尝试关闭不必要的程序。