# راهنمای استقرار IFNEX — ویژهٔ تیم IT کارفرما > **مخاطب:** مسئول IT شرکت IFNEX > **تاریخ تحویل:** ۲۰۲۶-۱۰-۰۴ > **نسخه:** ۱.۰ > **تهیه‌کننده:** VernaSoft Group — Kazem Alghasi --- ## ۱. معماری استقرار این سیستم از دو بخش مستقل تشکیل شده است که هرکدام روی دامنهٔ جداگانه میزبانی می‌شوند و فقط از طریق REST API با هم ارتباط دارند. | بخش | دامنه | روش تحویل | مسیر وب‌سرور | |------|-------|------------|--------------| | لاراول (API + پنل مدیریت Filament) | `system.ifnex.ir` | کلون گیت | `/var/www/system.ifnex.ir/public` | | وردپرس (وب‌سایت + پورتال مشتری) | `ifnex.ir` | فایل ZIP + فایل SQL | `/var/www/ifnex.ir` | **پیش‌نیازهای هر دو بخش:** - PHP 8.2 یا بالاتر با اکستنشن‌های `pdo_mysql`، `mbstring`، `xml`، `gd`، `zip` - MySQL 8 یا بالاتر - Composer 2.x (فقط برای لاراول) - Nginx یا Apache + PHP-FPM - گواهی SSL از Let's Encrypt برای هر دو دامنه --- ## ۲. استقرار لاراول — `system.ifnex.ir` ### ۲.۱ کلون مخزن ```bash cd /var/www/system.ifnex.ir git clone https://www.git.vernahost.ir/gitmodir110/ifnex.git tmp cp -r tmp/04_Laravel/* . cp tmp/04_Laravel/.env.example .env rm -rf tmp ``` ### ۲.۲ نصب پکیج‌ها ```bash composer install --no-dev --optimize-autoloader ``` ### ۲.۳ تنظیم فایل `.env` ```bash nano .env ``` مقادیر زیر را حتماً تنظیم کنید: ```dotenv APP_NAME=IFNEX APP_ENV=production APP_DEBUG=false APP_URL=https://system.ifnex.ir DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=ifnex_laravel DB_USERNAME=YOUR_DB_USER DB_PASSWORD=YOUR_DB_PASSWORD IFNEX_BRIDGE_API_KEY=CHANGE_THIS_TO_A_RANDOM_SECRET CORS_ALLOWED_ORIGINS=https://ifnex.ir ZARINPAL_SANDBOX=false ZARINPAL_MERCHANT_ID=YOUR_REAL_MERCHANT_ID ZARINPAL_CALLBACK_URL=https://system.ifnex.ir/api/v1/payment/callback ZARINPAL_FRONTEND_SUCCESS_URL=https://ifnex.ir/wallet ZARINPAL_FRONTEND_FAILURE_URL=https://ifnex.ir/wallet KAVENEGAR_API_KEY=YOUR_KAVENEGAR_KEY KAVENEGAR_SENDER=YOUR_SENDER_NUMBER ``` > ⚠️ **نکتهٔ امنیتی:** مقدار `IFNEX_BRIDGE_API_KEY` را پیش از استقرار با یک کلید تصادفی و طولانی جایگزین کنید. این مقدار باید عیناً در پلاگین وردپرس هم تنظیم شود. ### ۲.۴ راه‌اندازی اولیه ```bash php artisan key:generate php artisan migrate --force php artisan storage:link php artisan config:cache php artisan route:cache php artisan view:cache ``` تنظیم دسترسی پوشه‌ها: ```bash chown -R www-data:www-data storage bootstrap/cache chmod -R 775 storage bootstrap/cache ``` ### ۲.۵ تنظیم Cron برای اجرای صف و زمان‌بندی‌ها، این خط را در کرون اضافه کنید: ```cron * * * * * cd /var/www/system.ifnex.ir && php artisan schedule:run >> /dev/null 2>&1 ``` اگر صف با Redis اجرا می‌شود، این خط را نیز اضافه کنید: ```cron * * * * * cd /var/www/system.ifnex.ir && php artisan queue:work --tries=3 >> /dev/null 2>&1 ``` --- ## ۳. استقرار وردپرس — `ifnex.ir` ### ۳.۱ نصب فایل‌ها 1. فایل ZIP وردپرس را در `/var/www/ifnex.ir` اکسترکت کنید. 2. فایل SQL دیتابیس را ایمپورت کنید. ### ۳.۲ تنظیم `wp-config.php` ```php define('DB_NAME', 'ifnex_wordpress'); define('DB_USER', 'YOUR_WP_DB_USER'); define('DB_PASSWORD', 'YOUR_WP_DB_PASSWORD'); define('DB_HOST', '127.0.0.1'); define('WP_HOME', 'https://ifnex.ir'); define('WP_SITEURL', 'https://ifnex.ir'); ``` ### ۳.۳ فعال‌سازی قالب و پلاگین قالب `IFNEX Theme` و پلاگین `IFNEX Bridge` را از بخش افزونه‌های وردپرس فعال کنید. ### ۳.۴ تنظیمات پلاگین IFNEX Bridge از مسیر **پنل وردپرس → تنظیمات IFNEX**: | تنظیم | مقدار | |--------|--------| | API URL | `https://system.ifnex.ir/api/v1` | | Bridge API Key | همان مقدار `IFNEX_BRIDGE_API_KEY` در فایل `.env` لاراول | ### ۳.۵ اصلاح آدرس‌ها در دیتابیس اگر سایت از محیط لوکال به سرور منتقل می‌شود، آدرس‌های ذخیره‌شده را اصلاح کنید: ```sql UPDATE wp_options SET option_value = REPLACE(option_value, 'http://localhost/IFNEX-Logistics/03_WordPress', 'https://ifnex.ir') WHERE option_name IN ('home', 'siteurl'); UPDATE wp_posts SET guid = REPLACE(guid, 'http://localhost/IFNEX-Logistics/03_WordPress', 'https://ifnex.ir'); UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://localhost/IFNEX-Logistics/03_WordPress', 'https://ifnex.ir'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://localhost/IFNEX-Logistics/03_WordPress', 'https://ifnex.ir'); ``` سپس کش وردپرس را پاک کنید (اگر افزونهٔ کش دارید) و یک‌بار به پیشخوان وردپرس بروید. --- ## ۴. تنظیمات وب‌سرور ### ۴.۱ لاراول — `system.ifnex.ir` - **Document Root:** `/var/www/system.ifnex.ir/public` ### ۴.۲ وردپرس — `ifnex.ir` - **Document Root:** `/var/www/ifnex.ir` ### ۴.۳ گواهی SSL هر دو دامنه به گواهی SSL از Let's Encrypt نیاز دارند. پس از نصب گواهی، مطمئن شوید ریدایرکت HTTP به HTTPS فعال است. --- ## ۵. چک‌لیست نهایی ### ۵.۱ لاراول - [ ] کلون مخزن انجام شد - [ ] `composer install` اجرا شد - [ ] فایل `.env` تنظیم شد (دیتابیس، `APP_URL`، CORS، Zarinpal، Kavenegar) - [ ] `php artisan key:generate` اجرا شد - [ ] `php artisan migrate` اجرا شد - [ ] `php artisan storage:link` اجرا شد - [ ] دسترسی `storage/` و `bootstrap/cache/` تنظیم شد - [ ] `php artisan config:cache` اجرا شد - [ ] کرون اضافه شد - [ ] آدرس `https://system.ifnex.ir/panel/login` باز می‌شود ### ۵.۲ وردپرس - [ ] فایل‌ها اکسترکت شدند - [ ] دیتابیس ایمپورت شد - [ ] `wp-config.php` تنظیم شد - [ ] آدرس‌ها در دیتابیس جایگزین شدند - [ ] قالب و پلاگین IFNEX Bridge فعال شدند - [ ] پلاگین تنظیم شد (API URL + Bridge API Key) - [ ] آدرس `https://ifnex.ir` باز می‌شود - [ ] لاگین مشتری کار می‌کند ### ۵.۳ ارتباط بین‌سامانه‌ای - [ ] وردپرس به API لاراول وصل می‌شود (تست: لاگین مشتری) - [ ] خطای CORS داده نمی‌شود - [ ] پرداخت درگاه کار می‌کند (`ZARINPAL_MERCHANT_ID` تنظیم شده و `ZARINPAL_SANDBOX=false`) - [ ] ارسال پیامک Kavenegar تست شد - [ ] بارگذاری فایل (آپلود تعهدنامه) کار می‌کند - [ ] بکاپ دیتابیس تنظیم شده است --- ## ۶. اطلاعات تماس | مورد | مقدار | |------|-------| | توسعه‌دهنده | VernaSoft Group — Kazem Alghasi | | ایمیل | kazem@vernasoft.group | | مخزن گیت | [git.vernahost.ir/gitmodir110/ifnex](https://www.git.vernahost.ir/gitmodir110/ifnex) |