ওয়েব সার্ভার “নিজের পিসিতে”!! সবাই দেখবে আমার ওয়েব সাইট!!

অনেকেই হয়তো আগে Localhost কে ওয়েভ সার্ভার বানিয়েছেন এবং সফল ভাবে ইন্টারনাল নেটওয়ার্ক এর মধ্যে অ্যাক্সেসও করেছেন। কিন্তু দুক্ষজনক ভাবে বাহির থেকে তা করতে পারেন নি। যারা পেরেছেন তারা এই প্রাইমারি মার্কা টিউন না পড়লেও হবে। কিছু মানুষের আবার চুল্কানি বেশি তারা আবার চুল্কাইতে আস্তে পারে, তাদের আমি ভয় পাই 😛 ..আমার ভয় এই জায়গায় যে আমি কম জানি ও কম বুঝি সাথে সাথে বেশি বুঝার চেষ্টা করি... 😀

শুরুতে কিছু সুবিধা ও অসুবিধা দেখা যাক

সুবিধাঃ

১. হোস্টিং সার্ভিস ব্যবহার এর জন্য টাকার দরকার নেই
২. যেহেতু সব কিছু নিজের পিসিতে তাই দ্রুত পরিবর্তন করা যায় । নতুন কিছু যোগ ও করা যায়
৩. অপলোড এর ঝামেলা নেই

অসুবিধাঃ

১. সবচেয়ে বড় অসুবিধা হল ব্যান্ডউইথ। কোন Unlimited Plan অথবা Lan না থাকলে লাভের চাইতে ক্ষতিই বেশি হবে।
২. সার্ভার চালু রাখতে হলে আপনার পিসি সব সময় চালু রাখতে হবে
৩. আরেকটা অসুবিধা হল Speed । আমাদের দেশে ইন্টারনেট এর স্পীড অনেক কম একারনে সার্ভারের স্পীড ও কম হবে। নিজের সাইট কে Popular বানাতে চাইলে এটা Worse Option । অনেক ভিজিটর থাকলে সার্ভার বিপুল সময় নিবে
উপরের কথা গুলো শুনে অনেকেই ডিমোটিভেটেড হয়ে গেছেন। আরে ভাই একটা জিনিস করতে পারার আনন্দটাই সবচেয়ে বড় পাওয়া। আমি লিমিটেড প্লান এর মডেম চালাই তাও বেশ কিছুদিন সার্ভারের টেস্ট রান করিয়েছি। নিজের টাকার বিপুল পরিমান বাশ দিয়েছি 😛
আর কথা না বাড়িয়ে শুরু থেকে শুরু করা যাক

যা যা লাগবে :\

Xampp সফটওয়্যার। আমরা অলস জাতি তাই এটাই আমাদের কাজের জন্য যথেষ্ট। আমাদের যা যা দরকার সবই আছে এর মধ্যে- Apache, PHP, MySQL । এবং এটা সব configuration এর কাজ করে দিবে।
এই সফটওয়্যার এর latest installer version ডাউনলোড করব।
আপাতত এটাই latest - xampp-win32-1.8.3-4-VC11-installer.exe (125 mb) (direct link)
ভাই আপনার চাইতে আমি আরো বড় অলস । লেখা লিখি করতে মন চায় না তাই লেখা কম ছবি বেশি। কেউ মাইন্ড খাইয়েন না। ধাপে ধাপে ছবি ও কথা অনুসরন করুন।
১. Xampp সফটওয়্যার installer টি run as administrator দিয়ে চালু করুন

২. এন্টিভাইরাস থাকলে warning দিতে পারে। এটা কোন সমস্যা না। antivirus disable করে অথবা না করেই yes চাপুন সেটা আপনার ইচ্ছা। 😀

৩. আরো একটা ওয়ার্নিং !! যা বলতেসে তা করতে পারেন অথবা বুড়ো আঙ্গুল দেখিয়ে এগিয়ে যান

৪. আরে ভাই এটাও বলা লাগবে? Finish না আসা পর্যন্ত চাপতে থাকুন। 3 কি চাপবেন?! “Next” 😛

৫. Finish বাটন আসলে “Do you want to start the control panel now” untick দিয়ে finish চাপুন

৬. এবার Start>programs>xampp>xampp control panel অথবা c:\xampp\xampp-control.exe run as administrator দিয়ে চালু করুন।


৭. এবার apache এর পাশের red cross এ ক্লিক করলে service install এর জন্য বলবে। সেখানে yes চাপুন। একই ভাবে mysql এরটাও করুন। আপাতত আমাদের এই দুইটা হলেই চলবে।



৮. এরপর apache & mysql start বাটন চেপে চালু করুন। (**এ পর্যায়ে অনেকেই সমস্যার সম্মুক্ষিন হতে পারেন )


৯. এখন একটা ব্রাউজার খুলে address bar এ লিখুন “ Localhost “ ।

১০. বাম পাশে status এ ক্লিক করে দেখুন প্রথম ৩/৪ টা সার্ভিস Activated কিনা

১১. এরপর security তে ক্লিক করুন। দেখবেন আমার যেখানে secure লেখা সেখানে আপনার unsecure লেখা। কারন এই screen shot টা ভুলে তখন নেই নাই :v যাই হোক secure করার জন্য নিচে একটা লিঙ্ক দেয়া আছে ওইটায় ক্লিক করুন

১২. এখানে mysql এর root user এর জন্য password দিয়ে password changing এ ক্লিক করুন। পরে xampp directory protection এর জন্য user & pass দিয়ে make safe এ ক্লিক করুন।

১৩. এবার আবার localhost এ গিয়ে PhpMyadmin এ ক্লিক করলে লগিন এর পেজ আসবে সেখানে Mysql এর ইউজার root এবং আপনার সেট করা password দিয়ে লগিন করুন।

এবার আমরা সার্ভারে ওয়েভ সাইট ইন্সটল করব...

এক্ষেত্রে আমরা WordPress ইউজ করছি। না থাকলে ডাউনলোড করে নিন এখান থেকে।
১. প্রথমে c:\xampp\htdocs ফোল্ডারটিকে রিনেম করে দিব “htdocs_default” নামে এবং নতুন একটি folder বানবো “htdocs” নামে

২. এবার ডাউনলোড করা wordpress.zip এর সব htdocs ফোল্ডার এ কপি করতে হবে


৩. এখন phpmyadmin এ গিয়ে create database এ wordpress নামে একটা database বানাবো

৪. এবার ব্রাউজার এ localhost/wp-admin/install.php লিখে এন্টার চাপলে ছবির মত আসবে। সেখানে সব কিছু পুরন করে “install wordpress” চাপলে “success” পেজ আসবে

৫. ওখানে লগিন চেপে username & password দিলে wordpress এর admin panel আসবে।

৬. এখন অন্য একটা ট্যাব এ localhost ওপেন করলে আপনার ওয়ার্ডপ্রেস সাইট দেখতে পাবেন

উফফ... শেষ হল localhost এ সার্ভার ইন্সটল। এসব আমি না বললেও পারতাম কারন আগে এ নিয়ে অনেক টিউন হয়েছে। যারা করেছিলেন তারা এখানে এসে গলা বাজি করতেও পারেন।তাদের বলছি... শুধু নতুনদের জন্য ছিল এ পার্টটুকু।
সার্ভারতো বানালাম লোকাল ip দিয়ে অ্যাক্সেস ও করা যাবে কিন্তু যারা আমার নেটওয়ার্ক এ নেই মানে সারা দুনিয়ার মানুষ, তারা কি আমার ওয়েব সাইট দেখতে পারবে না?
উত্তরঃ পারবে। তবে একটু কষ্ট করতে হবে। সবাই অ্যাক্সেস করার জন্য আমাদের external ip দরকার যা internal ip থেকে সম্পুর্ন ভিন্ন। আমাদের সবার ই একটা করে আলাদা আলাদা external ip আছে । http://whatsmyip.org/ এখানে গেলে ip টা দেখা যাবে । লজিক বলে , ওই ip সরাসরি ব্রাউজার এ টাইপ করে আমাদের ওয়েব সাইট অ্যাক্সেস করা যাবে, কিন্তু না... আমাদের পিসির ফায়ার ওয়াল এবং সবচেয়ে বড় কথা আমাদের ISP ,সার্ভারের জন্য দরকারি পোর্ট 80 সহ অন্নান্য পোর্ট বন্ধ করে রাখে। পোর্ট খোলার জন্য firewall execption set করতে হয় এবং যদি router ইউজ করি তবে তাতে port forward করতে হয়। port forward এর নিয়ম সার্চ করলে পাওয়া যাবে। আমার router নাই তাই ওভাবে দিতে পারলাম না। আবার অনেক সময় external ip গুলো dynamic হয়ে থাকে মানে প্রতি বার change হয়, যেমনটা আমার modem এ হয়।
(অনেকের পোর্ট 80 & 8080 firewall disable করলেই ওপেন হতে পারে তারা
এখান থেকে টেষ্ট করে নিবেন http://www.whatsmyip.org/port-scanner/ । খোলা থাকলে নিচের ২ নং সমাধান ফলো করার দরকার নাই।)

সমাধান ১ :

যেহেতু আমদের প্রথমিক লক্ষ্য বাহির থেকে সাইট অ্যাক্সেস করা তাই সহজে তা কিভাবে করা যাবে সেটা আগে দেখি
১. প্রথমে ngrok নামে এই সফটওয়্যার টি নামিয়ে নিন এখান থেকে
২. Ngrok.zip এর মধ্যে ngrok.exe ফাইল পাবেন । ওটাকে c:\windows\system32 তে কপি করে দিন।
৩. এবার নোটপ্যাড ওপেন করে “ ngrok 80 “ লিখে anything.bat নামে যেকোন জায়গায় সেভ করুন।

৪. এবার বানানো ফাইলটিতে right click করে run as administrator দিয়ে চালু করুন। সব ঠিক থাকলে নিচের মত আসবে

৫. এখন ব্রাউজার এ localhost:4040 লিখে এন্টার দিলে আমার মত আপনার সাইটের জন্য লিঙ্ক পাবেন। ওই লিঙ্ক এ ক্লিক করে দেখুন আগে বানানো ওয়ার্ডপ্রেস সাইট টা আসে কিনা। যদি আসে তাহলে আর কি? দিয়ে দিন ওটা আপনার বন্ধুকে টেষ্ট করার জন্য, আশা করি সে আপনার সাইট অ্যাক্সেস করতে পারবে

কিছু কথাঃ

ngrok software টি VPN এর মাধ্যমে কাজ করে। এটা ফ্রি কিন্তু প্রতিবার connect করলে এটা different লিঙ্ক assign করবে। যা ওয়েব পাব্লিশ এর জন্য সুবিধা জনক না। নিজের ইচ্ছামত hostname দেয়া যায় কিন্তু এটা ওদের প্রিমিয়াম feature।
সমাধান ২ : (port forwarding- software method)
(এই সমাধানটি lan connection এর ক্ষেত্রে ট্রাই করা হয় নাই। )
১. পিসির firewall disable করুন
২. Simple port forwarding সফটওয়্যার টি নামিয়তে নিন এখান থেকে
৩. সফটওয়্যার টি ইন্সটল করে ওপেন করুন

৪. Router drop down এ আপনার router এর নাম থাকলে ভাল ওটা সিলেক্ট করুন ,না থাকলেও কোন সমস্যা নাই 😛
৫. নিচের খালি জায়গায় right ক্লিক করে add new তে যান। সেখানে ছবির মত 80 & 8080 পোর্ট দুটি add করুন


৬. এবার update router চাপুন। দেখবেন অনেক কিছুই আসবে, ওয়রনিং অথবা error ও আসতে পারে তাতে কোন সমস্যা নাই। সব শেষে done আসলে কাজ শেষ। এবার সফটওয়্যার টি ক্লোজ করে দিন


৭. এখন http://www.whatsmyip.org/port-scanner/ এখানে গিয়ে 80 & 8080 পোর্ট দুটি টেষ্ট করে দেখুন ওপেন দেখায় কিনা? ছবির মত দেখালে সব ঠিক আছে.. 😀

৮. এখন আপনার external ip ব্রাউজার এ লিখে এন্টার চেপে দেখুন যে আগে বানানো ওয়ার্ডপ্রেস সাইট টি আসবে। বন্ধুকে ip টা দিয়ে ট্রাই করতে বলেন। আশা করি কাজ হবে
*** কিছু কথাঃ
সফটওয়্যার টির কার্যক্ষমতা আমার জানা নাই কিন্তু আমার মডেম এ কাজ হয়েছে। আমি আমার সার্ভিস প্রভাইডার কে port forward নিয়ে জানতে চাইলে তারা বলেন যে আমার মডেম এ port forward সম্ভব না এটা করতে হলে router মডেম লাগবে। তারা কি জানে না যে এভাবেও কাজ হয়?!
সার্ভারে ডোমেইন নেম এ্যাড করাঃ (dynamic ip এর সমাধান)
আগেই দেখেছি ngrok ডোমেইন নেম provide করে কিন্তু তা dynamic । আমাদের static একটা নেম দরকার। যেহেতু আমরা আমাদের সার্ভার বানাতে কোন টাকা খরচ করছি না তাই এবার ফ্রি ডোমেইন ragistration ইউজ করব।
১. https://www.noip.com/sign-up এখানে গিয়ে সাইন আপ করতে হবে। সাইন আপ এর সময় domain নেম দিবেন যেটা আপনি চান। ফ্রী গুলার শেষে .ddns.net এ ধরনের কিছু থাকবে। আসলে আমাদের টা হবে sundomain

২. এবার ওদের dynamic DNS update client (DUC) ডাউনলোড করুন এখান থেকে
৩. সফটওয়্যার টি ইন্সটল করে ওপেন করুন। লগিন এর জায়গা আসলে username & pass দিয়ে লগিন করুন

৪. এবার edit host এ ক্লিক করুন। নতুন একটা বক্স আসবে সেখানে আপনার domain টি দেখতে পাবেন। পাশের বক্স এ টিক দিয়ে save চাপুন

৫. সব ঠিক থাকলে ছবির মত দেখাবে

দাড়ান আর একটু বাকি আছে...
Noip পোর্ট 80 redirect করে না ওরা 8080 করতে পারে তাই আমাদের সার্ভার কে পোর্ট 8080 তেও কাজ করানর জন্য config করতে হবে
৬. Xampp control panel ওপেন করে apache এর বরাবর যে config বাটন আছে তাতে ক্লিক করে Apache (httpd.conf) চাপলে নোটপ্যাড এ config file টা ওপেন হবে । সেখানে “ Listen 80 “ লাইন টা খুজে বের করে তার নিচে “ Listen 8080 “ add করে সেভ করে দিতে হবে। তারপর apache restart করতে হবে।

এখন আপনার anything.ddns.net এ ঢুকে দেখেন যে আপনার বানানো ওয়ার্ডপ্রেস সাইট টি আসবে!
***কিছু কথাঃ
Noip এর DUC সফটওয়্যার টি dynamic external ip কে ডোমেইন এর সাথে যুক্ত করে। সফটওয়্যার টি চালু না থাকলে ডোমেইন নেম কাজ করবে না কারন ip change হবে কিন্তু ডোমেইন তা জানতে পারবে না । যদি আমরা নিজের .com টাইপ ডোমেইন চাই তাহলেও নিতে পারি তবে এটার জন্য টাকা লাগবে।। 😀
ব্যাস আর কি? এবার চালান ওয়েব সাইট আপনার পিসি থেকে...!!!