دیپلوی کردن پروژه لاراول
قبل از اینکه برنامه لاراول خود را بر روی محیط اصلی (Production) دیپلوی کنید، باید به چند نقطه مهم برای افزایش سرعت و کارایی برنامه خود توجه کنید. در این بخش مواردی را بررسی می کنیم که با انجام آن ها می توانید برنامه خود را به خوبی دیپلوی کنید.
نیازمندی های سرور
برای اینکه بتوانید یک برنامه نوشته شده با استفاده از فریم ورک لاراول را در سروری دیپلوی کنید، آن سرور باید موارد زیر را داشته باشد:
- داشتن PHP نسخه 7.3 یا بالاتر
- فعال بودن افزونه 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 ذکر شده را در داخل دایرکتوری ریشه قرار دهید. این کار می تواند از نظر امنیتی مشکلات جدی ایجاد کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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 را بهینه کرده اید. برای این کار می توانید از دستور زیر استفاده کنید:
1 | composer install --optimize-autoloader --no-dev |
علاوه بر مورد فوق، قرار دادن فایل composer.lock در کنار پروژه باعث می شود تا نصب وابستگی های برنامه با سرعت بیشتری انجام شود.
بهینهسازی تنظیمات
قبل از دیپلوی کردن برنامه، مطمئن شوید که دستور زیر را اجرا کرده اید:
1 | php artisan config:cache |
این دستور کل فایل های مربوط به پیکربندی لاراول را در یک فایل ترکیب می کند که باعث کاهش تعداد درخواست هایی که فریم ورک از Filesystem می کند، می شود. به عبارت سادهتر به جای خواندن چند فایل، فقط یک فایل را می خواند.
بعد از اجرا کردن این دستور در محیط اصلی (Production) باید مطمئن شوید که از تابع env فقط در داخل فایل های پیکربندی استفاده می کنید. هنگامی که تنظیمات کش شوند، فایل .env بارگذاری نمی شود و تابع env مقادیر را از متغیرهای محیطی که در سطح سرور یا سیستم تعریف شده اند، بازیابی می کند.
بهینهسازی مسیرها
اگر در حال ساخت یک برنامه بزرگ با مسیرهای زیاد هستید، باید دستور زیر را در طول فرآیند مربوط به دیپلوی کردن اجرا کنید:
1 | php artisan route:cache |
این دستور فراخوانی های مربوط به ثبت مسیرها را در داخل یک متد کش می کند که باعث افزایش کارایی برنامه در هنگام ثبت مسیرهای زیاد می شود.
بهینهسازی ویوها
برای بهینهسازی ویوها هم می توانید از دستور زیر استفاده کنید:
1 | php artisan view:cache |
این دستور تمام ویوهای برنامه را کامپایل می کند تا در صورت تقاضا نیازی به کامپایل کردن نباشد. این موضوع باعث افزایش کارایی برنامه برای درخواست هایی که یک ویو باز میگردانند می شود.
حالت دیباگ
گزینه debug در فایل config/app.php مشخص می کند چه مقدار اطلاعات در هنگام بروز خطا به کاربر نمایش داده شود. به صورت پیشفرض این گزینه از مقدار متغیر محیطی APP_DEBUG که در داخل .env قرار دارد، پیروی می کند.
در هنگام توسعه برنامه در حالت لوکال (محیط Development) باید مقدار متغیر APP_DEBUG بر روی true تنظیم شود تا بتوانید در صورت بروز مشکل بدانید کجای کار ایراد دارد. اما در محیط اصلی (Production) مقدار متغیر APP_DEBUG همیشه باید false باشد. اگر مقدار آن در محیط اصلی true باشد، برنامه شما در خطر نمایش اطلاعات حساس پیکربندی به کاربران نهایی است.
هیچ نظری ثبت نشده است