PHP ডেভলপমেন্টের Environment Setup

আমরা জানি পিএইচপি সার্ভার সাইড স্ক্রিপ্টিং ল্যাংগুয়েজ। পিএইচপি প্রোগ্রাম রান করার সার্ভার লাগে। তাই পিএইচপি নিয়ে কাজ করতে গেলে প্রথমে আমাদের কম্পিউটারে পিএইচপি সার্ভার ইনস্টল করতে হবে। আর পিএইচপি দিয়ে ওয়েব ডেভলপে একটা কমন ব্যাপার হলো MySQL ডাটাবেজের ব্যবহার,যার জন্য আবার মাইএসকিউএল সার্ভার ইনস্টলের প্রয়োজন হয়। এই প্রয়োজনীয়তা মাথায় রেখে একটা প্যাকেজ সফটওয়্যার পাওয়া যায় , যাতে একসাথে পিএইচপি সার্ভার ,মাইএসকিউএল সার্ভার সহ অন্যান্য প্রয়োজনীয় জিনিসপত্র একসাথে দেয়া থাকে। উইন্ডোজের জন্য এর নাম WAMP (মূলত Windows-Apache-MySQL-PHP থেকে এই নামকরন),লিনাক্সের জন্য LAMP ,ম্যাক ওএস এর জন্য MAMP।তবে XAMPP নামে আরেকটি প্যাকেজ সফটওয়্যার ও অনেক জনপ্রিয় উইন্ডোজ অপারেটিং সিস্টেমের জন্য। আমরা যেকোন একটা ইনস্টল করে নিতে পারি,সবি একই কাজ করে।

সার্ভার ইনস্টল হয়ে গেলে নিজেদের কম্পিউটার থেকেই ক্লায়েন্ট সেজে সেই সার্ভারের সাথে কমিউনিকেট করতে পারি।আমরা জানি সার্ভারের একটা ইউনিক পরিচয় থাকে,যেটা তার আইপি এ্যাড্রেস,যেটা আবার টাকা দিয়ে ICNN থেকে রেজিস্ট্রেশন করে কিনতে হয়।তবে নিজেদের নেটওয়ার্ক এর জন্য কিছু আইপি এ্যাড্রেস রিজার্ভ করা আছে,যা ফ্রি ভাবে সব কম্পিউটারে দেয়াই থাকে। নিজের ডিভাইস/কম্পিউটারের ক্ষেত্রে এই আইপি এ্যাড্রেস হল – 127.0.0.1 ।এই আইপি এ্যাড্রেস ব্রাউজারে লিখে ইন্টার দিলেই নিজ পিসিতে ইনস্টল করা সার্ভারে রিকুয়েস্ট যাবে এবং সার্ভার যা রেসপন্স দিবে তা ব্রাউজারে দেখা যাবে।তবে বার বার আইপি এ্যাড্রেস লেখা যেহেতু কষ্টকর,আমরা সেটাকে ডোমেইন নেম দিয়ে রিপ্লেস করতে পারি। নিজেদের ডিভাইসের সার্ভারের জন্য রিজার্ভ করা এই ডোমেইন নেম হল localhost ।

তো সার্ভার কিন্তু আমাদের পুরো কম্পিউটারের সব ফাইল ই এক্সপোজ করে রাখবে না। আমরা যে ফোল্ডারে সার্ভার ইনস্টল করবো,তার ভিতরের কোন একটা ফোল্ডারকে সার্ভার ডকমেন্ট রুট বা এ্যাপ রুট ধরে তার ভিতরে থাকা ফাইল,ফোল্ডারগুলোকে এক্সপোজ করে দিবে । অর্থাৎ আমরা সার্ভারের কাছে যে রিকুয়েস্ট পাঠাবো,সার্ভার তা ওই ফোল্ডারে খুজবে,পেলে তা রেসপন্স হিসেবে পাঠিয়ে দেবে,না পেলে ৪০৪ এরর পাঠিয়ে দিবে। যেমন- আমরা যদি D:\Xampp ফোল্ডারে XAMPP ইনস্টল করি,তাহলে আমাদের ডকরুট হবে D:\Xampp\htdocs , এখন localhost/folder/file.html এটা লিখে ব্রাউজারে এন্টার করলে সার্ভার ব্রাউজারকে D:\Xampp\htdocs\folder\file.html এ থাকা ফাইল রেসপন্স হিসেবে পাঠিয়ে দেবে। এখন D:\Xampp\htdocs\folder এই ফোল্ডারে যদি file.html ফাইলটি না থাকে বা D:\Xampp\htdocs এ folder নামক কোন ফোল্ডার ই না থাকে,তাহলে সার্ভার ৪০৪ এরর রেসপন্স হিসেবে পাঠায় দিবে।

সার্ভার ঠিকমতো ইনস্টল হয়েছে কিনা টেস্ট করার জন্য ডকরুটের ভিতরে test.php নামে একটা টেক্সট ফাইল খুলি।এক্সটেনশনের দিকে সতর্ক থাকতে হবে, ফাইল যাতে test.php.txt না হয়।এবার যেকোন এডিটরে সেই ফাইল ওপেন করে নিচের লাইন টি পেস্ট করে সেভ করি।
<?php echo “hello world”;?>
এবার ব্রাউজারে localhost/test.php লিখে ইন্টার চাপি।ব্রাউজারে যদি হ্যালো ওয়ার্ল্ড লেখা টা দেখতে পারেন,তাহলে সার্ভার সেটাপ সম্পূর্ন।এবার চাইলে লাইনটি নিচের মত পরিবর্তন করে সেভ করুন।
<?php phpinfo();?>
ব্রাউজারে ঐ লিংক রিফ্রেশ দিন, ইনস্টল করা পিএইচপি এর পুরো তথ্য দেখতে পারবেন।

ভার্চুয়াল হোস্ট সেটাপ-
something.com , hantan.net এসব ডোমেইন দেখে দেখে অভস্ত্য আমরা localhost কে অড মনে হতে পারে।আমরা চাইলে একটা ট্রিক্স দিয়ে এটাকে চেঞ্জ করে ফেলতে পারি। ধরুন আমরা একটা ফেসবুকের মত সোসাল নেটওয়ার্কিং সাইট ডেভলপ করব , যার ফাইলগুলো D:\Xampp\htdocs\fb ফোল্ডারে রাখব।এখন localhost/fb এর বদলে facebook.com লিখে আমাদের ফাইলগুলোকে পেতে চাই। তাহলে প্রথমে আমাদের XAMPP ইনস্টল ডিরেক্টরিতে গিয়ে apache\conf\extra\httpd-vhosts.conf ফাইল টি এডিটর দিয়ে ওপেন করতে হবে। ফাইলের শেষে নিচের লাইনগুলো এ্যাড করে সেভ করুন।
<VirtualHost *:80>
DocumentRoot “D:/xampp/htdocs/fb”
ServerName facebook.com
<Directory “D:/xampp/htdocs/fb”>
</Directory>
</VirtualHost>
এবার C:\Windows\System32\drivers\etc তে গিয়ে hosts ফাইলটি নোটপ্যাড বা কোন টেক্সট এডিটরে ওপেন করি।ফাইলের নিচে নিচের লাইনটি পেস্ট করে এ্যাডমিন পারমিশন দিয়ে সেভ করুন।
127.0.0.1    facebook.com
এবার সার্ভার রিস্টার্ট দিয়ে যেকোন ব্রাউজার থেকে facebook.com এ গেলে ঐ fb ফোল্ডারে থাকা ফাইলগুলোকে পাওয়া যাবে।এই সিস্টেম টাকে ভার্চুয়াল হোস্ট বলে।ব্যাপারটা কেমনে কাজ করে? ব্রাউজার যখন ওই ডোমেইনে রিকুয়েস্ট করে অপারেটিং সিস্টেম তখন হোস্ট ফাইল থেকে আইপিতে কনভার্ট করে,যেটা আমাদের লোকালহোস্টের আইপি।ফলে রিকুয়েস্ট টা মেইনলি ফরোয়ার্ড হয় আমাদের পিসির সার্ভারে।এরপর সার্ভার ভার্চুয়াল হোস্ট কনফিগারেশন থেকে বুঝে নেয় এর ডোমেইনের ডকরুট কোথায় এবং সেটা থেকে ফাইল রেসপন্স করে।

কিন্তু এতে ঝামেলা হলো সার্ভার চালু থাকুক আর বন্ধ থাকুক, আপনি আর ঐ পিসি থেকে কোন ভাবেই আসল ফেসবুকে যেতে পারবেন না,যেহেতু অপারেটিং সিস্টেমই আপনার লোকাল পিসিতে রিকুয়েস্ট রিডিরেক্ট করে দিবে। এই জন্য লোকালহোস্টে অরিজিনাল TLD ( .com, .net) এর বদলে কিছু ভার্চুয়াল TLD (যেমন .dev , .app , .local ইত্যাদি) ব্যবহার করা হয়।তাই facebook.com ব্যবহার করার বদলে facebook.dev ব্যবহার করাই বেটার, তাই না?আসল ফেসবুক ও চলবে আপনার ডেভলপ করা ফেসবুক ও চলবে 😉

  1. জুলাই 10.2019 / 3:59 অপরাহ্ন / জবাব

    This is absolutely nice.