vernova/INSTALL-WINDOWS-XAMPP.md
2026-07-26 19:58:27 +03:30

466 lines
9.8 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🏗️ Vernova - راهنمای نصب روی ویندوز + XAMPP + VSCode
## پیش‌نیازها
### ۱. نصب XAMPP
دانلود XAMPP با PHP 8.2+ از:
👉 https://www.apachefriends.org/download.html
نسخه‌ای که PHP 8.2 یا 8.3 داره رو انتخاب کنید.
بعد از نصب، مطمئن بشید XAMPP در مسیر زیر هست:
```
C:\xampp
```
### ۲. نصب Composer
دانلود از:
👉 https://getcomposer.org/download/
⚠️ حتماً موقع نصب، مسیر PHP رو بهش بدید:
```
C:\xampp\php\php.exe
```
### ۳. نصب Node.js
دانلود LTS از:
👉 https://nodejs.org/
### ۴. نصب Git (اختیاری ولی پیشنهادی)
👉 https://git-scm.com/download/win
### ۵. نصب VSCode
👉 https://code.visualstudio.com/
---
## مرحله ۱: بررسی پیش‌نیازها
CMD (Command Prompt) رو باز کنید و بزنید:
```cmd
php -v
```
باید PHP 8.2+ نشون بده. اگه نشناخت:
```
سیستم > متغیرهای محیطی > Path > اضافه کنید:
C:\xampp\php
```
```cmd
composer --version
node -v
npm -v
```
همه باید جواب بده. ✅
---
## مرحله ۲: فعال‌کردن اکستنشن‌های PHP
فایل زیر رو با Notepad یا VSCode باز کنید:
```
C:\xampp\php\php.ini
```
این خطوط رو پیدا کنید و سمی‌کالن (;) اولشون رو حذف کنید:
```ini
; قبل:
;extension=intl
;extension=pdo_mysql
;extension=mbstring
;extension=fileinfo
;extension=openssl
;extension=curl
; بعد:
extension=intl
extension=pdo_mysql
extension=mbstring
extension=fileinfo
extension=openssl
extension=curl
```
⚠️ **اکستنشن `intl` خیلی مهمه!** برای تبدیل اعداد و ارز لازمه.
بعد از تغییر، Apache رو از پنل XAMPP ری‌استارت کنید.
---
## مرحله ۳: ساخت دیتابیس
1. پنل XAMPP → **MySQL** رو Start کنید
2. مرورگر رو باز کنید: `http://localhost/phpmyadmin`
3. روی **New** کلیک کنید
4. نام دیتابیس: `projectra`
5. Collation: `utf8mb4_unicode_ci`
6. **Create** رو بزنید
---
## مرحله ۴: ساخت پروژه Laravel
CMD رو باز کنید:
```cmd
cd C:\xampp\htdocs
composer create-project laravel/laravel projectra
```
این مرحله ممکنه ۳-۵ دقیقه طول بکشه. ⏳
---
## مرحله ۵: کپی فایل‌های Projectra
فایل ZIP (`projectra-laravel.zip`) رو Extract کنید.
### فایل‌هایی که باید کپی بشن:
```
از ZIP → به C:\xampp\htdocs\projectra\
```
| پوشه/فایل | عملیات |
|-----------|---------|
| `app/` | جایگزین (overwrite) |
| `config/projectra.php` | کپی |
| `config/projectra_app_additions.php` | کپی |
| `database/migrations/` | جایگزین |
| `database/seeders/` | جایگزین |
| `resources/views/` | جایگزین |
| `resources/lang/` | جایگزین |
| `resources/css/` | جایگزین |
| `resources/js/` | جایگزین |
| `routes/web.php` | جایگزین |
| `routes/api.php` | جایگزین |
| `composer.json` | جایگزین |
| `package.json` | جایگزین |
| `vite.config.js` | جایگزین |
| `tailwind.config.js` | جایگزین |
| `postcss.config.js` | جایگزین |
| `.env.example` | جایگزین |
---
## مرحله ۶: نصب وابستگی‌ها
```cmd
cd C:\xampp\htdocs\projectra
:: نصب پکیج‌های PHP
composer install
:: نصب پکیج‌های Frontend
npm install
```
اگه `composer install` ارور داد پکیج‌ها رو پیدا نمی‌کنه:
```cmd
composer update
```
---
## مرحله ۷: تنظیم فایل .env
```cmd
copy .env.example .env
php artisan key:generate
```
فایل `.env` رو با VSCode باز کنید و این بخش رو ویرایش کنید:
```env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=projectra
DB_USERNAME=root
DB_PASSWORD=
```
> 💡 در XAMPP، کاربر پیش‌فرض MySQL `root` هست و رمز عبور **خالیه** (بدون رمز).
---
## مرحله ۸: تنظیم config/app.php
فایل `config/app.php` رو باز کنید:
### اضافه کردن Providers:
```php
'providers' => [
// ... provider های موجود ...
// Vernova
Spatie\Permission\PermissionServiceProvider::class,
Morilog\Jalali\JalaliServiceProvider::class,
Maatwebsite\Excel\ExcelServiceProvider::class,
Barryvdh\DomPDF\ServiceProvider::class,
App\Providers\BladeServiceProvider::class,
],
```
### اضافه کردن Aliases:
```php
'aliases' => [
// ... alias های موجود ...
// Vernova
'Jalali' => Morilog\Jalali\JalaliFacade::class,
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
'PDF' => Barryvdh\DomPDF\Facade\Pdf::class,
],
```
### تغییر locale پیش‌فرض:
```php
'locale' => env('APP_LOCALE', 'fa'),
'fallback_locale' => 'en',
```
---
## مرحله ۹: تنظیم autoload
فایل `composer.json` رو باز کنید. در بخش `autoload` اضافه کنید:
```json
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
},
"files": [
"app/Helpers/helpers.php"
]
},
```
سپس:
```cmd
composer dump-autoload
```
---
## مرحله ۱۰: اجرای Migration و Seeder
```cmd
php artisan migrate
php artisan db:seed
```
اگه ارور `Specified key was too long` گرفتید، در `AppServiceProvider.php` در متد `boot()` اضافه کنید:
```php
Schema::defaultStringLength(191);
```
---
## مرحله ۱۱: ساخت Assetها
```cmd
npm run build
```
برای توسعه (با auto-refresh):
```cmd
npm run dev
```
---
## مرحله ۱۲: اجرای پروژه 🚀
### روش ۱: با artisan (پیشنهادی)
```cmd
php artisan serve
```
مرورگر: `http://localhost:8000`
### روش ۲: با Apache (XAMPP)
1. Apache رو در XAMPP استارت کنید
2. مرورگر: `http://localhost/projectra/public`
> 💡 برای روش ۲، بهتره Virtual Host تنظیم کنید (مرحله بعدی).
---
## 🔧 تنظیم Virtual Host (اختیاری ولی حرفه‌ای)
فایل زیر رو باز کنید:
```
C:\xampp\apache\conf\extra\httpd-vhosts.conf
```
اضافه کنید:
```apache
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/projectra/public"
ServerName projectra.test
<Directory "C:/xampp/htdocs/projectra/public">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
```
فایل hosts ویندوز رو باز کنید (با Notepad به صورت Run as Administrator):
```
C:\Windows\System32\drivers\etc\hosts
```
اضافه کنید:
```
127.0.0.1 projectra.test
```
Apache رو ری‌استارت کنید و بعد:
👉 `http://projectra.test`
---
## 👤 حساب‌های پیش‌فرض
| نقش | ایمیل | رمز عبور |
|------|-------|----------|
| Super Admin | admin@projectra.ir | password |
| Admin (سازندگی سپید) | admin@sepideh.ir | password |
| Project Manager | manager@sepideh.ir | password |
| Admin (Global) | admin@global.com | password |
---
## 🛠️ تنظیمات VSCode
### اکستنشن‌های پیشنهادی:
| اکستنشن | کاربرد |
|---------|---------|
| **Laravel Blade** | رنگ‌بندی Blade templates |
| **PHP Intelephense** | autocomplete و تحلیل PHP |
| **Tailwind CSS IntelliSense** | autocomplete کلاس‌های Tailwind |
| **Alpine.js IntelliSense** | autocomplete Alpine.js |
| **Laravel Artisan** | اجرای دستورات Artisan از VSCode |
| **PHP Debug** | دیباگ PHP با Xdebug |
| **Prettier** | فرمت‌بندی کد |
### تنظیم Xdebug (اختیاری):
فایل `C:\xampp\php\php.ini` اضافه کنید:
```ini
[xdebug]
zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=trigger
xdebug.client_port=9003
```
در VSCode فایل `.vscode/launch.json`:
```json
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
}
]
}
```
---
## ❓ مشکلات رایج ویندوز
### ۱. ارور "php not recognized"
```
Path اضافه کنید: C:\xampp\php
سیستم > متغیرهای محیطی > Path > Edit > New
```
### ۲. ارور "composer not recognized"
```
Path اضافه کنید: C:\ProgramData\ComposerSetup\bin
یا Composer رو دوباره نصب کنید
```
### ۳. ارور "SSL Certificate" در composer
```cmd
composer config -g -- disable-tls false
composer config -g -- secure-http false
```
### ۴. ارور "Allowed memory size exhausted"
```cmd
php -d memory_limit=-1 C:\path\to\composer.phar install
```
### ۵. ارور "npm ERR!"
```cmd
npm cache clean --force
npm install
```
### ۶. ارور مخفف نشدن صفحه (blank page)
```cmd
php artisan config:clear
php artisan cache:clear
php artisan view:clear
php artisan route:clear
```
### ۷. ارور permission در storage
```cmd
icacls storage /grant Everyone:F /T
icacls bootstrap\cache /grant Everyone:F /T
```
---
## 📌 خلاصه سریع (Quick Start)
```cmd
:: 1. ساخت پروژه
cd C:\xampp\htdocs
composer create-project laravel/laravel projectra
:: 2. کپی فایل‌ها از ZIP → projectra/
:: 3. نصب وابستگی‌ها
cd projectra
composer install
npm install
:: 4. تنظیم env
copy .env.example .env
php artisan key:generate
:: 5. تنظیم config/app.php (Providers + Aliases)
:: 6. تنظیم composer.json autoload (helpers.php)
composer dump-autoload
:: 7. ساخت دیتابیس در phpMyAdmin: projectra
:: 8. Migration + Seed
php artisan migrate
php artisan db:seed
:: 9. Build
npm run build
:: 10. اجرا! 🚀
php artisan serve
```
مرورگر → `http://localhost:8000`