النشر على الخادم الإنتاجي في Laravel

من موسوعة حسوب
< Laravel
نسخة 08:42، 2 فبراير 2019 للمستخدم عاطف-بن-علي (نقاش | مساهمات) (استبدال ترجمة server بخادوم.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى: تصفح، ابحث

مقدمة

عندما تكون جاهزًا لنشر تطبيق Laravel على الخادوم الإنتاجي، هناك بعض الأشياء المهمة التي يمكنك القيام بها للتأكد من تشغيل التطبيق بأقصى كفاءة ممكنة. في هذا المستند، سنغطي بعض نقاط البداية الرائعة للتأكد من نشر تطبيق Laravel بشكل صحيح.

ضبط الخادوم

Nginx

إذا كنت تقوم بنشر تطبيقك على خادوم Nginx، فيمكنك استخدام ملف التهيئة التالي كنقطة بداية لتهيئة خادوم الويب الخاص بك. على الأرجح، يجب تخصيص هذا الملف بناءً على تهيئة خادومك. إذا كنت ترغب في المساعدة في إدارة الخادوم الخاص بك، فكر في استخدام خدمة مثل Laravel Forge:
server {
    listen 80;
    server_name example.com;
    root /example.com/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

التحسين

تحسين المحمل التلقائي

عند النشر على الخادوم الإنتاجي، تأكد من أنك تقوم بتحسين خريطة المحمل الآلي لبرمجية composer حتى يتمكن composer من العثور بسرعة على الملف المناسب للتحميل الصنف المعين:
composer install --optimize-autoloader --no-dev
بالإضافة إلى تحسين أداة التحميل التلقائي، يجب التأكد دائمًا من تضمين ملف composer.lock في مستودع التحكم في مصدر المشروع. يمكن تثبيت اعتماديات مشروعك بسرعة أكبر عندما يكون ملف composer.lock موجودًا.

تحسين ضبط التحميل

عند نشر التطبيق الخاص بك على الخادوم الإنتاجي، يجب عليك التأكد من تشغيل الأمر config:cache Artisan:
php artisan config:cache
سيعمل هذا الأمر  على جمع جميع ملفات الضبط الخاصة بإطار Laravel في ملف واحد مخزنٌ تخزينًا مؤقتًا مما يؤدي إلى تقليل عدد الحركات التي يجب أن يقوم بها إطار العمل على نظام الملفات عندما تُحمَّل قيم خيارات الضبط.

إذا قمت بتنفيذ الأمر config:cache أثناء عملية النشر على الخادوم الإنتاجي، فيجب أن تتأكد من أنك تقوم فقط بالاتصال بالدالة env من داخل ملفات الضبط الخاصة بك. بمجرد تخزين الضبط المؤقت، فلن يُحمِّل الملف ‎.env وستُعيد كافة الإستدعاءات إلى الدالة env القيمة null.

تحسين تحميل المسارات

إذا كنت تقوم بإنشاء تطبيق كبير مع العديد من المسارات (routes)، يجب عليك التأكد من تشغيل الأمر route:cache Artisan أثناء عملية النشر على الخادوم الإنتاجي:
php artisan route:cache
هذا الأمر يقلل من عمليات تسجيل المسارات الخاصة بك من خلال استدعاء تابع وحيد ويتم تخزينه في ملف تخزين مؤقت، مما يؤدي إلى تحسين أداء تسجيل المسارات عند تسجيل مئات المسارات.

نظرًا لأن هذه الميزة تستخدم سَلسَلة PHP (أي PHP serialization)، فإنه بإمكانك تخزين مسارات التطبيقات التي على وجه الحصر تستخدم المسارات التي تعتمد على التحكم (controller based routes). لأن PHP ليست قادرة على سَلسَلة النطاقات المغلقة (closures).

النشر على الخادوم الإنتاجي مع منصة Forge

إذا لم تكن مستعدًا تمامًا لإدارة تهيئة الخادوم الخاصة بك أو لم تكن مرتاحًا لتكوين جميع الخدمات المتنوعة اللازمة لتشغيل تطبيق Laravel القوي، فإن Laravel Forge بديل رائع.

يمكن لخدمة Laravel Forge إنشاء خوادم على العديد من مزودي البنية الأساسية مثل DigitalOcean و Linode و AWS والمزيد. بالإضافة إلى ذلك، يقوم Forge بتثبيت وإدارة جميع الأدوات اللازمة لبناء تطبيقات Laravel قوية، مثل Nginx و MySQL و Redis و Memcached و Beanstalk والمزيد.

مصادر