Dự án này là làm theo kênh của Hiếu Tutorial with live project và được cãi tiến và thay đổi đi bớt code cho phù hợp!
| HTML | CSS | JS | PHP | MySQL | 
|---|---|---|---|---|
| Bootstrap | 
|---|
| Docker | Git | 
|---|---|
Step 1: Clone dự án hoặc tải file .rar về máy
git clone https://github.com/Glasspham/WebFilm.gitStep 2: Truy cập vào thư mục chứa project
cd path/to/projectVí dụ trong máy tôi: path/to/project = E:\Code\WebsiteMVC => cd E:\Code\WebsiteMVC
Step 3: Chạy Docker Compose
docker-compose up -dStep 4: Kiểm tra container có chạy không
- Lệnh:
docker ps- Docker Desktop:
Check Images
Check Containers
Trang admin có thể bị lỗi Cannot modify header information - headers already sent by (output started at ... thì làm theo các bước sau:
Step 1: Open Docker Desktop >> nhấn vào container php-1
Step 2: Nhấn vào Files
Step 3: Nhấn lướt xuống tìm Folder var >> www >> html >> admin
Step 4: Kiểm tra File header.php nằm trong Folder inc và File login.php. Xem dòng đầu:
Đây là sai! Vì có 1 khoảng cách trước
.<?php
    //Code
?>Đây là sai! Vì có 1 dòng trắng phía trước
...
<?php
    //Code
?>Dấu . đại diện cho khoảng trắng thừa
Đây là đúng!
<?php
    //Code
?>- Cài đặt XAMPP từ Apache Friends.
- Chạy Apache và MySQL.
- Import file init.sqlvàohttp://localhost/phpmyadmin.
- Mở trình duyệt và truy cập http://localhost.
Cấu hình kết nối:
Host: 127.0.0.1
User: root
Port: 3306
Password: 123Password có thể sửa ở trong file docker-compose.yml
Có thể dùng một trong các cách sau để quản lý CSDL:
docker run --name myadmin -d --link mysql:db -p 8080:8080 adminerSau đó vào http://localhost:8080.
Trong File docker-compose.yml có đoạn:
- mysql_data:/var/lib/mysql
volumes:
  mysql_data:Giúp lưu giữ lại data ở phiên làm việc trước đó. Nếu cập nhật docker-compose.yml, cần chạy lệnh sau để áp dụng thay đổi:
docker compose down
docker compose build --no-cache
docker compose up -dnếu không sẽ chạy data lại từ đầu như trong File init.sql đã được setup trước!
Và muốn tạo 1 file back up .sql khi đã cập nhật thêm dữ liệu thì có thể dùng lệnh:
docker exec -i <mysql-container-name> mysqldump -u root -p --default-character-set=utf8mb4 -p<password-container> <name-database> > <filename>.sqlMuốn cập nhật lại bằng file back up .sql thì dùng lệnh:
docker exec -i <mysql-container-name> mysql -u root -p --default-character-set=utf8mb4 -p<password-container> <name-database> < <filename>.sqlCó thể dùng docker-compose hoặc docker compose.
- Build image
docker compose build- Build lại image
docker compose build --no-cachedocker-compose up -d- Stop container
docker-compose stop- Start container
docker-compose start- Xóa mỗi container:
docker-compose down- Xóa container và volumes:
docker-compose down -vdocker exec -i <mysql-container-name> mysqldump -u root -p --default-character-set=utf8mb4 -p<password-container> <name-database> > <filename>.sqlVí dụ:
docker exec -i website-db-1 mysqldump -u root -p --default-character-set=utf8mb4 -p123 WEBSITE > backup.sqldocker exec -i <mysql-container-name> mysql -u root -p --default-character-set=utf8mb4 -p<password-container> <name-database> < <filename>.sqlVí dụ:
docker exec -i website-db-1 mysql -u root -p --default-character-set=utf8mb4 -p123 WEBSITE < backup.sqlREADME này giúp bạn cài đặt và chạy dự án dễ dàng hơn. Nếu có vấn đề, hãy mở issue trên GitHub hoặc liên hệ trực tiếp!
🚀 Chúc bạn thành công!