شبکه ایمن

دیپلوی کردن پروژه لاراول – آموزش لاراول

دیپلوی کردن پروژه لاراول

قبل از اینکه برنامه لاراول خود را بر روی محیط اصلی (Production) دیپلوی کنید، باید به چند نقطه مهم برای افزایش سرعت و کارایی برنامه خود توجه کنید. در این بخش مواردی را بررسی می کنیم که با انجام آن ها می توانید برنامه خود را به خوبی دیپلوی کنید.

نیازمندی های سرور

برای اینکه بتوانید یک برنامه نوشته شده با استفاده از فریم ورک لاراول را در سروری دیپلوی کنید، آن سرور باید موارد زیر را داشته باشد:

  • داشتن PHP نسخه ۷٫۳ یا بالاتر
  • فعال بودن افزونه BCMath در PHP
  • فعال بودن افزونه Ctype در PHP
  • فعال بودن افزونه Fileinfo در PHP
  • فعال بودن افزونه JSON در PHP
  • فعال بودن افزونه Mbstring در PHP
  • فعال بودن افزونه OpenSSL در PHP
  • فعال بودن افزونه PDO در PHP
  • فعال بودن افزونه Tokenizer در PHP
  • فعال بودن افزونه XML در PHP

تنظیمات و پیکربندی سرور

سرور Nginx

اگر برنامه خود را بر روی سرور Nginx دیپلوی می کنید، می توانید از تنظیماتی که در زیر قرار داده شده است برای پیکربندی سرور استفاده کنید. البته لازم است جزئیات فایل زیر را بر اساس سرور خود تغییر دهید.

مطمئن شوید که مانند تنظیمات زیر وب سرور شما هم تمام درخواست های برنامه را به فایل public/index.php ارسال می کند. توجه داشته باشید که نباید فایل index.php ذکر شده را در داخل دایرکتوری ریشه قرار دهید. این کار می تواند از نظر امنیتی مشکلات جدی ایجاد کند.

server { listen 80; server_name example.com; root /srv/example.com/public; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; index 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_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /.(?!well-known).* { deny all; } }

12345678910111213141516171819202122232425262728293031 server { listen 80; server_name example.com; root /srv/example.com/public; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; index 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_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /.(?!well-known).* { deny all; }}

بهینه‌سازی

بهینه‌سازی Autoloader

در هنگام دیپلوی کردن برنامه مطمئن شوید که Autoloader مربوط به Composer را بهینه کرده اید. برای این کار می توانید از دستور زیر استفاده کنید:

composer install –optimize-autoloader –no-dev

1 composer install –optimize-autoloader –no-dev

علاوه بر مورد فوق، قرار دادن فایل composer.lock در کنار پروژه باعث می شود تا نصب وابستگی های برنامه با سرعت بیشتری انجام شود.

بهینه‌سازی تنظیمات

قبل از دیپلوی کردن برنامه، مطمئن شوید که دستور زیر را اجرا کرده اید:

php artisan config:cache

1 php artisan config:cache

این دستور کل فایل های مربوط به پیکربندی لاراول را در یک فایل ترکیب می کند که باعث کاهش تعداد درخواست هایی که فریم ورک از Filesystem می کند، می شود. به عبارت ساده‌تر به جای خواندن چند فایل، فقط یک فایل را می خواند.

بعد از اجرا کردن این دستور در محیط اصلی (Production) باید مطمئن شوید که از تابع env فقط در داخل فایل های پیکربندی استفاده می کنید. هنگامی که تنظیمات کش شوند، فایل .env بارگذاری نمی شود و تابع env مقادیر را از متغیرهای محیطی که در سطح سرور یا سیستم تعریف شده اند، بازیابی می کند.

بهینه‌سازی مسیرها

اگر در حال ساخت یک برنامه بزرگ با مسیرهای زیاد هستید، باید دستور زیر را در طول فرآیند مربوط به دیپلوی کردن اجرا کنید:

php artisan route:cache

1 php artisan route:cache

این دستور فراخوانی های مربوط به ثبت مسیرها را در داخل یک متد کش می کند که باعث افزایش کارایی برنامه در هنگام ثبت مسیرهای زیاد می شود.

بهینه‌سازی ویوها

برای بهینه‌سازی ویوها هم می توانید از دستور زیر استفاده کنید:

php artisan view:cache

1 php artisan view:cache

این دستور تمام ویوهای برنامه را کامپایل می کند تا در صورت تقاضا نیازی به کامپایل کردن نباشد. این موضوع باعث افزایش کارایی برنامه برای درخواست هایی که یک ویو باز میگردانند می شود.

حالت دیباگ

گزینه debug در فایل config/app.php مشخص می کند چه مقدار اطلاعات در هنگام بروز خطا به کاربر نمایش داده شود. به صورت پیشفرض این گزینه از مقدار متغیر محیطی APP_DEBUG که در داخل .env قرار دارد، پیروی می کند.

در هنگام توسعه برنامه در حالت لوکال (محیط Development) باید مقدار متغیر APP_DEBUG بر روی true تنظیم شود تا بتوانید در صورت بروز مشکل بدانید کجای کار ایراد دارد. اما در محیط اصلی (Production) مقدار متغیر APP_DEBUG همیشه باید false باشد. اگر مقدار آن در محیط اصلی true باشد، برنامه شما در خطر نمایش اطلاعات حساس پیکربندی به کاربران نهایی است.

دیدگاهتان را بنویسید