نسخه:

گسترش

معرفی

هنگامی که آماده استقرار برنامه لاراول خود برای تولید هستید، کارهای مهمی وجود دارد که می توانید انجام دهید تا مطمئن شوید برنامه شما تا حد امکان کارآمد اجرا می شود. در این سند، ما چند نقطه شروع عالی را برای اطمینان از اینکه برنامه لاراول شما به درستی اجرا شده است، پوشش خواهیم داد.

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

چارچوب لاراول چند مورد نیاز سیستمی دارد. باید اطمینان حاصل کنید که وب سرور شما دارای حداقل نسخه PHP و پسوندهای زیر است:

  • PHP >= 8.0
  • پسوند PHP Ctype
  • پسوند cURL PHP
  • پسوند DOM PHP
  • پسوند فایل اطلاعات PHP
  • پسوند PHP را فیلتر کنید
  • هش پسوند PHP
  • پسوند PHP Mbstring
  • پسوند OpenSSL PHP
  • پسوند PCRE PHP
  • پسوند PDO PHP
  • پسوند PHP جلسه
  • پسوند PHP Tokenizer
  • پسوند XML PHP

پیکربندی سرور

Nginx

اگر برنامه خود را روی سروری که Nginx اجرا می کند، مستقر می کنید، می توانید از فایل پیکربندی زیر به عنوان نقطه شروع برای پیکربندی وب سرور خود استفاده کنید. به احتمال زیاد، این فایل باید بسته به پیکربندی سرور شما شخصی سازی شود. اگر می‌خواهید در مدیریت سرور خود کمک بگیرید، از یک سرویس مدیریت و استقرار سرور لاراول شخص اول مانند Laravel Forge استفاده کنید .

لطفاً مطمئن شوید، مانند پیکربندی زیر، وب سرور شما همه درخواست ها را به public/index.php فایل برنامه شما هدایت می کند. هرگز نباید سعی کنید index.php فایل را به ریشه پروژه خود منتقل کنید، زیرا ارائه برنامه از ریشه پروژه بسیاری از فایل های پیکربندی حساس را در معرض اینترنت عمومی قرار می دهد:

server {
listen 80;
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/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
 
location ~ /\.(?!well-known).* {
deny all;
}
}

بهينه سازي

بهینه سازی Autoloader

هنگام استقرار در تولید، مطمئن شوید که نقشه بارگذاری خودکار کلاس Composer را بهینه می‌کنید تا Composer بتواند به سرعت فایل مناسب را برای بارگیری برای یک کلاس مشخص پیدا کند:

composer install --optimize-autoloader --no-dev

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

بهینه سازی بارگذاری پیکربندی

هنگام استقرار برنامه خود در تولید، باید مطمئن شوید که config:cache دستور Artisan را در طول فرآیند استقرار خود اجرا می کنید:

php artisan config:cache

این دستور همه فایل‌های پیکربندی لاراول را در یک فایل ذخیره‌شده واحد ترکیب می‌کند، که تعداد سفرهایی را که چارچوب باید هنگام بارگذاری مقادیر پیکربندی شما به سیستم فایل انجام دهد، به شدت کاهش می‌دهد.

اگر فرمان را در طول فرآیند استقرار خود اجرا می کنید config:cache ، باید مطمئن باشید که env تابع را فقط از داخل فایل های پیکربندی خود فراخوانی می کنید. هنگامی که پیکربندی کش شد، .env فایل بارگذاری نمی‌شود و همه فراخوانی‌های env تابع برای .env متغیرها برمی‌گردند null .

بهینه سازی بارگذاری مسیر

اگر در حال ساخت یک برنامه بزرگ با مسیرهای زیاد هستید، باید مطمئن شوید که route:cache دستور Artisan را در طول فرآیند استقرار خود اجرا می کنید:

php artisan route:cache

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

بهینه سازی بارگذاری نمایش

هنگام استقرار برنامه خود در تولید، باید مطمئن شوید که view:cache دستور Artisan را در طول فرآیند استقرار خود اجرا می کنید:

php artisan view:cache

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

حالت اشکال زدایی

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

در محیط تولید شما، این مقدار باید همیشه باشد false . اگر APP_DEBUG متغیر در مرحله تولید تنظیم شده باشد true ، در معرض خطر قرار دادن مقادیر حساس پیکربندی برای کاربران نهایی برنامه خود هستید.

استقرار با Forge / Vapor

لاراول فورج

اگر برای مدیریت پیکربندی سرور خود کاملاً آماده نیستید یا با پیکربندی همه سرویس های مختلف مورد نیاز برای اجرای یک برنامه قوی لاراول راحت نیستید، Laravel Forge یک جایگزین فوق العاده است.

Laravel Forge می تواند سرورهایی را در ارائه دهندگان زیرساخت های مختلف مانند DigitalOcean، Linode، AWS و غیره ایجاد کند. علاوه بر این، Forge تمام ابزارهای مورد نیاز برای ساخت برنامه های لاراول قوی مانند Nginx، MySQL، Redis، Memcached، Beanstalk و غیره را نصب و مدیریت می کند.

راهنمای کاملی برای استقرار با لاراول فورج می‌خواهید؟ سری ویدیوهای Laravel Bootcamp و Forge را که در Laracasts موجود است ، بررسی کنید .

بخار لاراول

اگر می‌خواهید یک پلتفرم استقرار کاملاً بدون سرور و مقیاس‌پذیر خودکار برای لاراول تنظیم شده باشد، Laravel Vapor را بررسی کنید . Laravel Vapor یک پلت فرم استقرار بدون سرور برای لاراول است که توسط AWS پشتیبانی می شود. زیرساخت لاراول خود را در Vapor راه اندازی کنید و عاشق سادگی مقیاس پذیر بدون سرور شوید. Laravel Vapor توسط سازندگان لاراول به‌خوبی تنظیم شده است تا به‌طور یکپارچه با چارچوب کار کند تا بتوانید برنامه‌های لاراول خود را دقیقاً همانطور که عادت کرده‌اید بنویسید.