Trong quá trình sử dụng Windows Server để chạy website với XAMPP, Apache hoặc IIS, bạn có thể gặp tình trạng không thể khởi động web server vì port 80 đang bị một dịch vụ khác sử dụng.
Một trong những nguyên nhân có thể gặp là SQL Server Reporting Services (SSRS), đặc biệt khi máy chủ đang sử dụng SQL Server Express với service có tên:
ReportServer$SQLEXPRESSTrong bài viết này, CloudNest sẽ hướng dẫn cách kiểm tra, tắt SQL Server Reporting Services và cấu hình để dịch vụ này không tự động khởi động lại sau khi VPS reboot.
1. Kiểm tra port 80 đang bị chiếm
Trước tiên, mở Command Prompt với quyền Administrator và chạy lệnh:
netstat -ano | findstr :80Nếu xuất hiện dòng có trạng thái LISTENING, điều đó có nghĩa là đang có một tiến trình lắng nghe trên port 80.
Ví dụ:
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1234Trong đó, số 1234 là PID của tiến trình đang sử dụng port 80.
2. Kiểm tra SQL Server Reporting Services
Để kiểm tra máy chủ có đang chạy Reporting Services hay không, sử dụng lệnh:
sc query type= service state= all | findstr /I "Report"Nếu kết quả có:
SERVICE_NAME: ReportServer$SQLEXPRESS DISPLAY_NAME: SQL Server Reporting Services (SQLEXPRESS)thì máy chủ đang có SQL Server Reporting Services cho instance SQLEXPRESS.
3. Tắt SQL Server Reporting Services
Nếu VPS không sử dụng chức năng Reporting Services, bạn có thể dừng service bằng lệnh:
net stop "ReportServer$SQLEXPRESS"Sau khi service được dừng, kiểm tra lại port 80:
netstat -ano | findstr :80Nếu port 80 đã được giải phóng, bạn có thể khởi động lại Apache, IIS hoặc web server đang sử dụng port này.
4. Không cho Reporting Services tự khởi động lại
Nếu chỉ dừng service thì sau khi Windows Server reboot, Reporting Services có thể được khởi động lại tùy theo cấu hình Startup của service.
Để ngăn service tự động khởi động cùng Windows, chạy:
sc config "ReportServer$SQLEXPRESS" start= disabledNếu xuất hiện:
[SC] ChangeServiceConfig SUCCESSthì cấu hình đã được thay đổi thành công.
5. Kiểm tra lại cấu hình service
Bạn có thể kiểm tra trạng thái Startup bằng:
sc qc "ReportServer$SQLEXPRESS"Nếu thấy:
START_TYPE : 4 DISABLEDthì Reporting Services đã được đặt thành Disabled và sẽ không tự động chạy khi Windows Server khởi động.
6. File BAT tự động thực hiện các bước
Nếu bạn không muốn nhập từng lệnh thủ công, CloudNest đã chuẩn bị sẵn file .BAT để tự động dừng và vô hiệu hóa SQL Server Reporting Services.
File sẽ thực hiện:
- Kiểm tra quyền Administrator.
- Dừng service
ReportServer$SQLEXPRESS. - Chuyển Startup của service sang Disabled.
- Kiểm tra lại cấu hình service.
⬇ Tải file disable_reportserver.bat
Cách sử dụng:
- Tải file
disable_reportserver.batvề VPS. - Nhấn chuột phải vào file.
- Chọn Run as administrator.
- Chờ script hoàn tất.
- Kiểm tra lại port 80 bằng lệnh
netstat -ano | findstr :80.
7. Lưu ý quan trọng
⚠️ Không nên xóa trực tiếp database ReportServer chỉ để giải phóng port 80.
Nếu SQL Server trên VPS đang chứa các database khác, đặc biệt là database của ứng dụng hoặc game server, việc xóa nhầm database hoặc gỡ nhầm thành phần SQL Server có thể làm dịch vụ đang sử dụng database bị lỗi.
Nếu bạn chỉ cần giải phóng port 80 và không sử dụng Reporting Services, việc Stop + Disable service thường là đủ. Không cần xóa:
ReportServer$SQLEXPRESS ReportServer$SQLEXPRESSTempDB8. Nếu port 80 vẫn chưa được giải phóng
Trong trường hợp đã tắt Reporting Services nhưng port 80 vẫn đang LISTENING, có thể một dịch vụ hoặc ứng dụng khác đang sử dụng port này.
Chạy:
netstat -ano | findstr :80Sau đó lấy PID ở cuối dòng và kiểm tra tiến trình tương ứng:
tasklist /FI "PID eq 1234"Thay 1234 bằng PID thực tế trên VPS.
Cách này giúp xác định chính xác ứng dụng nào đang chiếm port 80 trước khi thực hiện thay đổi cấu hình.
Kết luận
SQL Server Reporting Services có thể là nguyên nhân khiến port 80 trên Windows Server bị chiếm, đặc biệt trên các máy chủ cài SQL Server Express.
Nếu không sử dụng Reporting Services, bạn có thể:
- Dừng
ReportServer$SQLEXPRESS. - Đặt Startup thành Disabled.
- Kiểm tra lại port 80.
- Khởi động lại Apache, IIS hoặc web server cần sử dụng port 80.
Với file BAT được cung cấp trong bài, toàn bộ quá trình có thể thực hiện nhanh chóng chỉ bằng một lần chạy với quyền Administrator.
💡 Bạn đang sử dụng Windows VPS và gặp lỗi Apache/IIS không thể khởi động do port 80 bị chiếm? Hãy kiểm tra PID bằng netstat -ano | findstr :80 trước khi tắt bất kỳ dịch vụ nào.




