Deploy Laravel app on Shared Hosting – বাংলায়

Deploy Laravel app on Shared Hosting
Spread the love

এই পোস্টটিতে কিভাবে সহজ উপায়ে Deploy Laravel app on Shared Hosting করা যায় তা দেখবো।লারাভেল অ্যাপ্লিকেশন বানানোর পরে আমাদের শেয়ার্ড হোস্টিংয়ে আপলোড করতে হয় লাইভ সার্ভারে দেখার জন্যে।

আমরা আজকে দুটো পদ্ধতি নিয়ে আলোচনা করবো। একটি public ফোল্ডারের সাহায্যে কিভাবে করা যায় আরেকটি .htaccess ফাইল এর সাহায্যে।

আমি ধরে নিচ্ছি আপনি নিজের এপ্লিকেশন তৈরি করা শেষ করেছেন। কমপক্ষে একটি ফাংশনাল এপ্লিকেশন যা আপনার লোকালহোস্টে কাজ করছে।

ধরা যাক নীচের ফোল্ডার কাঠামোর মত আপনার লারাভেল প্রজেক্টির নাম laravel50 রাখা হয়েছে:

deploy laravel 7 on shared hosting

পদ্ধতি ১ঃ Public ফোল্ডারের সাহায্যে

১. আপনার লোকাল পিসিতে পুরো প্রজেক্ট ফোল্ডারটি কম্প্রেস করুন। আপনি একটি জিপ ফাইল পাবেন – laravel50.zip

২. যেখানে Deploy Laravel app on Shared Hosting করবেন তার সিপ্যানেলটি খুলুন।

deploy laravel 5.7 on shared hosting

৩. ‘File Manager’ এ ক্লিক করুন

৪.‘Upload’এ ক্লিক করুন

৫. Laravel50.zip রুট ডিরেক্টরিতে আপলোড করুন – public_ html এ নয়।

৬. Laravel50.zip এক্সট্রাক্ট করুন।

আপনার সিপ্যানেল File Manager টি  নিচের ছবির মত কিছু দেখতে পাবেন:

deploy laravel 5.8 on shared hosting

৭. laravel50 ফোল্ডারটি খুলুন এবং আপনার সিপ্যানেলের public_html ফোল্ডারে public ফোল্ডারের কন্টেন্টগুলো সরান। আপনি এখন খালি public ফোল্ডারটিও ডিলিট করতে পারেন।

৮. এখন public_html ফোল্ডারের ভিতরে index.php নামের ফাইল আছে তাতে রাইট ক্লিক করে কোড এডিট ওপেন করুন।

৯. এখন সিপ্যানেলের আরেকটি ট্যাবে কোড এডিটর ওপেন হবে

১০. নিম্নলিখিত লাইনগুলি (22 এবং 36) থেকে পরিবর্তন করুন

require __DIR__.'/../bootstrap/autoload.php';
...
$app = require_once __DIR__.'/../bootstrap/app.php';

to

require __DIR__.'/../laravel50/bootstrap/autoload.php';
...
$app = require_once __DIR__.'/../laravel50/bootstrap/app.php';

নোট: আপনার প্রজেক্টের ফোল্ডারের নাম অনুসারে

১১. দয়া করে আপনার .htaccess ফাইলের কিছু পরিবর্তন করবেন না(যদি কোন ধারনা না থাকে) .htaccess ফাইলটি দেখতে এমন হবে।

<IfModule mod_rewrite.c>
   <IfModule mod_negotiation.c>
         Options -MultiViews
   </IfModule>

   RewriteEngine On

   # Redirect Trailing Slashes…
     RewriteRule ^(.*)/$ /$1 [L,R=301]

  # Handle Front Controller…
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>`

১২. সব কিছু ঠিক থাকলে আপনার ডোমেইন http://yourdomain.comডাটাবেস ইরর দেখানো উচিত (যদি আপনার এপ্লিকেশনের মডেলগুলি রানিং থাকে)।

চিন্তার কিছু নেই! আমরা এখন ডাটাবেস মাইগ্রেশন নিয়ে কথা বলবো

ডাটাবেস তৈরি এবং মাইগ্রেট

লারাভেল ফ্রেমওয়ার্ক এর একটি সুন্দর বিষয় হ’ল এটি আপনাকে একটি একক কমান্ড “php artisan migrate” মাধ্যমে ডাটাবেসগুলি দ্রুত সেটআপ করতে সাহায্য করে। যেহেতু আমরা Shared Hosting ব্যবহার করছি, তাই আমরা এটা করতে পারবো না SSH ছাড়া। তাই আমরা ম্যানুয়ালি করবো যদি আপনার কাছে 10 টি টেবিল থাকে। এটি সহজ তাই শুরু করা যাক:

আপনার ওয়েব হোস্টে একটি ডাটাবেস তৈরি করুন।

১. বেশিরভাগ সিপ্যানেল phpmyadmin এবং mysql ডেটাবেস উইজার্ড থাকে। একটি [Database and User] তৈরি করতে mysql ডেটাবেস উইজার্ডটি ব্যবহার করুন এবং তারপরে User কে ডেটাবেসটি এর সাথে যুক্ত করুন।

২. আপনার টেবিলগুলি তৈরি করতে সিপ্যানেলের PHPMyAdmin ব্যবহার করুন। প্রতিটি টেবিল এর জন্য আপনার সিপ্যানেলের PHPMyAdmin সঠিক কাঠামো তৈরি করুন।

deploy laravel 7 on shared hosting

৩. লোকাল পিসি থেকে ডেটাবেস এক্সপোর্ট ও ইম্পোর্ট আরও একটি উপায় রয়েছে। আপনার লোকাল পিসির থেকে ডাটাবেস টি এক্সপোর্ট টুল এর সাহায্যে ডাউনলোড করে সিপ্যানেলে ইম্পোর্ট করুন।

how to deploy laravel 7 project on cpanel

যদি সফলভাবে আপলোড হয় তবে আপনি ‘Success Message” দেখতে পাবেন

৪. আপনার সিপ্যানেল File Manager, Laravel50 (বা আপনার লারাভেল প্রজেক্ট ডিরেক্টরি) এ যান। config/database.php বা .env ফাইল ওপেন করে সেখানে ডাটাবেস নাম, ইউজার নাম, ইউজার পাসওয়ার্ড দিয়ে পরিবর্তন করুন
সবকিছু সঠিকভাবে প্রবেশ করা হয়েছে তা নিশ্চিত করুন।

যদি সবকিছু ঠিকঠাক হয় তবে আপনার সাইটটি এখন ঠিকঠাক কাজ করা উচিত।

 

পদ্ধতি ২ঃ .htaccess ফাইল এর সাহায্যে

এই পধতিতে Deploy Laravel app on Shared Hosting এ করতে হলে প্রথমে লোকাল পিসির আপনার প্রজেক্টটিতে একটা .htaccess ফাইল তৈরি করুন আর সেখানে নিচের কোড লিখুনঃ

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>
    
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ ^$1 [N]

    RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
    RewriteRule ^(.*)$ public/$1 

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ server.php

</IfModule>

এখানে আমরা server.php ফাইলকে রিরাইট রুল করেছি। server.php ফাইল এ দেখুন

require_once __DIR__.'/public/index.php'; 

Public ফোল্ডারের index.php কে ম্যানশন করা হয়েছে যার কারনে এখন আর public ফোল্ডারের ফাইল্গুলোকে রুট ডাইরেক্টরিতে আনার প্রয়োজন নাই।

এখন ফাইল টি জিপ করে আপলোড করে এক্সজাক্ট করে ডাটাবেস সেটাপ দিলেই হবে।

এটা খুবই সহজ একটা পদ্ধতি।

 

আশা করি সব ঠিকঠাক করতে পেরেছেন।

আজ এই পর্যন্তই। আপনাদের মতামত নিচের কমেন্ট বক্স এ জানাবেন। নতুন কিছু নিয়ে লিখা চাইলে সেটাও জানাতে পারেন।হ্যাপি কোডিং…

আরও পড়ুন-

 

Leave a Reply

Your email address will not be published. Required fields are marked *