Thứ Tư, 3 tháng 6, 2026

Checklist 50 lỗi khi upload website PHP lên host thật (InfinityFree Edition)

Nếu bạn mới học PHP, sớm hay muộn cũng sẽ trải qua khoảnh khắc này:

Localhost: Hoạt động hoàn hảo

Upload host

Website chết

Lúc đó bạn bắt đầu:

  • Kiểm tra lại code
  • Kiểm tra lại database
  • Kiểm tra lại cuộc đời

Nhưng đừng lo.

Trong phần lớn trường hợp, vấn đề không nằm ở code.

Mà nằm ở môi trường host.

Bài viết này tổng hợp 50 lỗi phổ biến nhất khi upload website PHP lên host thật, đặc biệt là InfinityFree và các shared hosting giá rẻ.


Phần 1 – Upload xong trang trắng

1. White Screen of Death

Trang trắng tinh.

Không báo lỗi.

Không báo gì.

Chỉ có sự im lặng.

Nếu muốn tìm hiểu chi tiết hơn, bạn có thể xem bài:  White Screen of Death – Trang trắng xóa không báo lỗi



2. Fatal Error bị ẩn

Host tắt hiển thị lỗi.

Bạn tưởng website chết.

Thực ra PHP đang la hét phía sau.

Nếu muốn tìm hiểu chi tiết hơn, bạn có thể xem bài: Fatal Error là gì? - Khi PHP quyết định: "Thôi nghỉ chơi luôn"



3. Parse Error

Thiếu dấu:

;

hoặc

}
Nếu muốn tìm hiểu chi tiết hơn, bạn có thể xem bài: 
Parse Error là gì? Thiếu dấu ; và "Bi kịch của nhân loại"


4. Include sai file

Ví dụ:

include('config.php');

nhưng file không tồn tại.


5. Require sai file

Require còn "khó tính" hơn include.

Nếu muốn tìm hiểu chi tiết hơn, bạn có thể xem bài: Include và Require trong PHP khác nhau thế nào? Nhìn giống nhau, nhưng lúc lỗi thì "tính cách" khác hẳn


6. Upload thiếu file

Rất nhiều người upload:

index.php

nhưng quên:

config.php

7. Sai tên file do phân biệt hoa thường

Windows:

Config.php
config.php

gần như giống nhau.

Linux:

Không.


8. Sai phiên bản PHP

Host dùng:

PHP 8.2

Code viết cho:

PHP 5.6

9. Extension bị thiếu

Ví dụ:

curl
gd
mbstring

10. Memory Limit

Website dùng quá nhiều RAM.


Phần 2 – Database không hoạt động

11. Sai hostname

Trên localhost:

localhost

Trên host:

Không phải lúc nào cũng vậy.

Nếu muốn tìm hiểu chi tiết hơn, bạn có thể xem bài: Không kết nối được Database sau khi Upload Host – trên máy chạy ngon, lên host thì "tắt điện"


12. Sai username

InfinityFree thường tạo username rất dài.


13. Sai password

Lỗi kinh điển.


14. Sai database name

Người mới rất hay nhầm.


15. Import database thất bại

File SQL quá lớn.


16. Quên tạo database

Nghe buồn cười.

Nhưng rất phổ biến.


17. Query chạy nhưng không có dữ liệu

Thường do:

WHERE

không khớp.

Nếu muốn tìm hiểu chi tiết hơn, bạn có thể xem bài: Query chạy nhưng không có dữ liệu – cảm giác như đi câu cả ngày mà không được con cá nào


18. INSERT không chạy

Không kiểm tra lỗi SQL.

Nếu muốn tìm hiểu chi tiết hơn, bạn có thể xem bài: MySQL INSERT không chạy (không báo lỗi) – cảm giác bất lực rất "khó tả"


19. UPDATE không hoạt động

Sai điều kiện.


20. Kết nối nhầm database

Website đang đọc database khác.


Phần 3 – Form không hoạt động

21. POST không nhận dữ liệu


22. GET không nhận dữ liệu


23. Thiếu thuộc tính name

<input type="text">

24. Sai action

Form gửi nhầm trang.


25. Sai method

POST nhưng code lại đọc GET.


26. Upload file thất bại

Sai cấu hình.


27. Giới hạn dung lượng upload

Host miễn phí thường giới hạn.


28. Sai thư mục upload


29. Không có quyền ghi file


30. Form hoạt động local nhưng chết trên host

Rất hay gặp.


Phần 4 – Session và Login

31. Quên session_start()

Nhà vô địch mọi thời đại.

Nếu muốn tìm hiểu chi tiết hơn, bạn có thể xem bài: Session không hoạt động trong PHP? Login thành công nhưng vẫn bị "đá ra ngoài"


32. Login đúng password nhưng vẫn fail


33. Hash password không khớp


34. Khoảng trắng vô hình

Ví dụ:

trim()

bị bỏ quên.


35. Session biến mất


36. Cookie bị chặn


37. Header Already Sent

Lỗi huyền thoại.


38. Redirect không hoạt động


39. Logout không thành công


40. Session cũ vẫn còn


Phần 5 – InfinityFree Edition 😄

41. mail() không gửi được

Một trong những cú sốc đầu đời.


42. SMTP cấu hình sai


43. Cron Job bị hạn chế


44. URL Rewrite không hoạt động


45. Cache làm bạn tưởng code chưa cập nhật


46. Thay code rồi nhưng website vẫn như cũ

InfinityFree từng khiến không ít người hoang mang vì chuyện này.


47. File upload thành công nhưng không hiển thị

Sai đường dẫn.


48. Đường dẫn tuyệt đối bị sai

Localhost:

C:\xampp\htdocs

Host:

Không tồn tại.


49. Website chạy rất chậm

Không hẳn do code.

Đôi khi chỉ vì đang dùng host miễn phí.


50. Tin rằng mọi lỗi đều do PHP

Sai.

Nhiều khi:

  • Host lỗi
  • Database lỗi
  • DNS lỗi
  • Cache lỗi
  • Trình duyệt lỗi

PHP hoàn toàn vô tội.


Checklist cứu mạng trước khi hoảng loạn

Khi website vừa upload lên host và không chạy:

Bước 1

Kiểm tra:

error_reporting(E_ALL);
ini_set('display_errors',1);

Bước 2

Kiểm tra:

var_dump();

Bước 3

Kiểm tra database.


Bước 4

Kiểm tra đường dẫn.


Bước 5

Kiểm tra phiên bản PHP.


Bước 6

Kiểm tra file đã upload đủ chưa.


Bước 7

Uống nước.

Đi bộ 5 phút.

Quay lại.

Rất nhiều lỗi được tìm ra theo cách này. 😄


Kết luận

Nếu code chạy trên localhost nhưng chết trên host thật, đừng vội kết luận:

"Mình không hợp với lập trình."

Thực tế gần như mọi lập trình viên PHP đều từng trải qua cảm giác:

Localhost: 100 điểm
Host thật: 0 điểm

Đó không phải thất bại.

Đó là nghi thức trưởng thành.

Và tin vui là:

Khoảng 90% lỗi khi upload website PHP lên host thật đều nằm trong danh sách ở trên.

Nếu bình tĩnh kiểm tra từng bước, bạn sẽ ngạc nhiên vì số lần nguyên nhân thật sự lại là một chi tiết nhỏ xíu mà mình đã bỏ qua từ đầu.