cấu hình chạy lần đầu - chưa thực hiện test
This commit is contained in:
368
HUONG_DAN_CAU_HINH.md
Normal file
368
HUONG_DAN_CAU_HINH.md
Normal 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!
|
||||
Reference in New Issue
Block a user