আপনি যখন আপনার Laravel অ্যাপ্লিকেশনকে Production Server এ deployment করবেন, তখন আপনার অ্যাপ্লিকেশনটি যতটা সম্ভব দক্ষতার সাথে চলছে কিনা তা নিশ্চিত করতে আপনাকে কিছু গুরুত্বপূর্ণ বিষয়ের প্রতি বিশেষ দৃষ্টি দিতে হবে।
Laravel অ্যাপ্লিকেশনকে উৎপাদন(production) পরিবেশে ডেপ্লয় করার জন্য কিছু নির্দিষ্ট ধাপ ও কনফিগারেশন প্রয়োজন হয়। সঠিকভাবে ডেপ্লয় করলে আপনার অ্যাপ্লিকেশন দ্রুত, নিরাপদ এবং নির্ভরযোগ্য হবে। এখানে Laravel ডেপ্লয়মেন্ট প্রক্রিয়া সম্পর্কে একটি বিস্তারিত নির্দেশিকা দেওয়া হলো।
ডেভেলপমেন্ট এবং ডেপ্লয়মেন্টের জন্য Laravel একটি অত্যন্ত জনপ্রিয় PHP ফ্রেমওয়ার্ক। উৎপাদন পরিবেশে ডেপ্লয় করার সময়, সার্ভারের সঠিক কনফিগারেশন এবং অপ্টিমাইজেশনের বিষয়গুলো অত্যন্ত গুরুত্বপূর্ণ।
Laravel চালানোর জন্য আপনার সার্ভারে নিম্নলিখিত সিস্টেমের উপাদানগুলো থাকা প্রয়োজন:
PHP >= 8.2
Ctype PHP Extension
cURL PHP Extension
DOM PHP Extension
Fileinfo PHP Extension
Filter PHP Extension
Hash PHP Extension
Mbstring PHP Extension
OpenSSL PHP Extension
PCRE PHP Extension
PDO PHP Extension
Session PHP Extension
Tokenizer PHP Extension
XML PHP Extension
যদি আপনি এমন একটি সার্ভারে আপনার অ্যাপ্লিকেশন হোস্ট করতে চান যেখানে Nginx চালু আছে, তাহলে ওয়েব সার্ভার কনফিগার করতে নিচের কনফিগারেশন ফাইলটি প্রাথমিকভাবে ব্যবহার করতে পারেন। তবে, আপনার সার্ভারের নির্দিষ্ট সেটআপ অনুযায়ী ফাইলটি কিছুটা পরিবর্তন করা লাগতে পারে। যদি সার্ভার পরিচালনা করতে সহায়তার প্রয়োজন হয়, তাহলে Laravel Forge-এর মতো Laravel-এর অফিসিয়াল সার্ভার ম্যানেজমেন্ট এবং ডেপ্লয়মেন্ট সেবা ব্যবহার করার কথা চিন্তা করতে পারেন।
এটা নিশ্চিত করুন যে, নিচের কনফিগারেশনের মতো আপনার ওয়েব সার্ভার সমস্ত রিকোয়েস্টকে অ্যাপ্লিকেশনের public/index.php
ফাইলে পাঠায়। কখনই index.php
ফাইলটিকে আপনার প্রজেক্টের মূল ডিরেক্টরিতে সরানোর চেষ্টা করবেন না, কারণ এতে করে অ্যাপ্লিকেশনের অনেক গুরুত্বপূর্ণ কনফিগারেশন ফাইল ইন্টারনেটে প্রকাশিত হয়ে যেতে পারে।
Nginx একটি হালকা ও উচ্চ-দক্ষতাসম্পন্ন ওয়েব সার্ভার যা Laravel অ্যাপ্লিকেশন চালানোর জন্য উপযুক্ত। একটি সাধারণ Nginx কনফিগারেশন নিচে দেওয়া হলো:
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;
}
}
এই Nginx কনফিগারেশন একটি লারাভেল অ্যাপ্লিকেশন সার্ভ করতে ব্যবহৃত হয়। এখানে প্রতিটি অংশের ব্যাখ্যা দেওয়া হলো:
listen 80;
এবং listen [::]:80;
নির্দেশনা IPv4 ও IPv6 উভয়ের জন্য পোর্ট 80-এ সংযোগ গ্রহণ করবে।server_name example.com;
এবং Laravel এর public ডিরেক্টরির জন্য root /srv/example.com/public;
।try_files
Laravel এর রাউটিং সিস্টেম অনুযায়ী ফাইল বা URL রিডাইরেক্ট করে।.php
ফাইলগুলো php8.2-fpm.sock
মাধ্যমে প্রসেস করা হয়।.well-known
ব্যতীত সকল হিডেন ফাইল অ্যাক্সেস বন্ধ থাকে।এটি Laravel অ্যাপ্লিকেশনটি সুরক্ষিতভাবে সার্ভ করতে সাহায্য করে।
FrankenPHP একটি নতুন PHP-সার্ভার যা Laravel এবং অন্যান্য ওয়েব অ্যাপ্লিকেশনগুলিকে দ্রুততার সঙ্গে চালাতে সাহায্য করে। এটি WebSockets সমর্থন করে, যা রিয়েল-টাইম অ্যাপ্লিকেশনের জন্য বিশেষভাবে কার্যকর।
এটি PHP, Nginx, এবং অন্যান্য ওয়েব টেকনোলজির মধ্যে একটি সেতুবন্ধন তৈরি করে, যা আপনার অ্যাপ্লিকেশনকে উন্নত পারফরম্যান্স এবং স্কেলেবিলিটি প্রদান করে।
FrankenPHP ব্যবহার করার ফলে আপনার PHP অ্যাপ্লিকেশনগুলো হবে দ্রুততর এবং আরও কার্যকর।
Laravel অ্যাপ্লিকেশন সঠিকভাবে কাজ করার জন্য কিছু ডিরেক্টরিতে লেখার অনুমতি থাকতে হবে। প্রধানত, storage এবং bootstrap/cache ডিরেক্টরিগুলিতে লেখার অধিকার প্রদান করতে হবে।
sudo chown -R www-data:www-data /path/to/your/laravel/storage
sudo chown -R www-data:www-data /path/to/your/laravel/bootstrap/cache
উৎপাদন পরিবেশে আপনার অ্যাপ্লিকেশন দ্রুত চালানোর জন্য কনফিগারেশন ক্যাশ করা উচিত:
php artisan config:cache
Laravel ইভেন্টস ক্যাশ করে অ্যাপ্লিকেশন কর্মক্ষমতা বাড়ানো সম্ভব:
php artisan event:cache
রাউটিং সিস্টেমের কার্যকারিতা উন্নত করতে আপনি রুট ক্যাশ করতে পারেন:
php artisan route:cache
ভিউ ফাইলগুলিকে ক্যাশ করতে নিচের কমান্ডটি চালান:
php artisan view:cache
Laravel অ্যাপ্লিকেশন উৎপাদন পরিবেশে ডেপ্লয় করার সময় APP_DEBUG অপশনটি .env
ফাইলে false
করতে হবে, যাতে আপনার অ্যাপ্লিকেশনের ত্রুটিগুলি প্রকাশ না হয়:
APP_DEBUG=false
Laravel অ্যাপ্লিকেশনের একটি সাধারণ "health check" রুট সেটআপ করে সার্ভারের অবস্থা পর্যালোচনা করতে পারেন। উদাহরণস্বরূপ:
Route::get('/health', function () {
return response()->json(['status' => 'ok']);
});
Laravel অ্যাপ্লিকেশন সহজে ডেপ্লয় করতে Laravel Forge এবং Vapor দুটি শক্তিশালী টুলস।
Laravel ডেপ্লয়মেন্ট সঠিকভাবে সম্পন্ন করার মাধ্যমে আপনার অ্যাপ্লিকেশনটি আরও দ্রুত, নিরাপদ এবং নির্ভরযোগ্য হয়ে উঠবে।
Read more