نسخه:

گسترش

معرفی

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

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

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

  • PHP >= 8.2
  • پسوند 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.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
 
location ~ /\.(?!well-known).* {
deny all;
}
}

بهينه سازي

هنگام استقرار برنامه خود در تولید، فایل های مختلفی وجود دارد که باید در حافظه پنهان شوند، از جمله پیکربندی، رویدادها، مسیرها و نماهای شما. لاراول یک دستور Artisan منفرد و راحت ارائه می دهد optimize که همه این فایل ها را کش می کند. این دستور معمولاً باید به عنوان بخشی از فرآیند استقرار برنامه شما فراخوانی شود:

php artisan optimize

این optimize:clear روش ممکن است برای حذف تمام فایل های کش تولید شده توسط optimize دستور استفاده شود:

php artisan optimize:clear

در مستندات زیر به هر یک از دستورات بهینه سازی دانه ای که توسط دستور اجرا می شوند، خواهیم پرداخت optimize .

پیکربندی حافظه پنهان

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

php artisan config:cache

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

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

ذخیره رویدادها

شما باید رویداد کشف شده خودکار برنامه خود را در نقشه های شنونده در طول فرآیند استقرار خود ذخیره کنید. این را می توان با فراخوانی event:cache دستور Artisan در حین استقرار انجام داد:

php artisan event:cache

مسیرهای ذخیره سازی حافظه پنهان

اگر در حال ساخت یک برنامه بزرگ با مسیرهای زیاد هستید، باید مطمئن شوید که 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 ، در معرض خطر قرار دادن مقادیر حساس پیکربندی برای کاربران نهایی برنامه خود هستید.

مسیر سلامتی

لاراول شامل یک مسیر بررسی سلامت داخلی است که می تواند برای نظارت بر وضعیت برنامه شما استفاده شود. در تولید، این مسیر ممکن است برای گزارش وضعیت برنامه شما به یک مانیتور آپتایم، متعادل کننده بار، یا سیستم ارکستراسیون مانند Kubernetes استفاده شود.

به‌طور پیش‌فرض، مسیر بررسی سلامت در آن ارائه می‌شود /up و اگر برنامه بدون استثنا بوت شده باشد، یک پاسخ HTTP 200 برمی‌گرداند. در غیر این صورت، یک پاسخ HTTP 500 برگردانده خواهد شد. می توانید URI را برای این مسیر در bootstrap/app فایل برنامه خود پیکربندی کنید:

->withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
health: '/status',
)

وقتی درخواست‌های HTTP به این مسیر ارسال می‌شود، لاراول یک رویداد را نیز ارسال می‌کند Illuminate\Foundation\Events\DiagnosingHealth و به شما امکان می‌دهد بررسی‌های بهداشتی اضافی مرتبط با برنامه خود را انجام دهید. در یک شنونده برای این رویداد، می‌توانید پایگاه داده یا وضعیت حافظه پنهان برنامه خود را بررسی کنید. اگر مشکلی را در برنامه خود تشخیص دهید، ممکن است به سادگی یک استثنا از شنونده پرتاب کنید.

استقرار آسان با فورج / بخار

لاراول فورج

اگر برای مدیریت پیکربندی سرور خود کاملاً آماده نیستید یا با پیکربندی همه سرویس های مختلف مورد نیاز برای اجرای یک برنامه قوی لاراول راحت نیستید، 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 توسط سازندگان لاراول به‌خوبی تنظیم شده است تا به‌طور یکپارچه با چارچوب کار کند تا بتوانید برنامه‌های لاراول خود را دقیقاً همانطور که عادت کرده‌اید بنویسید.