cấu hình chạy lần đầu - chưa thực hiện test

This commit is contained in:
Victor Phan
2026-01-08 12:00:20 +07:00
parent 2f694b5c1c
commit 0bdd0ad2e7
3683 changed files with 285051 additions and 292350 deletions

368
HUONG_DAN_CAU_HINH.md Normal file
View File

@@ -0,0 +1,368 @@
# 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
```bash
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**:
```bash
php -v
# Output: PHP 8.1.2-1ubuntu2.22
```
---
### 2. CÀI ĐẶT COMPOSER
```bash
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**:
```bash
composer --version
# Output: Composer version 2.9.3
```
---
### 3. CÀI ĐẶT DEPENDENCIES PHP
```bash
cd /home/x79/LuckyWheel
composer install --optimize-autoloader --no-dev
```
---
### 4. CÀI ĐẶT MYSQL SERVER
```bash
sudo apt install -y mysql-server
```
---
### 5. CẤU HÌNH DATABASE
#### Tạo database và user:
```bash
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:
```bash
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:
```bash
php artisan make:seeder DanhSachGiaiThuongSeeder
php artisan db:seed --class=DanhSachGiaiThuongSeeder
```
#### Thêm dữ liệu người dùng:
```sql
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:
```bash
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`
```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**:
```bash
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
```bash
npm install
npm run build
```
---
### 10. CẤU HÌNH LARAVEL
```bash
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:
```bash
php artisan serve
```
### Truy cập ứng dụng:
- **Frontend (Vòng quay)**: http://127.0.0.1:8000
- **Admin Login**: http://127.0.0.1:8000/login
- **Admin Dashboard**: http://127.0.0.1:8000/admin
- **Quản lý User**: http://127.0.0.1:8000/user
---
## 🔑 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:
```bash
php artisan cache:clear
php artisan config:clear
php artisan view:clear
php artisan route:clear
```
### Rebuild cache:
```bash
php artisan config:cache
php artisan route:cache
php artisan view:cache
```
### Database:
```bash
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:
```bash
php artisan route:list
```
### Xem logs:
```bash
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!