النشر
VPS (Nginx + PHP-FPM)
المتطلبات
- Ubuntu 22.04+ أو Debian 12+
- PHP 8.4 مع
php-fpmوphp-cliوالإضافات المطلوبة - Nginx (أو Apache)
- MySQL 8+ أو PostgreSQL 14+
- Node.js 18+ لبناء أصول الواجهة الأمامية
- Composer
- Supervisor (موصى به، للعمليات الخلفية)
الخطوات
# ١. استنساخ المشروعcd /var/wwwgit clone https://github.com/jambostack/jambo-api.gitcd jambo-api
# ٢. تثبيت التبعياتcomposer install --no-dev --optimize-autoloadernpm ci && npm run build
# ٣. إعداد البيئةcp .env.example .env# حرر .env بقاعدة البيانات والبريد و APP_SECRET
# ٤. إنشاء قاعدة البياناتphp bin/console doctrine:database:createphp bin/console doctrine:migrations:migratephp bin/console app:setup
# ٥. تعيين الصلاحياتsudo chown -R www-data:www-data var/ public/uploads/إعداد Nginx
server { listen 80; server_name api.example.com; root /var/www/jambo-api/public;
location / { try_files $uri /index.php$is_args$args; }
location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
location ~ /\.(ht|git|env) { deny all; }}Supervisor للعمليات الخلفية
[program:jambo-worker]command=php /var/www/jambo-api/bin/console messenger:consume async -vvuser=www-datanumprocs=2autostart=trueautorestart=trueDocker
# استنساخ وتشغيلgit clone https://github.com/jambostack/jambo-api.gitcd jambo-apidocker compose up -d
# تشغيل الإعداد داخل الحاويةdocker compose exec app php bin/console app:setupملف compose.yaml المضمن يقوم بإعداد PHP-FPM و Nginx و MySQL و Meilisearch.
قائمة مراجعة الإنتاج
- تعيين
APP_ENV=prodوAPP_DEBUG=0 - إنشاء
APP_SECRETقوي (openssl rand -hex 32) - إعداد HTTPS (Let’s Encrypt موصى به)
- إعداد نسخ احتياطية لقاعدة البيانات
- تفعيل OPcache في
php.ini - تعيين صلاحيات الملفات الصحيحة (
var/،public/uploads/) - إعداد DSN بريد حقيقي (لا تستخدم
null://في الإنتاج) - تشغيل
php bin/console cache:clearبعد كل نشر