XAMPP - Cổng 80 được sử dụng bởi Nhóm Không thể mở quy trình với chế độ PID 4! 12


182

Tôi đã cố gắng tìm ra cách khắc phục vấn đề này trong hai ngày. Tôi chưa quen với loại điều này vì vậy tôi sẽ đánh giá cao nếu ai đó có thể cho tôi biết cách khắc phục.

Tôi đã thử xóa skype nhưng điều đó không hiệu quả, tôi đã thử tắt điều web trên toàn thế giới, IIS dường như không hoạt động.

12:51:22 PM  [Apache]   Problem detected!
12:51:22 PM  [Apache]   Port 80 in use by "Unable to open process" with PID 4!
12:51:22 PM  [Apache]   Apache WILL NOT start without the configured ports free!
12:51:22 PM  [Apache]   You need to uninstall/disable/reconfigure the blocking application
12:51:22 PM  [Apache]   or reconfigure Apache and the Control Panel to listen on a different port

2
Không, tôi không muốn gõ nó ở đây, không phải ai cũng biết mọi thứ về máy tính. Tôi đã yêu cầu giúp đỡ, tôi đã googled nó và tất cả mọi thứ mọi người nói để làm không hoạt động.
dùng3097839

Ah, điều này có ý nghĩa hơn bây giờ. Hãy thử petri.co.il/quickly_find_local_open_ports.htm để tìm ra ai đang chặn cổng 80
Pekka

9
@Pekka Tôi đã làm việc với máy tính từ không lâu sau khi tôi ngừng mặc tã, tôi đã là một lập trình viên trong gần một thập kỷ, và tôi đã biết được câu hỏi này và rất may vì những người hỏi và trả lời câu hỏi này SỬ DỤNG Trang web, tôi nhanh chóng tìm thấy câu trả lời. Mặc dù điều này có lẽ nên được chuyển sang siêu người dùng, gây khó chịu cho mọi người và khiến họ cảm thấy ngu ngốc khi đặt câu hỏi hợp pháp trái với cách thức hoạt động của cộng đồng này. Tôi đề nghị bạn tìm một số mục đích khác trong cuộc sống.

3
Chà, tôi không chắc kết quả này được tạo ra trong quá trình tìm kiếm của bạn, nhưng trong tìm kiếm của tôi, nhờ chủ đề này, đây là đầu danh sách. Đó chính xác là những gì cộng đồng này cố gắng trở thành, một cơ sở tri thức nổi tiếng và nổi tiếng cho loại công cụ này. Vì vậy, trong khi tôi đánh giá cao những gì bạn đang nói, trong thực tế, nhiệm vụ đã hoàn thành nhờ vào OP.

@TechnikEmpire nhưng thực tế là câu hỏi này hiện là kết quả xếp hạng cao của Google là một phần của vấn đề, không phải là giải pháp. Kết quả Google đã có câu trả lời tuyệt vời trước khi câu hỏi này xuất hiện - Tôi đã kiểm tra trước khi đưa ra nhận xét, tôi luôn làm như vậy. Những câu trả lời đó có thể đã bị đẩy xuống bởi câu hỏi này, bởi vì mối quan hệ rộng lớn của SO với Google. Xem thêm thảo luận tại đây: meta.stackexchange.com/questions/160565/iêu
Pekka

Câu trả lời:


354
  1. Mở một dấu nhắc CMD với tư cách quản trị viên và thực hiện lệnh sau:

    net stop was /y
    
  2. Mở hộp thoại Run (nhấn Win+ R), sau đó gõ:services.msc

    Sau đó tìm kiếm Dịch vụ xuất bản World Wide Web (WWW-Publishing Service) và Dịch vụ đại lý triển khai web và ngăn chặn chúng. Bạn cũng nên vô hiệu hóa chúng.

  3. Bắt đầu lại Apache với XAMPP :)

Liên kết giới thiệu: https://www.sitepoint.com/unblock-port-80-on-windows-run-apache/


15
Tôi không thể tìm thấy web trên toàn thế giới
Mohammad Kermani

4
Một cách khác để có quyền truy cập vào các dịch vụ - đi đếnControl Panel > System and Security > Administrative tools > Services
Al.G.

28
"Dịch vụ báo cáo máy chủ SQL (MSSQLSERVER)" cũng sử dụng cổng 80 và do đó, nó sẽ bị dừng nếu máy chủ MS-SQL không được đặt trên máy của bạn.
johnkarka

1
Bất cứ ý tưởng tại sao điều này có thể xảy ra? Có phải Windows đang bị douchey hoặc ai đó hack máy của tôi không?
Stan Quinn

5
Tôi đã tắt World Wide Web Publishing Services và vấn đề đã được giải quyết! Cảm ơn bạn.
Mike Stratton

139

Một tùy chọn rất dễ dàng khác là chỉ cần đặt Apache để nghe trên một cổng khác. Điều này có thể được thực hiện bằng cách nhấp vào nút "Cấu hình" trên cùng dòng với mô-đun "Apache", chọn tệp "httpd.conf" trong danh sách thả xuống, sau đó thay đổi dòng "Nghe 80" thành "Nghe 8080". Lưu file và đóng nó lại.

Bây giờ nó tránh Cổng 80 và sử dụng Cổng 8080 thay vào đó mà không gặp vấn đề gì. Điều bổ sung duy nhất bạn cần làm là đảm bảo đưa localhost:8080vào trình duyệt để trình duyệt biết tìm trên Cổng 8080. Nếu không, nó sẽ mặc định là Cổng 80 và sẽ không tìm thấy trang web địa phương của bạn.

Điều này cũng sẽ yêu cầu bạn khởi động lại Apache để thay đổi có hiệu lực.

Voila! Đã sửa.


Tôi đã buộc nâng cấp lên Windows 10 và nó đã phá vỡ cài đặt XAMP của tôi, câu trả lời này đã sửa nó cho tôi. Cảm ơn!
Ian

Điều này cũng hiệu quả với tôi, ngoại trừ tôi thoát ra khỏi mọi thứ, nhấp vào xampp_start C:/xamppvà sau đó đổi nó thành cổng 81. 8080 không hoạt động với tôi.
dùng3553260

1
Tôi đề nghị giải pháp của bạn. Trong trường hợp của tôi, tôi cần phát triển Ứng dụng .NET .NET và PHP. Nếu tôi dừng World Wide Web Publishing Servicetôi không thể làm việc trên ứng dụng ASP của mình. Thay đổi cổng là giải pháp cho tôi. Cảm ơn!
mihkov

3
Trong tệp httpd.conf bổ sung, bạn cũng có thể cần thay đổi cổng từ "Cấu hình"> "Cài đặt dịch vụ và cổng". Trên tab "Apache", thay đổi giá trị "Cổng chính" sang cổng mới
Ian A

42

Trong httpd.conf thay đổi các dòng sau và sau đó khởi động lại ứng dụng:

  • Listen 80 đến Listen 8080
  • ServerName localhost:80 đến ServerName localhost:8080

Khi bạn nhấn "Bắt đầu", ứng dụng vẫn có thể nói rằng bạn có lỗi như "Cổng 80 được sử dụng bởi" Không thể mở quy trình "với PID ..." nhưng nó vẫn hoạt động.

Nếu lỗi bao gồm "Cổng 443 được sử dụng bởi" Không thể mở quy trình "với PID ...", bạn cần thay đổi cả httpd.conf và httpd-ssl.conf.

Trong httpd-ssl.conf thay đổi:

  • Listen 443 đến Listen 4433
  • <VirtualHost _default_:443> đến <VirtualHost _default_:4433>
  • ServerName www.example.com:443 đến ServerName www.example.com:4433

Tôi cuối cùng đã phải làm điều này về vấn đề của tôi. trời đất ơi! PID đó là bởi hệ thống.
mzimhle

42

Trích từ bài viết này :

  1. Đi đến lệnh chạy của bạn và nhập:

    netstat -o -n -a | findstr 0.0:80

Số cuối cùng ở đây là ID tiến trình sử dụng nó. Đây thường là dịch vụ liên quan đến IIS hoặc web khác và rất dễ giải quyết, nhưng thông thường (dường như thường thấy trên google), nó dường như là PID 4 - mà theo Trình quản lý tác vụ Windows là Hạt nhân NT và Hệ thống. Không có ích gì khi giết chết điều này sẽ dẫn đến một màn hình xanh chết chóc.

Cái cổng ăn cắp 80 không liên quan gì đến IIS hay web, đó là Dịch vụ báo cáo SQL Server. Tắt bất cứ thứ gì giống với Dịch vụ máy chủ SQL và khởi động lại Apache, không cần khởi động lại.

Vì vậy, vấn đề với PID 4 nghe cổng 80? Kiểm tra các dịch vụ SQL của bạn và tắt chúng đi.

CẬP NHẬT - Nhận xét từ @sangam:

Làm việc tại một shot. Trong trường hợp của tôi, hóa ra là dịch vụ báo cáo máy chủ SQL. Tôi đã dừng dịch vụ cho tất cả các phiên bản đã cài đặt và nó đã hoạt động (không cần khởi động lại máy).


7
Làm việc tại một shot. Trong trường hợp của tôi, hóa ra là dịch vụ báo cáo máy chủ SQL. Tôi đã dừng dịch vụ cho tất cả các phiên bản đã cài đặt và nó đã hoạt động (không cần khởi động lại máy). Cảm ơn bạn.
sangam

1
Rất hữu ích .. trước đây, tôi đã thay đổi cổng skype. và việc đóng cửa các dịch vụ sql đã giúp tôi rất nhiều. Cảm ơn rất nhiều
Waqar

2
cuối cùng, trong trường hợp của tôi, đó cũng là MSSQL
Tom Sarduy

1
dừng dịch vụ báo cáo máy chủ SQL (MSSQLSERVER) làm việc cho tôi
Làm phiền

1
Cảm ơn đây là câu trả lời cho tôi.
balron

34

Vì vậy, tôi đã gặp phải vấn đề tương tự khi cố gắng bắt đầu dịch vụ Apache và tôi muốn chia sẻ các giải pháp của mình với bạn. Dưới đây là một số lưu ý về các dịch vụ hoặc chương trình có thể sử dụng cổng 80:

  1. Skype : Skype sử dụng cổng 80/443 theo mặc định. Bạn có thể thay đổi điều này từ Tools -> Options -> Advanced -> Connectionsvà vô hiệu hóa hộp kiểm "sử dụng cổng 80 và 443 cho các kết nối đến bổ sung" .

  2. IIS : IIS sử dụng cổng 80 là mặc định, do đó bạn cần tắt nó đi. Bạn có thể sử dụng hai lệnh sau: net stop w3svc, net stop iisadmin.

  3. Dịch vụ báo cáo máy chủ SQL : Bạn cần dừng dịch vụ này vì có thể mất cổng 80 nếu IIS không chạy. Đi đến các dịch vụ địa phương và dừng lại.

  4. VMware Workstation : Nếu bạn đang chạy VMware Workstation, bạn cũng cần dừng máy chủ VMware Workstation - cổng 443.

Các tùy chọn này hoạt động rất tốt với tôi và tôi có thể bắt đầu dịch vụ Apache mà không gặp lỗi.

Tùy chọn khác là thay đổi cổng nghe Apache từ httpd.conf và đặt số cổng khác.

Hy vọng giải pháp này sẽ giúp bất cứ ai gặp phải vấn đề tương tự một lần nữa.


4
Của tôi là dịch vụ báo cáo SQL Server. Cảm ơn!
Jayanga Kaushalya

dừng w3svc đã khắc phục sự cố của tôi trên windows 10. Câu trả lời tuyệt vời.
Nox

Làm thế nào bạn có thể biết dịch vụ nào đang sử dụng cổng 80? (Windows 10)
Chris Nielsen

Đối với tôi điều này đã hoạt động "IIS: IIS sử dụng cổng 80 là mặc định vì vậy bạn cần tắt nó. Bạn có thể sử dụng hai lệnh sau: net stop w3svc, net stop iisadmin"
Ravindra Singh

33

Bạn có thể cần phải dừng "Dịch vụ đại lý triển khai web"

Nhấn Win + R và nhập services.msc

Nhấp chuột phải vào Dịch vụ đại lý triển khai web và chọn "Dừng"

Khởi động lại XAMPP

Ngoài ra, sau khi nhấp đúp vào "Dịch vụ đại lý triển khai web", bạn có thể đặt loại Khởi động thành Thủ công, do đó "Dịch vụ đại lý triển khai web" sẽ không tự động bắt đầu


1
Có thể có bất kỳ vấn đề bằng cách vô hiệu hóa dịch vụ đó?
Muhammad Muazzam

6
  1. Mở Trình quản lý tác vụ (Ctrl + Alt + Xóa).
  2. Chuyển đến tab "Chi tiết".
  3. Sắp xếp theo số PID.
  4. Kết thúc quá trình đang sử dụng số PID chỉ ra lỗi.
  5. Khởi động lại XAMPP.

2
Trong trường hợp của tôi, đó là hệ thống đang sử dụng PID4. Do đó, điều này có thể nguy hiểm.
Hợp nhất

làm việc cho tôi vì cổng được sử dụng bởi máy chủ khác của tôi. Và xem xét nhận xét của @ Fusion quá
Varshaan

6

Vì có nhận xét của @johnkarka về câu hỏi, cổng này cũng được sử dụng bởi dịch vụ báo cáo SQL Server. Sau khi dừng điều này, Apache đã bắt đầu tốt.

  1. Chuyển đến "Trình quản lý cấu hình máy chủ SQL"
  2. Nhấp vào "Dịch vụ báo cáo SQL Server" và dừng nó

nhập mô tả hình ảnh ở đây

Điều buồn cười là IIS đã hoạt động tốt trong cùng một cấu hình nhưng không phải Apache, đã phải dừng dịch vụ Báo cáo SQL để làm cho nó hoạt động trên cổng mặc định (80).


4

Điều làm việc cho tôi là dừng Dịch vụ Thông tin Internet (IIS). Nếu bạn đang sử dụng Windows 7, nhấp vào nút Bắt đầu và trong hộp tìm kiếm của bạn, nhập "iis". Nhấp vào "Trình quản lý dịch vụ thông tin Internet (IIS)". Khi cửa sổ bật lên và giả sử bạn không có biểu tượng nào được chọn, bạn chỉ cần có thể nhấp Dừng trên khung hành động bên phải. XAMPP Apache của tôi bắt đầu ngay. Hy vọng tất cả làm việc cho bạn.


3

Trong cửa sổ 10, để giải phóng cổng 80:

trong trường hợp của tôi, tôi mở "Dịch vụ" từ "Tìm kiếm Windows" (ở góc bên trái trên màn hình), sau đó dừng tất cả các dịch vụ máy chủ SQL MSSQLSERVER và nó hoạt động trở lại


3

Tôi cũng gặp vấn đề này và việc dừng dịch vụ sử dụng cổng 80 không giúp được gì. Tôi đã giải quyết nó bằng cách làm theo thủ tục này (tìm thấy trên một bảng tiếng Pháp ):

  1. Khởi chạy RegEdit
  2. HKEY_LOCAL_MACHINE \ HỆ THỐNG \ CurrentControlset \ Services \ HTTP
  3. Thay đổi giá trị của "bắt đầu" thành 4 (bị vô hiệu hóa)
  4. Khởi động lại máy tính của bạn

Không chắc điều này ảnh hưởng đến các dịch vụ khác như thế nào, nhưng nó đã giải quyết vấn đề vĩnh viễn và cho đến nay tôi không thấy bất kỳ vấn đề nào.

Sử dụng Windows 10.


2

Nếu bạn đã có Dịch vụ báo cáo SQLServer chạy cục bộ thì bạn cũng cần dừng điều đó ..


2

Tôi cũng gặp vấn đề tương tự, nhưng trong trường hợp của tôi, Apache đã chạy và vì một số lý do, công cụ cấu hình XAMPP không cho thấy điều đó. Nó xảy ra sau khi tôi khởi động XAMPP lần đầu tiên sau khi cài đặt. Sau khi đánh sập các phiên bản Apache khác, tất cả đều ổn và các cổng 80 và 443 lại miễn phí.

Vì vậy, trước khi thực hiện các thay đổi đối với hệ thống của bạn, hãy đảm bảo điều gì đó rõ ràng như những điều trên không xảy ra.


2

"Dịch vụ báo cáo máy chủ SQL" đã gây ra sự cố trong hệ thống của tôi, sau khi dừng nó, Apache bắt đầu hoạt động tốt


2

Tôi có cùng một vấn đề, tôi đã giải quyết vấn đề, chỉ cần vô hiệu hóa

"Dịch vụ BranchCache" trong các dịch vụ.

Bằng cách nào đó cập nhật windows, dịch vụ này được kích hoạt khi khởi động và sử dụng 80 cổng. Khi bạn kiểm tra qua netstat, bạn có thể thấy hệ thống được sử dụng nhưng không thể hiểu dịch vụ nào được sử dụng.


1
Vô hiệu hóa dịch vụ này sau mỗi bản cập nhật Windows 10 sẽ giải quyết vấn đề
Matt

2

Sau khi thay đổi cổng chính 80 thành 8080, bạn phải cập nhật cổng trong bảng điều khiển: nhập mô tả hình ảnh ở đây Sau đó bấm vào đây: nhập mô tả hình ảnh ở đây Và tại đây: nhập mô tả hình ảnh ở đây Sau đó lưu và khởi động lại.


1

Nhấp vào dịch vụ trên bảng điều khiển Xampp (tên tệp là services.msc, thông tin bổ sung).

Đầu tiên, hãy tìm IIS, nếu nó đang chạy. Dừng lại (dừng tùy chọn dịch vụ này ở bên trái sau khi nhấp vào tên dịch vụ.). Sau đó, đây là vấn đề chính, Hãy tìm Dịch vụ triển khai Web (không phải tên chính xác mặc dù lúc đầu nó có triển khai Web.). Dừng dịch vụ này quá. Hãy thử lại và Apache sẽ hoạt động.

Nếu bạn đang chạy Skype, hãy thoát khỏi đó, chạy Apache, sau đó khởi chạy Skype


Thông thường, Skype tích hợp cổng 80 nhưng thông minh hơn XAMPP và sẽ sử dụng một cổng khác sau khi nhận ra rằng 80 thuộc về Máy chủ Apache
ytpillai

1

Tôi cũng gặp vấn đề tương tự, khi tôi cài đặt MS WebMatrix, IIS Server đã bị chặn cổng 80 mà XAMPP đang chạy. Tôi đã cố gắng tìm World Wide Web Publishing Service và dừng nó, nhưng không thể tìm thấy nó trong danh sách. Cách tốt nhất là thay đổi một cổng.

Vui lòng tham khảo với liên kết này
ref.


1

Đối với những người có ASP.NET, C # hoặc có người dùng SQL Server, Nếu bạn đang sử dụng SQlServer HOẶC Visual Studio Cổng của bạn có thể gặp phải. điều dễ dàng nhất bạn có thể muốn làm là trên Command> servies.msc và sau đó tìm Dịch vụ báo cáo máy chủ SQl và sau đó dừng nó.


0

nếu dịch vụ là http.sys

Bạn cần thay đổi địa chỉ IP bị ràng buộc cho http.sys

Netsh http thêm iplisten ipaddress = ::

Làm việc tốt mà không cần khởi động lại hệ điều hành.


0

Dịch vụ đại lý triển khai web được triển khai với WebMatrix và là nguyên nhân gây ra tai ương của tôi. Nó cũng có thể được phân phối với các ứng dụng khác được cài đặt bằng Trình cài đặt nền tảng web của Microsoft.

Gỡ cài đặt nó giải quyết vấn đề của tôi!


Không, chỉ cần thay đổi cổng mà máy chủ lắng nghe.
rango

0

Đối với tôi thường hoạt động: - Tắt Skype - Tắt tất cả các quy trình SQL Server được hiển thị trong services.msc - Tắt World Wide Web Publishing trong services.msc



0

XAMPP - Cổng 80 được sử dụng bởi Nhóm Không thể mở quy trình với chế độ PID 4! 12

chạy bình luận trong danh sách tác vụ cmd

và tìm ra tên PID và quy trình liên quan đến trình quản lý tác vụ cửa sổ đang mở này

bạn cũng có thể mở trình quản lý tác vụ cửa sổ bằng cách sử dụng CTRL + ALT + DEL

Bây giờ bấm vào tab quy trình và tìm tên bằng cách sử dụng PID và nhấp chuột phải vào quá trình đó và kết thúc quá trình

bây giờ một lần nữa khởi động lại xampp


0

Tôi đã có vấn đề tương tự. Sau khi một số googling đến trang này. Vì tôi đoán lỗi này có thể có nhiều lý do khác nhau, vì vậy hãy lắng nghe kinh nghiệm của tôi:

Nhật ký dòng đỏ Xampp:

12:53:54 PM  [Apache] Problem detected!
12:53:54 PM  [Apache]   Port 443 in use by "Unable to open process" with PID 3908!
...

Cuối cùng, hóa ra tôi có dòng mã này trong mã php của mình:

$res = file_get_contents("http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");

Mục đích của đoạn mã này là lấy một bản sao kết quả php từ một nơi nào đó trong máy chủ của tôi. Nhưng nó chỉ bị mắc kẹt trong một vòng lặp có nội dung của riêng nó!

Tôi đã sửa mã:

$res = file_get_contents(str_replace("my_uri.php" , "mirror_uri.php" , "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"));

Sau đó, tôi khởi động lại apache ... và lỗi apache đó không bao giờ xảy ra nữa.

Vì vậy, đôi khi tìm kiếm các điểm dừng có thể xảy ra trong mã của bạn là một cách tiếp cận tốt.


0

Trong Ubuntu theo mặc định, hệ thống sẽ không cho phép bạn chiếm các cổng đặc quyền [0 đến 1023], ngoài việc chỉ định cổng là 80, bạn cần chạy XAMP bằng sudo.


-1

Tôi viết điều này, vì tôi không tìm thấy câu trả lời cho cùng một câu hỏi. Trong trường hợp của tôi, PID là 2484.

  1. bạn phải tìm một quy trình hoặc dịch vụ với PID này: mở cmd (trong Windows) và viết:

    tasklist
    
  2. Tìm PID của bạn trong danh sách này và đọc tên của quá trình hoặc dịch vụ.

  3. Bây giờ bạn có thể giết cái này bằng Trình quản lý tác vụ

  4. tìm tên này trong danh sách quy trình

  5. nhấp vào Kết thúc quá trình.

Đó là trường hợp của tôi. Có thể bạn phải mở services.msc và dừng Dịch vụ với PID của bạn.

Trên máy tính của tôi xampp nó hoạt động tốt :)

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.