繁体   English   中英

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

[英]Succeeded installing but could not start apache 2.4 on my windows 7 system

我试图在我的 Windows 7 系统上安装和运行 apache 2.4 我转到 apache 2.4 bin 目录并运行以下命令: 注意:我以管理员身份打开了 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 服务,希望停止其中之一可以释放本地主机端口 80。

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

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

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

然后我运行 tasklist 并发现系统正在使用 pid 4. 4 在 pid 列下

System                           4 Services                   0        544 K

最后,由于尝试启动服务失败,我收到了一个错误,该错误记录在 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 无法绑定到在我看来像 localhost 端口 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 中监听不同的端口。 由于 System 正在使用侦听端口 80 的 pid 4,因此我不想进一步探讨这一点。

我将以下内容放入 httpd.conf。 听 127.0.0.1:122

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

净止损是 /y

或经验值:

净停止 iisadmin /y

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

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

Port 80 maybe used by Microsoft HTTPAPI

Try to stop the following service:
  Web Deployment Agent Service
  SQL Server Reporting Service
  SQL Server VSS Writer

我终于解决了这个问题,这是因为某些系统如skype和系统进程占用了该端口80,您可以使用netstat -ao检查端口80

请找到以下步骤

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

  2. 使用 httpd.exe -k install 将其安装为服务,即使您看到错误也没关系

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

  4. 重启系统,然后你会发现Apache服务会第一个走80端口,

恭喜问题解决了。

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

所以,这就是我发两个(或更多)帖子的原因。

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

我认为这是因为我试图在 VeraCrypt 加密的容器中安装 htdocs,这很荒谬,因为我已经安装了这样的容器,并且我使用了一个连接来不影响路径。

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

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

我的解决方案:

  1. 运行一个免费的实用程序来释放内存(在我的测试中为 512MiB)
  2. 启动服务后立即启动,没有错误

真正的原因:

  • 我使用的是使用 1/2 物理可用内存 (1.5GiB) 的虚拟机

希望这对其他人有帮助。

我也遇到了同样的问题,然后我尝试在每次更改后重新启动系统,它对我有用:

  1. 在 cmd 提示符(运行管理员)中使用以下命令卸载 Apache2.4: httpd -k uninstall
  2. 重新启动系统。
  3. 使用以下命令打开 cmd 提示符(运行管理员): httpd -k install
  4. 然后httpd -k install

希望你觉得有用。

你可以解决它

sudo nano /etc/apache2/ports.conf

并更改为收听 8080

就我而言,这是由于 Apache 正在侦听的 IP 地址。 以前我将它设置为 192.168.10.6,最近 Apache 服务没有运行。 我注意到由于我的笔记本电脑 wifi 最近发生了变化,新 IP 有所不同。 将wifi IP固定到笔记本电脑以前的IP后,Apache服务再次运行,没有任何错误。

此外,如果您不想更改 wifi IP,请在 httpd.conf 文件中删除/注释该硬编码 IP 以解决冲突。

这可能是因为物理 RAM 不足。

检查文档中的最低系统要求,并在可能的情况下尝试关闭不必要的程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM