Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Web Programming Course

Repository này lưu trữ mã nguồn các bài tập và dự án thực hành của môn học Lập trình Web.

Cấu trúc thư mục (Mức 1)

web-programming-course/
├── .git/                   # Thư mục ẩn chứa cấu hình quản lý phiên bản Git
├── btl1-wordpress/         # Thư mục mã nguồn Bài tập lớn 1 (WordPress)
├── btl2-bootstrap-static/  # Thư mục mã nguồn Bài tập lớn 2 (Giao diện tĩnh với Bootstrap)
├── btl3-php-dynamic/       # Thư mục mã nguồn Bài tập lớn 3 (Trang web động với PHP & MySQL)
├── explanation_file/       # Thư mục chứa các tài liệu giải thích, báo cáo
└── README.md               # File thông tin tổng quan của repository

Hướng dẫn chi tiết tải và chạy "Bài 3 PHP Dynamic" trên máy thực hành (Phòng Lab)

Tại phòng máy của trường, môi trường phát triển có thể chưa được cấu hình sẵn. Dưới đây là hướng dẫn chi tiết từng bước tải, chạy dự án và xử lý các lỗi ngoại lệ thường gặp.

A. Các bước thực hiện chi tiết

  • 1. Tải dự án (Repository) về máy

    • Khi máy có sẵn Git (Khuyên dùng - chọn 1 trong các dòng lệnh sau):
      • Tải đầy đủ mã nguồn và lịch sử commit: git clone https://github.com/b22dccn256/web-programming-course.git
      • Tải siêu tốc (chỉ lấy phiên bản mới nhất, dung lượng nhẹ nhất): git clone --depth 1 https://github.com/b22dccn256/web-programming-course.git
      • Tải riêng nhánh main: git clone -b main --single-branch https://github.com/b22dccn256/web-programming-course.git
    • Khi máy không có Git: Lên trang GitHub của dự án, nhấn nút Code (màu xanh lá) -> Chọn Download ZIP.
      • Hoặc chạy 1 dòng lệnh tải ZIP qua Terminal: curl -L https://github.com/b22dccn256/web-programming-course/archive/refs/heads/main.zip -o project.zip
  • 2. Chuẩn bị môi trường PHP & MySQL

    • Đảm bảo máy lab đã cài sẵn PHP và hệ quản trị CSDL MySQL (hoặc MariaDB / Laragon / Wamp / MySQL Server).
    • Mở Terminal/Command Prompt kiểm tra lệnh PHP: php -v.
  • 3. Thiết lập và cấu hình trên Visual Studio Code (VS Code)

    • Mở VS Code -> Chọn File -> Open Folder -> Chọn thư mục web-programming-course vừa tải/giải nén.
    • Cài đặt Extensions hỗ trợ: Mở mục Extensions (Ctrl + Shift + X), tìm và cài đặt:
      • PHP Intelephense: Gợi ý code và kiểm tra cú pháp PHP.
      • PHP Server (bởi brapifra): Cho phép khởi chạy nhanh server ảo PHP.
    • Cấu hình đường dẫn PHP executable (nếu VS Code báo thiếu PHP):
      • Mở Settings trong VS Code (Ctrl + ,).
      • Tìm từ khóa php.validate.executablePath.
      • Chọn Edit in settings.json và điền đường dẫn tới php.exe trên máy lab: "php.validate.executablePath": "C:\\location_to_php\\php.exe"
  • 4. Khởi tạo thư viện dự án (Composer)

    • Mở Terminal trong VS Code (Ctrl + ~).
    • Di chuyển vào thư mục bài 3: cd btl3-php-dynamic
    • Chạy lệnh: composer install để tải và cài đặt các phụ thuộc trong composer.json.
  • 5. Cấu hình Cơ sở dữ liệu (Database)

    • Mở công cụ quản lý MySQL trên máy lab (như MySQL Workbench, DBeaver, HeidiSQL hoặc phpMyAdmin).
    • Tạo cơ sở dữ liệu mới có tên: btl3_order_management.
    • Thực thi (Import/Run) lần lượt 2 file SQL trong thư mục btl3-php-dynamic/database/:
      1. schema.sql (tạo cấu hình bảng)
      2. seed.sql (chèn dữ liệu mẫu)
    • Mở file btl3-php-dynamic/config/database.php bằng VS Code và cập nhật thông tin kết nối cho khớp với máy lab:
      • DB_HOST: Mặc định localhost (hoặc 127.0.0.1).
      • DB_PORT: Mặc định 3306.
      • DB_NAME: btl3_order_management.
      • DB_USER: Tên tài khoản MySQL (thường là root).
      • DB_PASS: Mật khẩu tài khoản MySQL (ví dụ: 1111 hoặc để trống "").
  • 6. Khởi chạy và kiểm tra trang web

    • Cách 1 (Bằng Terminal - Khuyên dùng): Mở Terminal tại thư mục btl3-php-dynamic, gõ lệnh: php -S localhost:8000
    • Cách 2 (Bằng VS Code Extension): Click chuột phải vào file index.php trong thư mục btl3-php-dynamic -> Chọn PHP Server: Serve project.
    • Mở trình duyệt web và truy cập địa chỉ: http://localhost:8000 để kiểm tra.

B. Các ngoại lệ (Lỗi) thường gặp & Hướng giải quyết chi tiết

  • 1. Ngoại lệ: 'php' không được nhận diện ('php' is not recognized as an internal or external command)

    • Nguyên nhân: PHP chưa được thêm vào biến môi trường (Environment Variables - PATH) của Windows trên máy lab.
    • Hướng giải quyết:
      • Cách 1 (Thêm vào PATH): Mở Start Menu -> Tìm "Environment Variables" -> Chọn "Edit the system environment variables" -> Nhấn "Environment Variables" -> Tại ô System variables, chọn dòng Path -> Nhấn Edit -> Nhấn New và dán đường dẫn thư mục chứa file php.exe (ví dụ C:\php hoặc C:\tools\php). Mở lại Terminal mới để kiểm tra lại php -v.
      • Cách 2 (Chạy đường dẫn trực tiếp): Không cần thêm PATH, gõ đường dẫn trực tiếp khi khởi chạy server: C:\path_to_php\php.exe -S localhost:8000.
      • Tải bản PHP Zip chính thức qua Terminal nếu máy thiếu hẳn PHP: curl -L https://windows.php.net/downloads/releases/php-8.2.27-nts-Win32-vs16-x64.zip -o php.zip
  • 2. Ngoại lệ: 'git' hoặc 'composer' không được nhận diện

    • Nguyên nhân: Máy phòng lab chưa được cài đặt phần mềm Git hoặc Composer.
    • Hướng giải quyết:
      • Nếu máy có Git nhưng gặp lỗi tải chậm/lỗi mạng: Dùng lệnh clone tối ưu dung lượng siêu nhẹ: git clone --depth 1 https://github.com/b22dccn256/web-programming-course.git
      • Nếu máy thiếu Git: Tải file ZIP dự án trực tiếp qua Terminal với 1 dòng lệnh: curl -L https://github.com/b22dccn256/web-programming-course/archive/refs/heads/main.zip -o project.zip
      • Nếu máy thiếu Composer: Tải file composer.phar chính thức trực tiếp qua Terminal với 1 dòng lệnh: curl -sS https://getcomposer.org/download/latest-stable/composer.phar -o composer.phar (Sau đó chạy lệnh cài đặt thư viện bằng PHP: php composer.phar install).
  • 3. Ngoại lệ: Lỗi kết nối CSDL (PDOException: SQLSTATE[HY000] [2002] Connection refused hoặc Access denied)

    • Nguyên nhân:
      • Lỗi 2002: Dịch vụ MySQL Server chưa được bật, hoặc cấu hình DB_HOST / DB_PORT bị sai.
      • Lỗi 1045 (Access denied): Sai DB_USER hoặc DB_PASS.
      • Lỗi Unknown database: Chưa tạo cơ sở dữ liệu btl3_order_management.
    • Hướng giải quyết:
      • Kiểm tra dịch vụ MySQL đã bật chưa (bằng cách vào Services.msc tìm MySQL và bấm Start, hoặc bật qua công cụ quản trị máy lab).
      • Kiểm tra lại cổng kết nối của MySQL (nhiều máy lab dùng cổng 3307 thay vì 3306), cập nhật lại DB_PORT trong config/database.php.
      • Thử đăng nhập MySQL bằng công cụ (DBeaver/Workbench) để xác nhận chính xác DB_USERDB_PASS, sau đó cập nhật thông số vào config/database.php.
      • Tạo lại database đúng tên btl3_order_management trước khi import SQL.
  • 4. Ngoại lệ: Lỗi thiếu Extension PDO (Could not find driver hoặc Undefined class constant 'ATTR_ERRMODE')

    • Nguyên nhân: File cấu hình php.ini chưa bật bộ điều khiển kết nối MySQL PDO.
    • Hướng giải quyết:
      • Tìm file php.ini trong thư mục cài đặt PHP.
      • Mở file bằng Notepad hoặc VS Code, bấm Ctrl + F tìm dòng ;extension=pdo_mysql hoặc ;extension=mysqli.
      • Xóa dấu chấm phẩy ; ở đầu dòng đó để bật extension (thành extension=pdo_mysql).
      • Lưu file php.ini và khởi chạy lại lệnh server php -S localhost:8000.
  • 5. Ngoại lệ: Cổng 8000 đã bị chiếm dụng (Address already in use hoặc Failed to listen on localhost:8000)

    • Nguyên nhân: Có ứng dụng khác hoặc một tiến trình PHP Server cũ đang chạy và dùng cổng 8000.
    • Hướng giải quyết: Đổi sang một cổng ngẫu nhiên khác chưa bị chiếm dụng khi chạy server.
      • Ví dụ: php -S localhost:8080 hoặc php -S localhost:8888. Sau đó truy cập http://localhost:8080.
  • 6. Ngoại lệ: Không tải được CSS/JS hoặc đường dẫn hình ảnh bị lỗi (404 Not Found)

    • Nguyên nhân: Mở server ở sai vị trí thư mục làm cho các đường dẫn tương đối (relative paths) bị sai lệch.
    • Hướng giải quyết: Đảm bảo Terminal đang đứng đúng tại thư mục chứa bài 3 (btl3-php-dynamic) trước khi gõ lệnh php -S localhost:8000. Không đứng ở thư mục cha web-programming-course để chạy lệnh này.

About

Web PHP Courses: - wordpress, bootstrap, php thuần

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages