Sunday, July 27, 2014

EC2 সার্ভারে ইন্সটল করুন ওয়েব হোস্টিং কনট্রোল প্যানেল Ajenti & Ajenti-v (better than webmin or Zpanel)

আজ যা লিখব তা আমার ৮ দিনের গবেষনার ফল। আমাকে ৬০ ঘন্টার উপরে একই বিষয়ের উপর কাজ করতে হয়েছে।  অনেক নতুন নতুন কমান্ড শিখতে হয়েছে। বন্ধুদের সাথে দেখা করতে পারি নাই, আজ ২৮ রোজার দিনেও ঈদের মার্কেটিং করতে পারি নাই। যাই হোক, সেকেন্ড সেমিস্টারে এমনও কিছু DNS এর কাজ করেছিলাম অনেক কিছু না বুঝেই , আজ অনেক প্রশ্নেরই উত্তর পেয়েছি। যেসব বিষয়ে সমস্যায় পড়েছি Ajenti এর গিটহাবে রিপোতে issue তৈরি করে হেল্প নিতে হয়েছে। ওদের সাপোর্ট খুবই ভাল।


গত বছর ঠিক এই সময়ই হোস্টগেটরের  শেয়ার্ড হোস্টিং নিয়েছিলাম। সিপ্যানেল তো দেয়াই থাকে। সাধারন ইউজারদের জন্য অনেক ভাল। কিন্তু আরো এডভান্স লেভেলে কাজ করতে চাইলে ওদের ssh সাপোর্ট নাই। সাপোর্ট নিলে আরো খরচ পড়বে। ফলে kobra.io , shiftedit.io  এর মত সাইটগুলোতে অনলাইনে কাজ করতে পারছিলাম না। ওদের রেইলস সাপোর্ট আছে কিন্তু মাত্র ৩ ভার্সন পর্যন্ত। যা আছে তা না থাকার মতই। এরপর Rapidleech ব্যবহার করাতে বাধা আছে। ইউজ করলে রিসেলার হোস্টিং পর্যন্ত বন্ধ করে দেয়ার ক্ষমতা রাখে। এসব সমস্যা সমাধানের কারনেই এবার আমাজন ec2 তে মুভ করলাম।

১।  আগের পোস্টগুলোতে রেডহ্যাটে কিভাবে ওয়ার্ডপ্রেস বা অন্যকিছু কনফিগার করতে হয় শিখিয়েছিলাম। কিন্তু এবার যেহেতু পরিপূর্ণভাবেই ec2 তে মুভ করলাম আর কমান্ড লিখতে ভাল্লাগে না। সহজ সমাধান চাচ্ছিলাম। যেহেতু Cpanel কেনার টাকা পয়সা নাই তাই এর বিকল্প ওপেনসোর্স ভাল কোন কনট্রোল প্যানেল খুজছিলাম। অনেককিছুতেই ট্রাই দিলাম, কোনকিছুই মনমত হয় না। শেষে পেলাম Ajenti . এর ইন্টারফেস সুন্দর সব কিছুই সুন্দর। তবে ডকুমেন্টশনটা ভাল করে নাই, আমি বুঝতেই পারছিলাম না কোনটার পর কোনটা করব। এরজন্যই অনেক টাইম লেগে গেল।

২। যাই হোক, আমার ec2 এর র‍্যাম যেহেতু কম তাই Redhad, Apache ইন্সটল করার ইচ্ছা নাই। লাইট OS উবুন্টূ, ওয়েবসার্ভার Nginx এ কাজ করব। Ajenti, mysql, phpmyadmin, ftp, mail সব কিছুর কনফিগার কিভাবে করে তাও জানাব।

টার্মিনাল থেকে আপনার ভিপিএস এ লগিন করুন। কমান্ড লিখুন -

$ wget -O- https://raw.github.com/Eugeny/ajenti/master/scripts/install-ubuntu.sh | sudo sh

ajenti ওয়েব কন্ট্রোল প্যানেল অটোমেটিক ইন্সটল হবে এবং সবকিছুর কনফিগার হবে।

$ service ajenti restart

ajenti সার্ভিস রিস্টার্ট করুন। এখন আমরা ajenti-v ইন্সটল করব। এটা হল হোস্টিং কনট্রোল প্যানেল।

$ apt-get install ajenti-v ajenti-v-nginx ajenti-v-mysql ajenti-v-php-fpm php5-mysql

একই সাথে ajenti-v , nginx, mysql , php ইন্সটল হয়ে যাচ্ছে। এই অংশে mysql পাসওয়ার্ড দিতে হবে।

$ service ajenti restart

আবার সার্ভিসটি রিস্টার্ট দিন।

৩। এবার আমরা কনট্রোল প্য্যনেলে লগিন করব। লগিন করতে হলে https://আইপি এড্রেস:8000 এভাবে লগিন করবেন। ধরুন আপনার আইপি এড্রেস 54.191.216.168  তাহলে লগিন করবেন https://54.191.216.168:8000 এভাবে। আপনি এই এড্রেসে যাওয়ার পর পরই আপনাকে ওয়ার্নিং দেখাবে ssl সার্টিফিকেট নাই। আপনি browse this address anyway, এবং include this exceptional এ যোগ করে হলেও সাইট প্রবেশ করার চেষ্টা করবেন। আসলে এক এক ব্রাউজারে একএক রকম। লগিন পেজে ইউজার নেম হল root এবং পাসওয়ার্ড admin



লগিন করার পর এরকম ইন্সটারফেস পাবেন -



৪। এখানে বামদিকে package অংশে যান। search ট্যাব এ ক্লিক দিন। ajenti লিখে সার্চ দিন।
ajenti-v-ftp-pureftpd:all
ajenti-v-mail:all
ajenti-v-mysql:all
এই তিনটি প্যাকেজে ডানদিকে টিকচিহ্ন দিন। তারপর উপরে Apply অংশে ক্লিক দিন। কিছুক্ষন পর সবগুলো প্যাকেজ ইন্সটল করে নিবে। পারমিশন চাইলে Y বাটন চেপে দিয়ে দিবেন।   


বামদিকের মেনু থেকে configure এ ক্লিক দিয়ে use ssl এর টিক চিহ্ন তুলে দিয়ে Restart website এ ক্লিক দিন। এবার আর https দিয়ে ব্রাউজ করার দরকার নেই। শুধুমাত্র http দিয়েই ব্রাউজ করবেন। http://54.191.216.168:8000

৫। এখানে বামদিকে websites অংশে যান। নিচের restart websites বাটনটি চাপ দিন। খেয়াল করুন NGINX service টি অন হয়েছে কিনা। না হলে সমস্যা নেই। new website অংশে আপনার ওয়েবসাইট ধরুন mashpy.me লিখে create প্রেস করুন। manage এ যান।  Maintenance mode এর টিক চিহ্ন সরিয়ে দিন। path এ লিখুন /srv/mashpy.me/domain তারপর create directory তে ক্লিক দিন। অবশ্যই Set এ ক্লিক দিয়ে Apply change এ ক্লিক দিবেন। 



৬। এবার domain ট্যাব এ ক্লিক দিন।  

Content এ গিয়ে php-fast-cgi সিলেক্ট করে create এবং  apply changes এ ক্লিক করুন।

### এখন Advanced অংশে নিচের কোডটি লিখুন। এটি শুধুমাত্র তারাই লিখবেন যাদের সাইট জুমলা বা ওয়ার্ডপ্রেস বা অন্যান্য cms দিয়ে তৈরি।
কোডটি এই লিঙ্কে পাবেন। বুদ্ধি খরচ করে সাবধানে লিখবেন। কোনটা আপনার জন্য দরকার অথবা অপ্রয়োজনীয়।

Mysql ট্যাবে গিয়ে আপনি ডাটাবেজ এবং ইউজার ক্রিয়েট করতে পারেন । অবশ্যই grant all permission দিতে ভুলবেন না।

FTP অংশে দেখবেন অটোমেটিক ইউজার ক্রিয়েট হয়ে গেছে। আপনি file zila তে হোস্ট হিসেবে আপনার আইপি, ইউজার ও পাসওয়ার্ড বসিয়ে চেক করতে পারেন সব কিছু ঠিক আছে কিনা।


যদি সমস্যা হয় তাহলে সেটিং থেকে passive mode এ external ip সিলেক্ট করে  দিবেন।

৭। আবার websites মেনুতে গিয়ে restart website এ ক্লিক দিন। nginx চালু হবে। না হলে আবার restart করুন। এবারো না হলে ssh লগিন করে service nginx restart এ কমান্ড চাপুন। তারপর আবার restart websites এ ক্লিক দিয়ে দেখুন nginx চালু হয়েছে কিনা।

Filemanager এগিয়ে srv/mashpy.me/domain অংশে গিয়ে new file এ ক্লিক করুন। index.php তে রিনেম করুন। Edit এ ক্লিক দিয়ে <?php phpinfo() ; ?> সেভ করুন। এবার mashpy.me সাইটে গিয়ে দেখুন আপনার সাইট এসেছে কিনা। নাহ আসবে না ! এখনও কাজ বাকি।

৮। আপনার ডোমেইন কনট্রোল প্যানেলে dns কনফিগার করতে হবে। ডোমেইনের সাথে হোস্টিং কানেক্ট হয় ২ ভাবে। প্রথমটি হল নেম সার্ভার দিয়ে, দ্বিতীয়টি হল DNS দিয়ে। আপ্নার ডোমেইন যদি নেমচিপ অথবা গোড্যাডিতে হয় তাহলে লগিন করে আপনার ডোমেইনে গিয়ে DNS এ সিলেক্ট করুন। আমি যেভাবে বললাম সরাসরি এভাবে পাবেন না। একটু গুগল সার্চ করে বের করুন আপনার ডোমেইন কনট্রোল প্যানেলে dns কোথায় এডিট করতে হয়।


ডোমেইনের জন্য এভাবে কনফিগার করবেন। TTL ভেল্যু দিবেন ৬০০

এবার ১২ ঘন্টা পর সাইট চেক করে দেখুন সাইটে index.php তে যা লিখেহচিলাম তার আউটপুট এসেছে কিনা। আমি অবশ্য ১২ ঘন্টা অপেক্ষা করিই না । https://www.hidemyass.com/proxy থেকে অথবা http://snapito.com/ থেকেই চেক করে ফেলি সাইটের কি অবস্থা।

৯। আমরা তো একটু আগে ডোমেইন কিভাবে কনফিগার করতে হয় তা দেখলাম। এখন সাবডোমেইন কিভাবে কনফিগার করে সেটা দেখাচ্ছি।
ধরুন আপনি bookmark নামে সাবডোমেইন তৈরি করতে চাচ্ছেন। আপনার ডোমেইন কনট্রোল প্যানেলে এটি যোগ করুন।

HOST NAME         IP ADDRESS                 RECORD TYPE 
bookmark             54.191.216.168              A address
www.bookmark    bookmark.mashpy.me.   Cname 

এবার ajenti প্যানেলে গিয়ে নতুন একটি ওয়েবসাইট bookmark.mashpy.me ক্রিয়েট করুন। সব আগের মত কনফিগার করবেন। তবে যে অংশগুলো চেঞ্জ করবেন শুধু সেগুলো বলছি - General  অংশে path দিবেন srv/mashpy.me/bookmark

আসলে path আমি একটা স্টাইলে দিয়ে থাকি। যেমন আপনি নতুন কোন একটা ডোমেইন এড করতে চান তাহলে path হবে -
srv/example.com/domain
এই অংশে থাকবে example.com সাইটের মূল ফাইলগুলো। আর এর সাবডোমেইন যেমন blog তৈরি করতে চান তাহলে path হবে =
srv/example.com/blog

তাহলে প্রত্যেকটা ডোমেইনের ফাইল আলাদা থাকল , এদের সাবডোমেইনের ফাইলগুলাও আলাদা থাকল।

এখন Domain ট্যাবে এসে যোগ করুন -
এরপর srv/mashpy.me/bookmark তে index.php তে কিছু রাখুন এবং সাইটটি চেক করুন ঠিকমত এসেছে কিনা।

১০। সাইটে phpmyadmin ইন্সটল করার দরকার হতে পারে। আমি phpmyadmin নামে একটা সাবডোমেইন খুলি এবং phpmyadmin এর সাইট থেকে স্কীপ্ট ডাউনলোড করে রাখি। এরপর সাবডোমেইনটি ব্রাউজ করলেই phpmyadmin এর সকল কাজ করতে পারি। আপনার যদি কথাগুলো বুঝতে সমস্যা হয় তাহলে ajenti এর ডকুমেনশটনে দেখতে পারেন। সেখানে এই সম্পর্কিত একটি আর্টিকেল আজকে নতুন লিখেছে।

১১। মেইল কনফিগার করার জন্য বামদিকে mail মেনুতে যান। New mailbox এ যেয়ে একটি prefix যোগ করুন।


তারপর mailbox এ ক্লিক করতে পারেন অথবা forwording এ ক্লিক করতে পারেন। আমার ফরওয়ার্ড করা পছন্দ। তারপর target address এ আমার জিমেইল আইডি দিয়ে রেখেছি।

-----------------------------------------------------------------
ব্যর্থতা ১: আমি যখন আমার সকল ফাইল hostgator থেকে ec2 তে আনলাম তখন php version প্রবলেমে পড়তে হয়েছে। কারন ajenti যখন php5-fdm ইন্সটল করে তখন একেবারে লেটেস্ট ভার্সন ইন্সটল করে। কিন্তু আমার অনেক সাইট আছে যেগুলো php 5.3 তে ভাল চলে। আমি চেয়েছিলাম যেন multiple ভার্সন ইন্সটল করা যায়। ইন্সটল করতে পেরেছিলাম phpbrew দিয়ে, আবার php এর মেইনসোর্স থেকেও ইন্সটল করেছি। কিন্তু সেটা কোনভাবেই ajenti এর সাথে কানেক্ট করতে পারছিলাম না। যেহেতু আমি সাইটে nginx ইউজ করেছি সেহেতু php-fpm enable মুডে কম্পাইল করাও জরুরী ছিল। অনেক চেষ্টা করেও মাল্টিপল ভার্সন তৈরি করতে না পারায় url.mashpy.me  সাইট এখন বন্ধ।

ব্যার্থতা ২: আমরা যখন সাবডোমেইন যোগ করি তখন আবার ডোমেইন কনট্রোল প্যানেলেও আপডেট দেয়া লাগে। যদি নেমসার্ভারের মাধ্যমে করতাম তাহলে আর আপডেট নেয়া লাগত না। নেমসার্ভার তৈরি করার জন্য bind9 ইন্সটল দিয়েছিলাম। ঠিকমত কনফিগার করেছি। কিন্তু তা ডোমেইন কনট্রোল প্যানেলে ইনপুট ঠিকমত নিচ্ছে না। সম্ভবত freedns.afraid.org থেকে আবার আইপিগুলো রেজিস্টার করতে হয়। ওদের নেমসার্ভারটা ডোমেইন কনট্রোল প্যানেলে বসাতে হয়। যাই হোক পুরো ব্যাপারটাতে এখনও কনফিউসড। তাই জন্য DNS কনফিগার করেই সাইট চলছে।

আশা করি টিউটরিয়ালটি কিছুটা বুঝতে পেরেছেন। পুরোপুরি বুঝতে হলে কমপক্ষে তিনবার আর্টিকেলটা পড়ুন। কোন সমস্যা হলে কমেন্টে জানাবেন।

No comments:

Post a Comment

এখানে আপনি আপনার মূল্যবান মতামতটি প্রকাশ করতে পারেন।