PDA

Xem phiên bản đầy đủ : Fix lỗi port 80 all bị chiếm và cách đổi port cho Xampp



tsivn
03-03-2021, 09:40 PM
Kiểm tra ứng dụng sử dụng cổng 80 trên Windows

Hướng dẫn kiểm tra lỗi
1
netstat -abno -p tcp
Hoặc thêm lệnh find để giới hạn kết quả tìm kiếm
1
netstat -abno -p tcp | find "80"


Mình dính sau khi cài XAMPP, không thể Start Apache vì port 80 đã sử dụng. Có thể chưa hẳn bản dưới đã có thể áp dụng được y chang, nhưng nó hỗ trợ khá nhiều, cũng sẽ giúp ta hiểu hơn khá nhiều về hoạt động của các ứng dụng trên Windows
Đôi lúc bạn muốn start ứng dụng sử dụng Apache, Jetty hoặc mở ứng dụng port 80 nhưng không thể start được vì 1 lý do đơn giản là cổng 80 đang được sử dụng bởi các ứng dụng khác. Bài viết này tôi sẽ hướng dẫn các bạn kiểm tra ứng dụng nào đang sử dụng cổng 80 trên Windows. Để có thể chạy được Apache (sử dụng Xampp, …)
Thường thì các ứng dụng sau sử dụng cổng 80 trên Windows:
Skype
IIS
IIS Admin Service
World Wide Web Publishing service
SQL Server Reporting services
Web Deployment Agent Service
HTTP Server API
Việc làm đơn giản là hãy stop hết các ứng dụng, services đó đi ! Dưới đây là hướng dẫn cơ bản cách kiểm tra và stop ứng dụng đang hoặc mặc định sử dụng cổng 80.
Contents [hide]
1: Skype
2: IIS
3: Services
4: HTTP Api Service
5: Netstat
1: Skype
Đối với Skype, bạn chỉ cần thoát ứng dụng là ok, hoặc thay đổi tùy chỉnh Skype: Tools > Options > Advanced > Connection: Bỏ check “Use port 80 …” đi
2: IIS
Hãy Stop IIS hoặc gỡ nó đi nếu không sử dụng 😀
3: Services
Mở trình quản lý services, mở cửa sổ run, gõ lệnh:
1
services.msc
REPORT THIS AD

Stop các services sau:
World Wide Web Publishing service
SQL Server Reporting services
Web Deployment Agent Service
4: HTTP Api Service
Đây là service cho phép các ứng dụng liên lạc với nhau thông qua HTTP mà không cần sử dụng IIS – Microsoft Internet Information Server. Các ứng dụng có thể đăng ký để nhận hoặc gửi các http request.
Sử dụng lệnh sau trên CMD – Command Prompt
1
net stop http
5: Netstat
Trường hợp, không rơi vào các trường hợp trên (tức là vẫn không khởi chạy được apache2), hãy sử dụng lệnh netstat để kiểm tra các ứng dụng, services đang mở cổng 80 giao thức tcp.
Mở CMD với quyền Administrator, gõ lệnh sau:
1
netstat -abno -p tcp
REPORT THIS AD

Hoặc thêm lệnh find để giới hạn kết quả tìm kiếm
1
netstat -abno -p tcp | find "80"
Bạn sẽ thấy một danh sách các ứng dụng đang nghe trên các cổng tcp, tương ứng với process id. Hãy sử dụng Task Manager để kill ứng dụng có process id tương ứng.
netstat -abno -p tcp
Note: Để thấy được process id trên Task Manager (tab: Processes), chọn: Views > Select columns > PID (Process Identifier)
REPORT THIS AD

pid-task-manager

Tất nhiêm xampp trên máy tôi bị lỗi này
xampperror_80_443.png
Hãy chịu khó đọc lỗi thật kỹ nhé… xem phần lỗi đỏ… thật thật kỹ và cẩn thận, hãy tập nó như một thói quen… nó có 2 lỗi.
lỗi 1:
Riêng tôi thì tím thấy port 80 đang hoạt động bởi ntoskrnl.exe
loi
Nếu ai hỏi ntoskrnl.exe là gì?
Thì đây, tôi trả lời luôn:
– Ntoskrnl.exe là một tập tin được sử dụng bởi Microsoft khởi động lên hạt nhân. Trong trường hợp bình thường, nó sẽ không bao giờ xuất hiện trong quá trình của bạn. Nếu có, hãy chắc chắn để cập nhật và chạy phần mềm chống vi-rút của bạn.
–> Nhưng bạn đừng vội stop nó, bởi nó chỉ được gọi bởi services SQL Server Reporting Services (MSSQLSERVER), hãy stop nó vậy là xong.
Hãy start tiếp Apache bạn sẽ thấy nó còn tiếp tục lỗi 443 do vmware đang chiếm, vâng… tất nhiên rồi vẫn còn 1 lỗi, tôi đã bảo bạn xem thật kỹ thông báo của nó.

Lỗi 2:Mở VMWare, vào menu Edit → Preferences → Shared VMs → click DISABLE SHARING
vmware-workstation-xampp-khong-khoi-dong-duoc
==> Kết quả hoàn hảo
xampp_finish.pngTôi biết mình hơi dài dòng, nhưng đây không chỉ giúp bạn hiểu rõ hơn vấn đề, cả những vấn đề liên quan, nó có ích cho bạn hay không tôi không biết, nhưng chắc chắn nó có ích với tôi.
Chúc bạn may mắn!