উবুন্টু ১৪.০৪ ল্যাম্প সার্ভারে এবং উইন্ডোজে Virtual Hosts সেটাপ করা

আপনারা যারা উইন্ডোজ ব্যবহার করেন তাদের জন্য দুটো লোকালহোস্ট ক্রিয়েট করবার সফটয়্যার আছে, যা শুধু মাত্র নেক্সট নেক্ট্রস করে গেলেই আপনাদের পিসিতে এপাচি, পিএইচপি, পিএইচপি মাই এডমিন সেটাপ হয়ে যাবে। একটি হচ্ছে XAMPP এবং অন্যটি WAMP। ধরে নিচ্ছি এই দুটোর কোন একটি আপনার পিসিতে সেটাপ করা আছে।

কেন ভারচুয়াল হোস্ট ক্রিয়েট করবেনঃ ধরুন আপনার পিসিতে লোকালহোস্ট ক্রিয়েট করা আছে। এখন আপনার একটা সাইট ডেপলাপ করতে হবে যার প্রজেক্টের নাম poluda । এখন আপনি এ জন্য আপনার পাবলিক ডিরেক্টরিতে একটা ফোল্ডার তৈরি করলেন poluda নামে এবং তা ব্রাউজ করবার জন্য আপনাকে ব্রাউজারে লিখতে হবে http://localhost/poluda । এখন আপনি যদি চান এতো বড় এড্রেস না লিখে শুধু http://poluda লিখে কাজ করবেন আইমিন আপনার ডোমিং নাম হবে poluda। এই কাজটুকু করবার জন্যই ভারচুয়াল হোস্টের প্রয়োজন পরে থাকে।

এবার আসুন কি ভাবে করবেন তা শুরু করা যাক। মনে করি ডেক্সটপে আমার পুরো প্রজেক্টটা আছে এবং পুরো প্রজেক্টের ডিরেক্টরীর নাম হচ্ছে poluda।

১। প্রথমেই আপনাকে সিস্টেমের hosts ফাইলটি এডিট করতে হবে। এই ফাইলটিকে পাবেন C:\WINDOWS\system32\drivers\etc লোকেশনে। ফাইলটি নোট প্যাড অথবা উইন্ডোজের সাথে ডিফল্ট প্যাডে ওপেন করেন এবং নিচে নিচের মতো লাইন এড করে দিন

127.0.0.1    localhost
127.0.0.1    poluda

127.0.0.1 localhost এড্রেসটা আগেই থাকবে জাস্ট পলুদা এড্রেসটা এড করে দিবেন। সেভ করে বাহির হয়ে আসেন।
প্রবলেমঃ উইন্ডোজে এই ফাইলটা সেভ মুডে অন করে এডিট করতে হবে।

২। এরপর আপনার XAMPP অথবা WAMP এর ইনিস্টলেশন ফোল্ডারের apache\conf এর ভিতরে httpd.conf ফাইলটি ওপেন করুন। ফাইলটির একদম শেষে নিচের লাইনগুলো এড করে দিন।

ServerName localhost
DocumentRoot "D:\xampp\htdocs"

Directory "D:\xampp\htdocs">
Options Indexes FollowSymLinks Includes ExecCGI
Order allow,deny
Allow from all

NameVirtualHost *:80
ServerName poluda
DocumentRoot "C:\Documents and Settings\polash\Desktop\poluda"

Directory "C:\Documents and Settings\polash\Desktop\poluda">
Options Indexes
Order allow,deny
Allow from all
AllowOverride All

ফাইলটি সেভ করে বাহির হয়ে আসুন এবং এপাচি রিস্টার্ট দিন। ব্যাস কাজ শেষ 🙂
ব্রাউজারে গিয়ে http://poluda লিখে এন্টার দিলেই আপনার নির্দিষ্ট সাইটটি ব্রাউজ করতে পারবেন।
বিশ্লেষণঃ ServerName এ আপনি যে নামে ক্রিয়েট করতে চাচ্ছেন তার নাম দিবেন। DocumentRoot এবং Directory তে আপনার সাইটের ডিরেক্টরি দেখিয়ে দিবেন 🙂

এবার আসুন লিনাক্সে। আমি উবুন্টু ১৪.৪ নিয়ে দেখাচ্ছি।
লিনাক্সেও XAMPP সার্ভার ব্যবহার করা যায়। আমি Lamp সার্ভার দিয়ে দেখাচ্ছি। প্রথমেই আসুন যাদের ল্যাম্প সার্ভার নেই তাদের জন্য নিচের কোডটি ট্রারমিনালে লিখে ইন্টার দিন

sudo apt-get install lamp-server^

কিছুক্ষন পর পাসওয়ার্ড চাবে, যে পাসওয়ার্ড দিতে চান তা দিয়ে নিশ্চিন্তে বসে থাকুন। সবকিছু কম্পিলিট হয়ে গেলে ব্রাউজারে localhost লিখে এন্ডার দিন, সবকিছু ঠিক ঠাক থাকলে নিচের মতো পেজ ওপেন হবে

default_apache

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

sudo gedit /var/www/html/info.php

টেক্সএডিটর ওপেন হবে সেখানে

<?php
phpinfo();
?>

লিখে সেভ করে ফাইলটি বন্ধ করে ব্রাউজারে এড্রেস বারে লিখেন-

http://localhost/info.php

যদি সবকিছু ঠিক ঠাক থাকে তাহলে পিএইচপি ইনফোর পেজ দেখাবে ব্রাউজারে, নিচের মতো

default_php

এবার যদি পিএইচপি মাই এডমিন সেটাপ করতে চান তাহলে নিচের কোডটি লিখুন এবং ইন্টার চাপুন

sudo apt-get install phpmyadmin

Apache2 সিলেট করে ইনটার চাপুর, পাসওয়ার্ড চাইবে, পাসওয়ার্ড দিন তাহলেই সেটাপ হয়ে যাবে। প্রথমবার মাইএন্সকিউএল এর পাসওয়ার্ড চাবে তারপর যে পাসওয়ার্ড দিয়ে পিএইচপিমাইএডমিন লগিন করবেন তার পাসওয়ার্ড দুইবার চাবে।

এবার কনফিগার করতে হবে। এ জন্য ট্রারমিনালে নিচের কোডটি দিয়ে এন্টার দিন

sudo gedit /etc/apache2/apache2.conf

যে ফাইলটি ওপেন হবে তার মাঝে নিচের কোডটি এড করে দিন

Include /etc/phpmyadmin/apache.conf

এবার এপাচি সার্ভার রিস্টার্ট দিতে নিচের কোডটি ট্রারমিনালে লিখে এন্টার দিন

sudo service apache2 restart

এইতো গেল ল্যাম্প সার্ভার সেটাপ করা। এবার আসেন Virtual Hosts কিভাবে সেটাপ করবেন তা দেখে নেই।

উদাহরন স্বরুপ /var/www ডিরেক্টরীতে দুটি ফোল্ডার ক্রিয়েট করবো, আপনারা যে নামে চাবেন তা দিয়ে ক্রিয়েট করুন। আমি উদাহরন স্বরুপ example.dev এবং test.dev ক্রিয়েট করছি এবং এর ভিতরে থাকবে পাবলিক ফোল্ডার যা একসেস করা হবে (কি সহজ জিনিস বুঝাতে পারছি না, আমার লিখে বুঝানোর ক্ষমতা শূর্ণ্যের কোঠায় চলে এসেছে sad )

দুটো ফোল্ডারের সাথে সাব ফোল্ডার ক্রিয়েট করাবর জন্য টারমিনালে নিচের কোডটি লিখে এন্টার চাপুন:

sudo mkdir -p /var/www/example.dev/public_html
sudo mkdir -p /var/www/test.dev/public_html

ফোল্ডারগুলোর পারমিশন সেট করুন-

sudo chown -R $USER:$USER /var/www/example.dev/public_html
sudo chown -R $USER:$USER /var/www/test.dev/public_html

এখন ধরেন ব্রাউজারে example.dev লিখলে example.dev/public_html ডিরেক্টরির ফাইল শো হবে এবং যদি test.dev লিখি তাহলে test.dev/public_html এর ফাইল শো করবে। এজন্য আসুন দুটো পাবলিক ডিরেক্টরীতে দুটো html index ফাইল ক্রিয়েট করি বুঝবার সুবিধার্থ যে আসলেই একসেস করছে কিনা। index.html ফাইল ক্রিয়েট করবার জন্য নিচের কোডটি ট্রারমিনালে লিখুন

gedit /var/www/example.dev/public_html/index.html

আমাদের ইনডেক্ট ফাইলটি ওপেন হবে তার মাঝে নিচের কোডটি লিখে সেভ করে ফাইলটি ক্লোজ করুন

Welcome to Example.dev!

<h1>Success! The example.dev virtual host is working!</h1>

তাহলে আমাদের example.dev/public_html/index.html ডিরেক্টরিতে একটি ইনডেক্ট ফাইল ক্রিয়েট হয়ে গেল। এই ফাইলটিকেই কপি করে test.dev/public_html ফোল্ডারে রেখে ভিতরের লেখা পরিবর্তন করে দিলেই হবে। কপি করবার জন্য ট্রারমিনালে লিখুন-

cp /var/www/example.dev/public_html/index.html /var/www/test.dev/public_html/index.html

এবার কপি করা ফাইলটি এডিট করবার জন্য ট্রারমিনালে লিখুন-

gedit /var/www/test.dev/public_html/index.html

এবার ওপেন করা ফাইলটির সব কিছু মুছে নিচের কোডটি কপি করে পেষ্ট করুন-

Welcome to Test.dev!

<h1>Success! The test.dev virtual host is working!</h1>

এবার নতুন ভারচুয়াল হোস্ট ক্রিয়েট করার পালা। এপাচিতে ডিফল্ট ভারচুয়াল হোস্ট ফাইল এর নাম হচ্ছে 000-default.conf । আমরা এই ফাইলটাকেই কপি করে নতুন করে কনফিগার করে নেব। নিচের কোডটি ট্রারমিনালে লিখুন-

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.dev.conf

এ দিয়ে বুঝানো হচ্ছে 000-default.conf ফাইলটি কপি করে একই ডিরেক্টরীতে example.dev.conf নামে রাখার জন্য ।

এবার example.dev.conf ওপেন করে কনফিগার করবার জন্য নিচের কোডটি লিখুন

sudo gedit /etc/apache2/sites-available/example.dev.conf

সবকিছু মুছে দিয়ে নিচের কোডটি কপি করে পেষ্ট করে দিন-


ServerAdmin [email protected]
ServerName example.dev
ServerAlias www.example.dev
DocumentRoot /var/www/example.dev/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

এখানে বুঝানো হয়েছে- আমাদের সার্ভার নেম হচ্ছে example.dev । আর এই সাভারের ফাইল ডিরেক্টরী হচ্ছে /var/www/example.dev/public_html । অথ্যা+খন্ডত (লিনাক্সে খন্ডত খুজে পাচ্ছি না ) ব্রাউজারে যদি example.dev লিখে তাহলে /var/www/example.dev/public_html ডিরেক্টরীর ফাইল একসেস করতে পারবে।

ঠিক এমন ভাবে test.dev এর জন্য একই পদক্ষেপ নিচ। নিচের কোডগুলো ট্রারমিনালে লিখুন-

sudo cp /etc/apache2/sites-available/example.dev.conf /etc/apache2/sites-available/test.dev.conf

এবার এডিট করবার জন্য নিচের কোডটি লিখুন-

sudo gedit /etc/apache2/sites-available/test.dev.conf

ফাইলটির সবকিছু মুছে নিচের কোডগুলো কপি করে পেষ্ট করে দিন-


ServerAdmin [email protected]
ServerName test.dev
ServerAlias www.test.dev
DocumentRoot /var/www/test.dev/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

এখন আমাদের নতুন ভারচুয়াল হোস্টগুলো ইনেবল করতে হবে। এ জন্য নিচের কোডটি কপি করে ট্রারমিনালে পেষ্ট করুন-

sudo a2ensite example.dev.conf
sudo a2ensite test.dev.conf

এবার এপাচার রিস্টার্ট দিন-

sudo service apache2 restart

এবার DNS সেট করতে হবে। এজন্য ট্রারমিনালে নিচের কোডটি লিখুন এবং ইন্টার প্রেস করুন

sudo gedit/etc/hosts

ফাইলটির নিচে নিম্মের মতো আইপি বসিয়ে দিন

127.0.0.1 localhost
127.0.1.1 guest-desktop
127.0.0.1 example.com
127.0.0.1 test.com

লোকালহোস্ট আর গেস্ট আইপি ফাইলটিতে আগে থেকেই থাকবার কথা। আপনি শুধু তার নিচে আপনার নতুন দুটো ডোমিং এর আইপি বসিয়ে দিবেন তাহলেই হলো।

সবকিছু ঠিক ঠাক মতো হলে এবার example.dev এবং test.dev ব্রাউজারে লিখলে কাজ করবার কথা।

পূর্ব প্রকাশিতঃ এখানে

Level 0

আমি পলাশ মাহমুদ। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 15 বছর 1 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 16 টি টিউন ও 18 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 1 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

Level 0

জটিল হয়ছে ভাইয়া । আমি অবশ্যই আগে থেকে এইভাবে কাজ করতাম । গোড্যাডির এইখানে থেকে শিখেছিলাম কিন্তু এতো বিস্তারিত না ।

চমৎকার লিখেছেন। অনেক উপকৃত হবো বলে মনে হচ্ছে। চালিয়ে ব্রাদার।