Máy chủ Apache (xampp) không chạy trên Windows 10 (Cổng 80)


84

Tôi đã cài đặt Chương trình Người dùng nội bộ Windows 10. Mọi thứ đều hoạt động, ngoại trừ Apache. Khi tôi cố gắng khởi động nó, nó thông báo rằng cổng 80 bị chặn. Có cách nào để bỏ chặn nó hoặc yêu cầu Apache sử dụng cổng khác thay thế không?

Tôi đã sử dụng Windows 7 trước đây. Tôi đã gặp sự cố với cổng 80 với skype, nhưng tôi đã vô hiệu hóa nó.


PID là 4. Quy trình là Hệ thống (Hạt nhân & Hệ thống NT)
Aloso

Cẩn thận với thương hiệu máy tính của bạn: phát hiện ra rằng máy tính của tôi có một dịch vụ tùy chỉnh đang chặn cổng. Tôi đã phải tắt tất cả từng dịch vụ một để cuối cùng tìm ra điều đó ...
Jean-François Savard


Câu trả lời:


208

Tôi gặp sự cố tương tự trên windows 10, IIS / 10.0 đang sử dụng cổng 80

Để giải quyết điều đó:

  • tìm dịch vụ "W3SVC"
  • vô hiệu hóa nó hoặc đặt nó thành "thủ công"

Tên tiếng Pháp là: " Service de Publishing World Wide Web "

Tên tiếng Anh là: " World Wide Web Publishing Service "

tên tiếng Đức là: "WWW-Publishingdienst" - cảm ơn @fiffy

Tên tiếng Ba Lan là: "Usługa publikowania w sieci WWW" - cảm ơn @KrzysDan

Tên tiếng Nga là "Служба веб-публикаций" - cảm ơn @Kreozot

Tên tiếng Ý là "Servizio Pubblicazione sul Web" - cảm ơn @ Claudio-Venturini

Tên Español là "Servicio de publicación World Wide Web" - cảm ơn @ Daniel-Santarriaga

Tên tiếng Bồ Đào Nha (Brazil) là "Serviço de publicação da World Wide Web" - thanks @ thiago-sinh


Các lựa chọn thay thế:


Chỉnh sửa ngày 07 tháng 8 năm 2015: Để biết thêm chi tiết, hãy xem câu trả lời của Matthew Stumphy Máy chủ Apache (xampp) không chạy trên Windows 10 (Cổng 80)


2
Tuyệt vời ... nó là một vấn đề với Windows 10 theo mặc định
user3658423

3
Có thể tắt dịch vụ khi khởi động bằng cách mở Administrative Toolsvà chọn Services. Một cửa sổ sẽ bật lên có tiêu đề Dịch vụ. Sau đó tìm World Wide Web Publishing Services, nhấp chuột phải và chọn Properties. Thay đổi Startup Typethành Manualvà nhấp vàoApply
zgr024

3
Những người khác có thể tìm thấy tên hiển thị bằng cách gọisc getdisplayname W3SVC
Honza Kuchař

Có lý do gì để W3SVC chạy trên một máy tính bình thường không hoạt động như một máy chủ web không?
DaedalusAlpha

Sẽ tốt hơn nếu xóa World Wide Web Publishing Service khỏi danh sách các thành phần cửa sổ đã cài đặt? Sau đó, không cần phải tắt dịch vụ vì nó sẽ không được cài đặt nữa.
Arnoud Sietsema,

31

Câu trả lời này được dự định như một phụ lục cho câu trả lời được xếp hạng cao nhất trên chủ đề này của paaacman. Tôi chỉ muốn thêm một số chi tiết hữu ích cho những người dùng như tôi, những người cũng không biết cách sử dụng Windows 10.

Windows 10 chạy IIS (Internet Information Services, phần mềm máy chủ web của Microsoft) tự động trong quá trình Khởi động trên Cổng 80. Để sử dụng Máy chủ Apache trên cổng đó, IIS phải được dừng lại.

Phản hồi của paaacman đề cập đến máy chủ IIS là "W3SVC", hoặc "Dịch vụ xuất bản web toàn cầu". Tôi cho rằng đó là vì Windows 10 chạy IIS như một dịch vụ. Để tắt hoặc sửa đổi cách dịch vụ chạy, bạn cần biết nơi tìm "Dịch vụ" trong hệ thống của mình.

Tôi thấy cách dễ nhất là nhấp vào nút tìm kiếm bên cạnh nút menu bắt đầu trên thanh tác vụ Windows 10 và nhập "Công cụ quản trị" . Bạn có thể nhấn quay lại hoặc nhấp vào liên kết "Công cụ quản trị" mà Windows tìm thấy cho bạn.

Một cửa sổ bảng điều khiển sẽ mở ra với danh sách các công cụ. Cái bạn muốn là " Dịch vụ ". Bấm đúp vào nó.

Một cửa sổ khác sẽ mở ra có tên "Dịch vụ". Xác định vị trí có tên " Dịch vụ xuất bản trên toàn thế giới ". Một số người dùng khác trong chuỗi này đã liệt kê những gì nó được gọi bằng các ngôn ngữ khác, nếu danh sách của bạn không phải bằng tiếng Anh.

Nếu bạn chỉ muốn tắt máy chủ IIS cho phiên Windows này, nhưng muốn nó tự động chạy lại trong lần khởi động Windows tiếp theo, hãy nhấp chuột phải vào "World Wide Web Publishing Service" và chọn " Stop ". Máy chủ sẽ dừng và Cổng 80 sẽ được giải phóng cho Apache (hoặc bất kỳ thứ gì khác mà bạn muốn sử dụng).

Nếu bạn muốn ngăn máy chủ IIS tự động chạy khi bạn khởi động Windows trong tương lai, hãy nhấp chuột phải vào "World Wide Web Publishing Serivce" và chọn " Thuộc tính ". Trong cửa sổ xuất hiện, tìm menu thả xuống "Loại khởi động"đặt nó là "Thủ công". Nhấp vào "Áp dụng" hoặc "OK" để lưu các thay đổi của bạn. Bạn sẽ được hoàn tất.


15

Với Windows 10 IIS chạy trên Cổng 80 theo mặc định có thể thay đổi:

Chạy appwiz.cpl sử dụng Turn Windows features on or offvà cài đặt IIS Manager Console.

Bật hoặc tắt các tính năng của Windows -> Dịch vụ thông tin Internet -> Công cụ quản lý web -> Bảng điều khiển quản lý IIS

Chạy InetMgr.exevà đi tới "Kết nối -> Trang web" và mở bằng cách nhấp chuột phải vào menu ngữ cảnh trên mục nhập mặc định "Trang web mặc định". Trong Menu ngữ cảnh, chọn "Bindings" để mở địa chỉ máy chủ và cấu hình cổng.

"Kết nối -> Trang web" -> "Liên kết Trang web Mặc định"

Địa chỉ máy chủ và cấu hình cổng

Chuyển đổi cổng mặc định thành 8080

https://technet.microsoft.com/library/hh831681.aspx#Site_Bingings


14

Tôi đã gặp chính xác vấn đề tương tự và đã giải quyết nó bằng cách chạy lệnh folowing từ dòng lệnh với tư cách là quản trị viên:

1) đầu tiên dừng dịch vụ với những điều sau

net dừng http / y

2) sau đó tắt khởi động (tùy chọn)

sc config http start = vô hiệu hóa


Đây là cách dễ nhất để giải phóng cổng 80. Tôi đang sử dụng cổng này cho máy lang thang.
Mārtiņš Briedis

9

Nhập dòng lệnh

netstat -aon | findstr :80

Bạn sẽ thấy PID của quá trình sử dụng cổng 80. Sau đó, hãy thử định cấu hình ứng dụng này để sử dụng một cổng khác hoặc chỉ cần loại bỏ nó

CẬP NHẬT: Tôi sẽ viết bình luận của mình ở đây để rõ ràng hơn: theo liên kết này , trong Windows 10, dịch vụ MsDepSvc chiếm cổng 80. Nó dành cho IIS hoặc Web Matrix 2. Nếu bạn không sử dụng IIS hoặc Web Matrix 2 để phát triển web, bạn có thể thử tắt dịch vụ

Và đối với phần thứ hai của câu hỏi, bạn có thể yêu cầu Apache sử dụng một cổng khác bằng cách chỉnh sửa [thư mục Apache] /conf/httpd.conf. Nó có chuỗi "Nghe 80". Thay đổi 80 thành bất kỳ cổng miễn phí nào bạn muốn và tải lại Apache


Đó là Hệ thống. Tôi không thể giết nó, tôi có thể?
Aloso

Sau khi tìm kiếm nhanh trên Google, tôi tìm thấy liên kết này nextofwindows.com/… . "..., bạn có các dịch vụ này MsDepSvc đang chạy trong nền chiếm cổng 80. Một bản sửa lỗi nhanh sẽ là dừng dịch vụ khi bạn không định sử dụng IIS hoặc Web Matrix 2 cho bất kỳ phát triển web nào. Và khởi động dịch vụ khi cần thiết, hy vọng điều đó sẽ giải quyết được một số bí ẩn mà bạn có thể gặp phải khi chuyển đổi giữa việc sử dụng Ma trận web sang phát triển apache truyền thống. "
Sergey Maksimenko

Tôi xin lỗi nhưng tôi không có quy trình này.
Aloso

8

Bạn cũng có thể cần phải chấm dứt Dịch vụ Báo cáo Máy chủ SQL.


5

Trong trường hợp của tôi, tôi cần cả XAMPP để phát triển Apache & IIS Express cho phát triển .Net 2013; vì vậy tôi làm như sau:

  1. Trong Command Prompt đã nhập services.msc, điều này sẽ tải "Dịch vụ Windows" nơi tôi đặt "Dịch vụ xuất bản web toàn cầu" và dừng nó. Dịch vụ phát hành web toàn cầu DỪNG

  2. I start XAMPP Control Panel nhấp vào "Config", sau đó chọn "Apache httpd.conf". Tìm kiếm "80" rồi thay đổi thành "8080" trong cả "Listen 80" và "ServerName localhost: 80". Lưu tệp từ "Lưu dưới dạng" và chọn "Tất cả tệp" để không lưu dưới dạng văn bản từ "Lưu dưới dạng" và "Mã hóa" phải là "UTF-8". Apache httpd.conf

  3. Thoát Bảng điều khiển XAMPP, sau đó khởi động lại và từ "Hành động", hãy khởi động Apache & MySQL. Bây giờ bạn sẽ thấy cổng đã thay đổi. Như bạn biết bây giờ bạn phải truy cập máy chủ Apache của mình bằng cách sử dụng "localhost: 8080" thay vì "localhost". Ngoài ra, bạn có cả Apache & IIS Express đang chạy trên cùng một PC Windows 10.

Tôi đã đọc một bài đăng mà người viết đề xuất sử dụng cổng "9080" nhưng nó không hoạt động đối với tôi.


3

Sự cố xảy ra bất cứ khi nào một quá trình sử dụng cổng 80.

Bạn có thể chạy Netstat có sẵn trong Bảng điều khiển XAMPP và kiểm tra quá trình nào sử dụng cổng 80 trong hệ thống của bạn.

Đối với tôi, đó không phải là IIS , mà là Skype .

Tắt quy trình / ứng dụng đó và sau đó khởi động các dịch vụ Apache.


Điều này có vẻ giống như một bản sao của một số câu trả lời trước đó, có lẽ tốt hơn là một nhận xét rằng Skype là quá trình giải quyết vấn đề cho bạn.
blm

"Đó là skype" âm thanh như một câu trả lời cho tôi! Nó có thể không phải là câu trả lời giải quyết được nó cho OP, nhưng nó đã giúp tôi, và tôi rất biết ơn đó là một câu trả lời chứ không phải một bình luận, hoặc tôi có thể đã không nhìn thấy nó.
arichards

1

Tôi biết rằng có thể vấn đề này đã được giải quyết nhưng tôi đã gặp vấn đề tương tự với giải pháp khác. Đối với điều đó, tôi sẽ giải thích một giải pháp khả thi khác. Trong trường hợp của tôi, cổng 80 đã bị chiếm bởi Skype (pid: 25252) và tôi không biết chương trình là gì.

Để xem pid của chương trình đang sử dụng cổng 80, bạn có thể sử dụng lệnh mà người khác đã nói trước đây:

netstat -aon | findstr 0.0:80

Để kết thúc quá trình sử dụng pid (trong trường hợp bạn không biết chương trình), bạn phải mở CMD với sự cho phép của quản trị viên và sử dụng lệnh tiếp theo:

taskkill /pid 25252

Các tùy chọn khác với lệnh này có ở đây .


Đây không phải là vấn đề tương tự vì bạn có thể tắt cổng 80 trong cài đặt của skype. Bạn không cần phải giết skype!
Aloso

Bạn đúng rồi. Bây giờ tôi đã thấy tùy chọn. Khi tôi gặp vấn đề, tôi không thấy nó.
CGG

1

Tôi biết điều này MIGHT không phải là nguyên nhân gây ra vấn đề của bạn, nhưng tôi đã dành vài giờ đập đầu vào tường để giải quyết vấn đề này và đây là giải pháp của tôi.

(chạy Windows 10 x32)

Vì vậy, tôi đã cài đặt XAMPP trong một thư mục lồng nhau sâu và tất cả các tệp conf đều tham chiếu đến root \xampp\apache, trong khi các tệp của tôisome_dir\another_dir\whatthehelliswrongwithme\finally\xampp\apache

vì vậy các tùy chọn của tôi là xem qua và chỉnh sửa tất cả các \xampp\apachetham chiếu và trỏ chúng vào đúng nơi, HOẶC, tùy chọn đơn giản hơn nhiều ... cài đặt lại XAMPP ở gốc, vì vậy tất cả các tham chiếu đều trỏ đến đúng nơi.

Hơi khó chịu nhưng tôi đoán đó là những gì chúng ta nhận được khi Mac và Windows cố gắng trở thành bạn của nhau ..

Hy vọng nó sẽ giúp một số bạn.



1

Tôi nghĩ việc thay đổi cổng máy chủ Apache của bạn thật đơn giản

  1. Đi tới C: \ xampplite \ apache \ conf
  2. Mở tệp httpd.conf
  3. Tìm kiếm Nghe 80
  4. Thay đổi 80 thành bất kỳ khác như 9080
  5. Bây giờ khởi động lại XAMPP thử khởi động máy chủ

NB Tôi đang sử dụng Phiên bản máy chủ: 5.1.41 với Windows 10


0

Việc tắt "một số quy trình hệ thống" có thể phức tạp ... bạn nên chỉnh sửa [thư mục Apache] /conf/httpd.conf như được đề cập bởi @Sergey Maksimenko và nếu bạn muốn định cấu hình máy chủ ảo, hãy sử dụng cổng mới trong [Apache thư mục] /conf/extra/httpd-vhosts.conf (Tôi đã sử dụng 4900 thay vì 80 và 4901 thay vì 443 trong [thư mục Apache] /conf/httpd-ssl.conf). Và hãy nhớ sử dụng cổng khi truy cập trang trên localhost (hoặc máy chủ ảo của bạn), ví dụ: localhost: 4900 / index.html


0

Đã sửa lỗi node.js này không chạy trên cổng 80 trong Windows 10, tôi đã gặp listen eacceslỗi. Start> Services, tìm "World Wide Web Publish Service" và vô hiệu hóa nó, chính xác như paaacman đã mô tả.


0

Tôi đã gặp vấn đề tương tự và không có giải pháp nào ở trên phù hợp với tôi.

Apache sử dụng cả hai cổng 80 và 443 (cho HTTPS) và cả hai đều phải sẵn sàng được sử dụng để Apache khởi động thành công. Chỉ cổng 80 có thể là không đủ.

Trong trường hợp của mình, tôi thấy rằng khi chạy VMWare Workstation, tôi có cổng 443 được sử dụng bởi VMware chia sẻ.

Bạn phải tắt tính năng chia sẻ trong Tùy chọn chính của VMware hoặc thay đổi cổng trong phần này.

Sau đó, miễn là bạn không có máy chủ nào khác được nối với cổng 80 (xem các giải pháp ở trên) thì bạn sẽ có thể khởi động Apache hoặc NGinx trên XAMPP hoặc bất kỳ ứng dụng ngăn xếp Windows nào khác.

Tôi hy vọng điều này sẽ giúp những người dùng khác.


0

Trong khi nhiều người đang sử dụng phương pháp để dừng / tắt IIS, có thể hữu ích khi biết rằng bạn có thể chỉ cần sửa đổi cổng XAMPP, đã được giải đáp tại đây . Đây là con đường tôi phải đi vì tôi cần cả hai việc chạy.


0

Bên cạnh lý do khá rõ ràng (IIS), có một lý do khác đủ phổ biến cho vấn đề này. Rất đáng để trích dẫn câu hỏi này và câu trả lời của nó ở đây:

http://stackoverflow.com/questions/22994888/why-skype-using-http-or-https-ports-80-and-443 

Vì vậy, nếu bạn đã cài đặt Skype trong máy tính, hãy nhớ kiểm tra điều này. Giải pháp được trích dẫn ở đây:

Để tắt và tắt tính năng nghe và sử dụng Skype trên cổng 80 và cổng 443, hãy mở cửa sổ Skype, sau đó nhấp vào menu Công cụ và chọn Tùy chọn. Nhấp vào tab Nâng cao và chuyển đến tab phụ Kết nối. Bỏ chọn hoặc bỏ chọn hộp kiểm Sử dụng cổng 80 và 443 làm tùy chọn thay thế cho tùy chọn kết nối đến. Nhấp vào nút Lưu và sau đó khởi động lại Skype để thay đổi có hiệu lực.


Mọi người đều nói rằng hãy tắt và vô hiệu hóa Skype, nhưng điều đó có tác động gì đến Skype? Chúng ta có cần thay đổi bất kỳ cài đặt cấu hình nào trong Skype không?
luisdev

@luisdev Chỉ cần làm theo các bước được mô tả trong phần trích dẫn ở trên. Nó cho bạn biết cách thay đổi cài đặt cấu hình trong Skype.
Earth Engine

Ok, tôi biết cách thay đổi cài đặt cấu hình trong Skype, nhưng việc thay đổi cài đặt Skype có ảnh hưởng gì đến chức năng của Skype không? Nó có ảnh hưởng đến khả năng thực hiện hoặc nhận cuộc gọi trên Skype của tôi không? Nếu Skype không còn nghe trên cổng 80 và 443 thì mọi người vẫn có thể gọi cho tôi chứ?
luisdev 14/09/2016

1
@luisdev Tôi không gặp sự cố khi tắt các cổng đó trong Skype. Có vẻ như nó chỉ hữu ích khi bạn đứng sau một số tường lửa cụ thể. Vì vậy, nếu điều này không hiệu quả với bạn, bạn sẽ phải bật lại. Thật không may, Skype đã thực hiện điều này sai cách khi nó đang nghe trên TẤT CẢ các địa chỉ chứ không phải chỉ các địa chỉ NGOÀI RA, khiến bạn không thể chỉ nghe trên localhost.
Earth Engine

-1

Đầu tiên, mở regedit chạy với tư cách quản trị viên xem hình ảnh mở HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentCurrentControlSet \ Services \ HTTP mở Bắt đầu, thay đổi giá trị từ 3 thành 4 xem hình ảnh rồi khởi động lại máy tính của bạn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.