Files
luckywheel/HUONG_DAN_CAU_HINH.md

9.3 KiB

HƯỚNG DẪN CẤU HÌNH DỰ ÁN LUCKY WHEEL - VÒNG QUAY MAY MẮN

📋 THÔNG TIN DỰ ÁN

Tên dự án: Lucky Wheel (Vòng quay may mắn) Framework: Laravel 9.52.18 PHP Version: 8.1.2 Database: MySQL 8.0.44 Composer: 2.9.3 Node.js: v14.21.3 NPM: 6.14.18


🔧 CÁC BƯỚC ĐÃ THỰC HIỆN

1. CÀI ĐẶT PHP VÀ EXTENSIONS

sudo apt update
sudo apt install -y php8.1-cli php8.1-common php8.1-mysql php8.1-xml php8.1-curl php8.1-mbstring php8.1-zip php8.1-bcmath php8.1-gd php8.1-intl php8.1-readline

Kiểm tra phiên bản:

php -v
# Output: PHP 8.1.2-1ubuntu2.22

2. CÀI ĐẶT COMPOSER

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer

Kiểm tra:

composer --version
# Output: Composer version 2.9.3

3. CÀI ĐẶT DEPENDENCIES PHP

cd /home/x79/LuckyWheel
composer install --optimize-autoloader --no-dev

4. CÀI ĐẶT MYSQL SERVER

sudo apt install -y mysql-server

5. CẤU HÌNH DATABASE

Tạo database và user:

sudo mysql -e "CREATE DATABASE luckywheel CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
sudo mysql -e "CREATE USER IF NOT EXISTS 'laravel'@'localhost' IDENTIFIED BY 'laravel123';"
sudo mysql -e "GRANT ALL PRIVILEGES ON luckywheel.* TO 'laravel'@'localhost';"
sudo mysql -e "FLUSH PRIVILEGES;"

Chạy migrations:

php artisan migrate
php artisan make:migration create_danh_sach_giai_thuong_table
php artisan make:migration create_danh_sach_nguoi_dung_table
php artisan migrate

Seed dữ liệu:

php artisan make:seeder DanhSachGiaiThuongSeeder
php artisan db:seed --class=DanhSachGiaiThuongSeeder

Thêm dữ liệu người dùng:

INSERT INTO danh_sach_nguoi_dung (ma_nguoi_dung, ten_nguoi_dung, loai_nguoi_dung, created_at, updated_at) VALUES 
('NV001', 'Nguyễn Văn A', 'Nhân viên', NOW(), NOW()),
('NV002', 'Trần Thị B', 'Nhân viên', NOW(), NOW()),
('NV003', 'Lê Văn C', 'Nhân viên', NOW(), NOW()),
('KH001', 'Phạm Thị D', 'Khách hàng', NOW(), NOW()),
('KH002', 'Hoàng Văn E', 'Khách hàng', NOW(), NOW());

Tạo admin user:

php artisan tinker --execute="User::create(['name' => 'Admin', 'email' => 'admin@luckywheel.com', 'password' => bcrypt('admin123')]);"

6. CẤU HÌNH FILE .ENV

File: /home/x79/LuckyWheel/.env

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:BR0ZC/fPxHWU2+eytLLj9pYdxn5QhyDm1sS+qeaA1OU=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=luckywheel
DB_USERNAME=laravel
DB_PASSWORD=laravel123

BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DISK=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

7. SỬA ĐỔI FILE INDEX.PHP

Di chuyển file:

mv index.php public/index.php

Sửa đường dẫn trong file public/index.php:

  • require __DIR__.'/vendor/autoload.php'require __DIR__.'/../vendor/autoload.php'
  • require_once __DIR__.'/bootstrap/app.php'require_once __DIR__.'/../bootstrap/app.php'

8. SỬA ĐỔI ĐƯỜNG DẪN ASSET TRONG VIEWS

Vấn đề: Views sử dụng asset('public/...') → sai vì Laravel đã tự động trỏ đến thư mục public

Sửa tất cả các file views:

  • resources/views/frontend/index.blade.php
  • resources/views/frontend/prize.blade.php
  • resources/views/frontend/congratulation.blade.php
  • resources/views/frontend/frame_container.blade.php
  • resources/views/backend/index.blade.php
  • resources/views/backend/user.blade.php
  • resources/views/backend/login.blade.php

Thay đổi:

  • asset('public/css/...')asset('css/...')
  • asset('public/js/...')asset('js/...')
  • asset('public/images/...')asset('images/...')
  • asset('public/libs/...')asset('libs/...')

9. CÀI ĐẶT DEPENDENCIES JAVASCRIPT

npm install
npm run build

10. CẤU HÌNH LARAVEL

php artisan storage:link
php artisan config:cache
php artisan view:clear
php artisan cache:clear

🗄️ CẤU TRÚC DATABASE

Bảng: danh_sach_giai_thuong

Cột Kiểu Mô tả
ma_giai_thuong BIGINT (PK) Mã giải thưởng
noi_dung VARCHAR(255) Tên giải thưởng
hinh_anh VARCHAR(255) Đường dẫn hình ảnh
so_thu_tu INT Thứ tự hiển thị
ma_so_nhan_giai VARCHAR(255) Mã số dự kiến
ten_nguoi_nhan_giai VARCHAR(255) Tên người nhận dự kiến
phan_loai_khach VARCHAR(255) Loại khách hàng
ma_so_nhan_giai_thuc_te VARCHAR(255) Mã số trúng thực tế
ten_nguoi_nhan_giai_thuc_te VARCHAR(255) Tên người trúng thực tế
da_nhan_giai TINYINT 0: Chưa nhận, 1: Đã nhận
thoi_gian_cho INT Thời gian chờ

Bảng: danh_sach_nguoi_dung

Cột Kiểu Mô tả
id_nguoi_dung BIGINT (PK) ID người dùng
ma_nguoi_dung VARCHAR(255) UNIQUE Mã người dùng
ten_nguoi_dung VARCHAR(255) Tên người dùng
loai_nguoi_dung VARCHAR(255) Loại: Nhân viên/Khách hàng

Dữ liệu mẫu đã tạo:

  • 10 giải thưởng: Giải Nhất → Giải Mười
  • 5 người dùng: 3 nhân viên (NV001-003), 2 khách hàng (KH001-002)
  • 1 admin: admin@luckywheel.com

🚀 CHẠY ỨNG DỤNG

Khởi động server:

php artisan serve

Truy cập ứng dụng:


🔑 THÔNG TIN ĐĂNG NHẬP

Admin Account:

  • Email: admin@luckywheel.com
  • Password: admin123

Database:

  • Host: 127.0.0.1
  • Port: 3306
  • Database: luckywheel
  • Username: laravel
  • Password: laravel123

📁 CẤU TRÚC QUAN TRỌNG

LuckyWheel/
├── public/
│   ├── index.php          ← File entry point (đã sửa đường dẫn)
│   ├── css/
│   │   ├── frontend.css
│   │   ├── backend.css
│   │   └── congratulation.css
│   ├── js/
│   │   ├── frontend.js
│   │   ├── backend.js
│   │   └── fireworks.js
│   ├── images/
│   ├── libs/
│   │   ├── bootstrap/
│   │   ├── jquery/
│   │   ├── animejs/
│   │   └── dat-gui/
│   └── storage/           ← Symbolic link
├── app/
│   ├── Models/
│   │   ├── DanhSachGiaiThuong.php
│   │   ├── DanhSachNguoiDung.php
│   │   └── User.php
│   └── Http/Controllers/
│       ├── IndexController.php
│       └── AdminController.php
├── resources/views/
│   ├── frontend/
│   │   ├── index.blade.php
│   │   ├── prize.blade.php
│   │   ├── congratulation.blade.php
│   │   └── frame_container.blade.php
│   └── backend/
│       ├── index.blade.php
│       ├── user.blade.php
│       └── login.blade.php
├── database/
│   ├── migrations/
│   └── seeders/
├── .env                   ← File cấu hình
└── composer.json

🛠️ CÁC LỆNH HỮU ÍCH

Clear cache:

php artisan cache:clear
php artisan config:clear
php artisan view:clear
php artisan route:clear

Rebuild cache:

php artisan config:cache
php artisan route:cache
php artisan view:cache

Database:

php artisan migrate                    # Chạy migrations
php artisan migrate:fresh              # Reset database
php artisan migrate:fresh --seed       # Reset và seed
php artisan db:seed                    # Chạy seeders

Kiểm tra routes:

php artisan route:list

Xem logs:

tail -f storage/logs/laravel.log

⚠️ CÁC VẤN ĐỀ ĐÃ KHẮC PHỤC

1. Lỗi 404 - Assets không load

Nguyên nhân: Đường dẫn asset('public/...') sai Giải pháp: Sửa thành asset('css/...'), asset('js/...'), etc.

2. Lỗi database - Table not found

Nguyên nhân: Database import sai, thiếu bảng danh_sach_giai_thuong Giải pháp: Tạo migrations mới cho các bảng đúng với Model

3. Lỗi index.php not found

Nguyên nhân: File index.php ở root thay vì trong public/ Giải pháp: Di chuyển vào public/ và sửa đường dẫn require


📞 TỔNG KẾT

Dự án Lucky Wheel đã được cấu hình hoàn chỉnh với:

  • PHP 8.1 + tất cả extensions cần thiết
  • Composer 2.9.3
  • MySQL 8.0 với database đầy đủ
  • Laravel dependencies đã cài đặt
  • JavaScript assets đã build
  • Database có dữ liệu mẫu
  • Admin account để đăng nhập
  • Tất cả file views đã sửa đường dẫn asset đúng
  • Server chạy thành công tại http://127.0.0.1:8000

Truy cập: http://127.0.0.1:8000 để sử dụng ứng dụng!