Ukieweb

Diary

I write here what I learn

Installing and Configuring Laravel Homestead [Bangla]

Installing and Configuring Laravel Homestead [Bangla]

সবাইকে স্বাগতম আজকের মজার টপিকে :) । আজকের বিষয় Laravel Homestead. Laravel এ কাজ করছেন কিন্তু Homestead এর নাম শুনেন নাই এমন লোক খুজে পাওয়া হয়তোবা যাবে না। কিন্তু আমরা অনেকেই Homestead কি সেটি হয়তোবা জানিনা আবার জানলেও ইন্সষ্টলেশন ঝামেলার ভেবে হয়তোবা ব্যবহার করেননি। তাই আজকে আমি চেষ্টা করবো Homestead Installation ও Configuration সম্পর্কে আমি যা শিখেছি সেটি যত সম্ভব সহজভাবে শেয়ার করতে। আমার লেখাটি Unix ভিত্তিক Operating System এর জন্য। তো চলুন জেনে নেই Homestead কি,

Homestead কি?

Homestead হলো Laravel কতৃক একটি Pre-packaged Vagrant Box যেখানে Laravel Application Development এর চমৎকার একটি ভার্চুয়াল এনভাইরনমেন্ট তৈরী করাই আছে। এর সবথেকে বড় সুবিধা হলো আপনাকে আপনার লোকাল মেশিনে PHP, MySQL, Nginx, HHVM, Node ইন্সষ্টল করা ছাড়াই Laravel Application Develop করার সমস্থ সুবিধা দিবে। ভয়ের কারন নেই, Configuration এর সময় বা Environment গত যদি কোনো ভূল হয়েও থাকে তবে এটি নতুন করে তৈরী করা মাত্র কয়েক মিনিটের ব্যপার।

Homestead জনপ্রিয় সকল Operation System’ই চলে, যেমনঃ Linux, Mac OS X, Windows. যার সাথে নিচের সফটওয়্যারগুলো প্রি-ইনস্টলড থাকে,

  • Ubuntu 14.04
  • Git
  • PHP 7.0
  • HHVM
  • Nginx
  • MySQL
  • Sqlite3
  • Postgres
  • Composer
  • Node (With PM2, Bower, Grunt, and Gulp)
  • Redis
  • Memcached
  • Beanstalkd

Installation

Homestead ইনস্টলেশনের জন্য অবশ্যই আপনাকে কম্পিউটারে একটি Virtual Machine (VirtualBox, VMWare) সেটআপ করে নিতে হবে এবং সাথে Vagrant ও ইনস্টল করে নিতে হবে। Vagrant কি ও কিভাবে কাজ করে তা বিস্তারিত জানতে হাসিন ভাইয়ের YouTube চ্যানেল Learn with Hasin Hayder এর ভ্যাগর‍্যান্ট পরিচিতি playlist এর ভিডিওগুলো দেখতে পারেন।

যাইহোক Homestead ইনস্টল করার পূর্বে আপনাকে অবশ্যই একটি Virtual Machine ইনস্টল করে নিতে হব। আমরা এখানে Virtual Machine হিসেবে VirtualBox ব্যবহার করবো। VirtualBox ইনস্টল করার জন্য আপনাকে এখান থেকে এর ইনস্টলেবল ফাইলটি নামিয়ে নিতে হবে। এখানে জনপ্রিয় সকল OS এর জন্যই প্যাকেজ আছে, আপনি আপনার Platform এর জন্য প্যাকেজটি নামিয়ে নিন। এটি ইন্সটল করা খুবই সহজ, ফাইলে ডাবল ক্লিক করে শুধু Next চাপুন :D ।
VirtualBox ইনস্টল হয়ে গেলে আপনাকে Vagrant ইনস্টল করে নিতে হবে। এ জন্য Vagrant এখান থেকে ডাউনলোড করে নিন। Vagrant এর ও সকল OS এর জন্যই প্যাকেজ আছে আপনি আপনার প্লাটফর্মের জন্য প্যাকেজটি নামিয়ে নিন। আর এটিও ইনস্টল করা একেবারেই সহজ, শুধু ডাবল ক্লিক করুন ও ইনস্টল দিন। ব্যাস হয়ে গেলো রাধুনী হালিম মিক্স, না এখনো হয়নি, কিছুটা বাকি আছে অকা?

হুম এতোক্ষন আমরা Homestead ইনস্টল করার জন্য আমাদের সিস্টেমকে উপযুক্ত করলাম, এবার Homestead ইনস্টল করার পালা। হা ভাই চলুন Homestead ইনস্টল করি। প্রশ্ন হলো Homestead আসলে কোথায় ইনস্টল করবো? Homestead হলো Vagrant এর একটি Box. আসলে Vagrant এর এ রকমের অসংখ্য Box আছে যা আপনি প্রয়োজনমতো ইনস্টল করে নিতে পারেন। Vagrant এর সকল Box সমূহ পাবেন Hashicorp এ। তাহলে চলুন Homestead ইনস্টল করি, Homestead এর Vagrant Box এর নাম laravel/homestead। এটি ইনস্টল করার জন্য টার্মিনালে নিচের কমান্ড চালান,

vagrant box add laravel/homestead

এ কমান্ডটি চালালে সিস্টেম বেশকিছু সময় নিবে, তাই অধৈর্য্য না হয়ে অপেক্ষা করুন। আর যদি কোনো ইরর দেখেন তবে বুঝতে হবে আপনার সিস্টেমে VirtualBox ও Vagrant সঠিকভাবে ইনস্টল হয়নি।

এতক্ষন Homestead আমরা VagrantBox এ ইনস্টল করলাম, কিন্তু এবার Homestead আমাদের সিস্টেমে ইনস্টল করবো। এ জন্য প্রথমে টার্মিনাল থেকে আপনাকএ home (~) ডিরেক্টরিতে যেতে হবে এবং গিট থেকে homestead ক্লোন করতে হবে নিচের মতো করে,

git clone https://github.com/laravel/homestead.git Homestead

এর ফলে home ডিরেক্টরিতে Homestead নামে একটি নতুন ডিরেক্টরি তৈরী হবে, টার্মিনাল থেকে Homestead ডিরেক্টরিতে যান এবং নিচের কমান্ডটি রান করুন,

bash init.sh

কমান্ডটি সঠিকভাবে রান করলে home ডিরেক্টরিতে .homestead নামে একটি নতুন ডিরেক্টরি তৈরী হবে এবং এখানে Homestead.yaml নামে একটি ফাইল ও তৈরী হবে। মূলত Homestead.yaml ফাইলটিতেই Laravel Homestead এর সকল কনফিগারেশন গুলো থাকে।

Configaration

আমরা আগেই জেনেছি Homestead এর সকল কনফিগারেশন ~/.homestead/Homestead.yaml ফাইলে থাকে। আমরা Homestead.yaml ফাইলটি ওপেন করি, তাহলে নিচের মতো কোড দেখতে পারবেন,

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/path/to/your/host/project
      to: /path/to/your/virtual-machine/map/project

sites:
    - map: domain.name
      to: /path/to/your/virtual-machine/map/project/public/root

databases:
    - homestead

খেয়াল করুন,
এখানে ip হলো VirtualBox এ যে Virtual Machine ইনস্টল হয়েছে তার IP address. আমি আগেই বলেছিলাম Homestead ইনস্টল করলে এর সাথে কি কি প্রি-ইনস্টল হয়ে যায়, সেখানে বলা ছিল Operation System হিসেবে Ubuntu 14.04 ইনস্টল হয়, তার মানে হলো যখনই আপনি Homestead ইনস্টল করেছেন তখনই আপনার Virtual Machine এ অর্থাৎ VirtualBox এ Ubuntu ইনস্টল হয়েগেছে, আর এ IP টি একেই ইন্ডিকেট করে।
provider হলো আপনি কোন Virtual Machine ব্যবহার করছেন সেটি, যেহেতু আমরা VirtualBox নিয়ে কাজ করছি তাই এর ভ্যালু virtualbox হবে।
folders key টি দ্বারা মূলত Host Machine এর প্রোজেক্টের সাথে Virtual Machine কে Sync করা হয়, এখানে map হলো Host Machine এর প্রোজেক্ট path আর to হলো Virtual Machine এর path
sites এটিই মূলত Virtual Hosing এর কাজটি করে থাকে, অর্থাৎ আপনার মেশিনেই রিয়েল ডোমেইন নিয়ে কাজ করার সুবিধা দেয়। এরও দুটি key আছে, map মূলত domain এর নাম নির্ধারন করে ও to Virtual Machine এর কোন path থেকে Domain ডাটা শেয়ার করবে তা নির্ধারন করে
আর database নির্ধারন করে প্রোজেক্টটি কোন ডাটাবেস শেয়ার করবে তা

তাহলে চলুন একটি Laravel প্রোজেক্টকে Homestead এ কনফিগার করি, ধরুন আমরা নতুন একটি লারাভেল প্রোজেক্ট laratest তৈরী করেছি ~/codes ডিরেক্টরিতে, এ জন্য Terminal থেকে ~/codes ডিরেক্টরিতে যেতে হবে এবং নিচের কমান্ডটি রান করাতে হবে,

laravel new laratest 

Laravel Installation না পারলে আমার Installing and Configuring Laravel 5.1 [Bangla] লেখাটি দেখতে পারেন।

তো আমাদের লারাভেল প্রোজেক্ট তৈরী হয়ে গেছে। এবার এটিকে Homestead এ কনফিগার করবো। এর জন্য প্রথমেই আপনাকে ~/.homestead/Homestead.yaml ফাইলটি ওপেন করতে হবে এবং নিচের মতো করে কনফিগার করতে হবে

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/codes/laratest
      to: /home/vagrant/codes/laratest

sites:
    - map: laratest.app
      to: /home/vagrant/codes/laratest/public/root

databases:
    - homestead

যদি কনফিগার হয়ে যায় তবে আরেকটু কাজ করতে হবে, আপনাকে host কে ডোমেইন নামটি বলে দিতে হবে, এজন্য আপনাকে টার্মিনাল থেকে /etc/hosts ফাইলটিকে ওপেন করতে হবে নিচের মতো করে,

sudo nano /etc/hosts

ফলে ফাইলটি টার্মিনালে ওপেন হবে, এবার নিচের লাইনটি সবার শেষে লিখুন

192.168.10.10   laratest.app

ব্যাস হয়ে গেলো কনফিগারেশন এর কাজ শেষ, এবার শুধু Vagrant Box তৈরী করার পালা, ভয় পাবার কারন নেই, একাজটি অনেক সহজ। টার্মিনাল থেকে ~/Homestead এ যান এবং নিচের কমান্ডটি রান করান,

vagrant up

কয়েক মিনিট অপেক্ষকা করুন, ব্যাস এবার তৈরী হয়ে গেলো রাধুনী হালিম মিক্স :D .

ঠিকভাবে কাজ করছে কিনা তা যাচাই করার জন্য ব্রাউজারে যান এবং এড্রেসবারে লিখুন laratest.app , দেখুন নিচের মতো ছবি আসে কিনা। যদি এরকম ছবি দেখতে পান তবে মনে করবেন আপনি একজন বীরশ্রেষ্ঠ, অপস স্যরি আপনি সাকসেস।

Laravel 5 home

আর যদি এরকমের কিছু না আসে তবে সব দোষ আপনার।

এখন একটি সমস্যা হলো যখনই আপনি vagrant up কমান্ডটি চালাবেন সেটি আপনাকে ~/Homestead ডিরেক্টরিতে গিয়ে চালাতে হবে। এখন আপনি যদি এ কমান্ডটি গ্লোবাললি চালাতে চান তবে নিচের কোডটি ~/.bashrc ফাইলের একেবারে শেষে লিখে সেভ করুন,

alias ‍vagrant='function __homestead() { (cd ~/Homestead && vagrant $*); unset -f __homestead; }; __homestead'

এবার নিচের কমান্ডটি রান করান

source ~/.bashrc

ব্যস এবার থেকে আপনি যেকোনো জায়গা থেকে vagrant কমান্ডটি রান করাতে পারবেন :)

পরবর্তি কোনো এক সময় Virtual Machine এর database হ্যান্ডলিং নিয়ে লিখবো ইনশা’আল্লাহ :)

ধন্যবাদ

0 Comments

To make a comment you have to login