簡體   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