২০১৬ সালের প্রথম আর্টিকেল লিখতে বসলাম । একটা ওয়ার্কশপ নিয়েছিলাম ইন্সপায়ার চিটাগং এ। সেখানে এই বিষয় দেখানো হয়েছে । আজ সবার জন্য লিখছি। এটা আসলে LAMP Stack এর উপরে করা একটি টিউটোরিয়াল।
LAMP stack হল একটা ওপেন সোর্স সফটওয়্যার গ্রুপ যা একসাথে একটা সার্ভার এ ইন্সটল করা হয় সার্ভারকে ডাইনামিক ওয়েবসাইট এবং ওয়েব অ্যাপ সারভ করার জন্য উপযোগী করার জন্য। এটা আসলে এসেছে – Linux (L) , Apache (A), MySQL (M) , PHP/PERL/PYTHON (P) এই আদ্যাক্ষর থেকে। আমরা পিএইচপি এর জন্য তৈরি করবো তাই বাকি দুটা কেটে দিলাম। এছাড়াও বর্তমানে আরো একটা Stack খুবই জনপ্রিয়। LEMP – Linux, Nginx ( Engine X) , MySQL and PHP. তবে এই আর্টিকেল এ আমরা LAMP stack install করাই দেখবো ইনশা আল্লাহ ।
এই টিউটোরিয়াল এ আমি এমন ভাবে কমান্ড গুলা দেবো যেনো আপনারা যেকোনো লিনাক্স ডিস্ট্রিবিউশন এ LAMP stack install করতে পারেন।
আগেই বলে দিচ্ছি এটা করতে আপনার একটা ভিপিএস বা লিনাক্স অপারেটিং সিস্টেম ডিস্ট্রিবিউশন দেয়া থাকতে হবে । নরমালি vps কেনার সময়ই এটা অটোমেটিক দেয়া থাকে। আপনার ভিপিএস এ SSH দিয়ে কানেক্ট করুন ।
প্রথম ধাপ – Apache Installation
Apache install করার জন্য টার্মিনাল এ নিচের কমান্ড দিনঃ
sudo yum install httpd
এরপর ইন্সটলেশন হতে থাকবে। ঠিক মত হয়ে গেলে আপনি নিচের কমান্ড দিয়ে সার্ভার স্টার্ট করতে পারবেন
sudo service httpd start
Apache install দেয়া খুবই সহজ তাইনা! আপনার ইন্সটল করা ঠিক মত হয়েছে কিনা দেখার জন্য ব্রাউজ করুন আপনার আইপি অ্যাড্রেস (Server IP Address). যদি আপনি “It works” মেসেজ ওয়ালা কোন পেজ পান তাহলে ঠিক মত ইন্সটল হয়েছে। আর এই ইমেজের মত একটা কিছু আপনি দেখতে পাবেন।
দ্বিতীয় ধাপ – MySQL Installation
MySQL install করার জন্য টার্মিনাল এ নিচের কমান্ড দিনঃ
sudo yum install mysql-server sudo service mysqld start
Installation Process এ ২ বার আপনার কাছে পারমিশন চাওয়া হবে। আপনাকে দুবারই yes persmission দিতে হবে।
ডিফল্ট Password থাকে না। একবার সেটাপ হয়ে গেলে আপনি root password set করতে পারবেন নিচের কমান্ড দিয়েঃ
sudo /usr/bin/mysql_secure_installation
যেহেতু এখনো কোন Password দেন নাই তাই কোন Password নাই।
Enter current password for root (enter for none): OK, successfully used password, moving on...
ইনিশিয়ালি কারেন্ট Password ব্ল্যাঙ্ক রাখুন জাস্ট enter চাপুন।
এইবার আপনি root Password সেট করতে চান কিনা জিজ্ঞেস করবে । আপনি Y press করুন এবং ইন্সট্রাকশন ফলো করুন।
CentOS কিছু সিরিজ yes or no types question করে এই ইন্সটলেশন প্রসেস automate করে । তাই সেইফ হল yes বলে দেওয়া সব গুলার ক্ষেত্রে ।
By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success! By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL!
এরপর MySQL রিলোড হবে এবং নতুন চেঞ্জ গুলো implement করবে।
তৃতীয় ধাপ – PHP Installation
PHP install করার জন্য টার্মিনাল এ নিচের কমান্ড দিনঃ
sudo yum install php php-mysql
Yes বাটন এ চাপ দিলেই পিএইচপি ইন্সটল হয়ে যাবে!
PHP Module installation:
PHP এর বিভিন্ন মডিউল ইন্সটল করে নিতে হয়। পিএইচপি এর এইসব লাইব্রেরী আর মডিউল অ্যাড করলে অনেক কাজ সহজ হয়ে যায়। আপনার জন্য যেইসব libraries available আছে তা জানার জন্য Terminal এ টাইপ করুন:
yum search php-
টার্মিনাল এ অনেক গুলা লাইব্রেরি দেখাবে যার শূরুর দিকের লাইন হবে অনেকটা নিচের মতঃ
php-bcmath.x86_64 : A module for PHP applications for using the bcmath library php-cli.x86_64 : Command-line interface for PHP php-common.x86_64 : Common files for PHP php-dba.x86_64 : A database abstraction layer module for PHP applications php-devel.x86_64 : Files needed for building PHP extensions php-embedded.x86_64 : PHP library for embedding in applications php-enchant.x86_64 : Human Language and Character Encoding Support php-gd.x86_64 : A module for PHP applications for using the gd graphics library php-imap.x86_64 : A module for PHP applications that use IMAP
কোন মডিউল কি কাজ করে এবং কিভাবে কি করে তার ডিটেইলস খুব সহজেই জানা যায় নিচের কমান্ড লিখেঃ
yum info name_of_the_module
এবার পছন্দের বা দরকারি মডিউল ইন্সটল দিতে নিচের কমান্ড দিনঃ
sudo yum install name_of_the_module
টিপ্সঃ একের অধিক মডিউল/ লাইব্রেরী space দিয়ে দিয়ে লিখলে একসাথে ইন্সটল হয়ে যাবে।
এইতো আপনি আপনার LAMP stack server রেডি করে ফেললেন। খুবই সহজ তাইনা? তবে যখনই সার্ভার রিস্টার্ট হয় এইসব সার্ভিস প্রসেস অফ হয়ে যায় অটোমেটিক শুরু করার জন্য আমাদের কমান্ড দিতে হয়। নরমালি পিএইচপি আপাচি এর সাথেই শুরু হয় তাই এর কমান্ড লাগে না। বাকি গুলার জন্য নিচের কমান্ড দিন।
sudo chkconfig httpd on sudo chkconfig mysqld on
ফাইনাল ধাপ – আপনার সার্ভার আউটপুট দেখুন
LAMP stack ঠিক মত কাজ করছে কিনা বোঝার জন্য খুব সহজেই আমরা নিচের কাজ করে দেখতে পারি । এটা পিএইচপি এর ইনফো চেক করা। এর জন্য যা করতে হবে একটা পিএইচপি ফাইল create করা লাগবে।
ফাইল ক্রিয়েট আর কোড লিখতে নিচের কমান্ড দিনঃ
sudo nano /var/www/html/info.php
নিচের কোড যোগ করুন:
<?php phpinfo(); ?>
সেভ করতে ctrl + x দিন , y দিয়ে save করুন.
Apache restart করে পরিবর্তন দেখা যাবে এই জন্য নিচের কমান্ড দিনঃ
sudo service httpd restart
এবার আপনার server Ip addpress দিয়ে নিচের মত করে লিখুন।
http://serverip/info.php
আপনি একটা পিএইচপি ইনফো ফাইল দেখবেন।
এইতো খুবই সহজেই আপনি একটা LAMP stack করে ফেললেন। এতে আরো ফিচার যোগ করা লাগবে লাইক – virtual host (to host more than one site), firewall ( to control the uses and visitors), phpMyAdmin ( to visually manage MySQL DB) প্রভৃতি । কোন সমস্যা হলে কমেন্ট করুন। আমি উত্তর দিবার যথাসাধ্য চেস্টা করবো । আর আপনার কিছু অ্যাড করার থাক্লেও কমেন্ট করে জানান। ধন্যবাদ। 🙂
**এই লেখাটি পূর্বে আমার বাংলা ব্লগে মার্চ ৭ ২০১৬ সালে প্রকাশিত । বর্তমানে এই ব্লগটা আমার বাংলাভাষী ভিজিটরদের জন্য ডেডিকেটেড! English Content এর জন্য WPBoffins or MRMizan follow করুন।