বর্তমানে এই ইন্টারনেটের যুগে সার্ভার বলতে বেশিরভাগ মানুষই ওয়েব সার্ভারকেই বুঝিয়ে থাকে। ওয়েব সার্ভারের কাজ হলো সার্ভারে আসা http রিকোয়েস্টগুলোকে সার্ভ করা।

সবচেয়ে বেশী ব্যবহৃত ওয়েব সার্ভার হচ্ছে এপাচি। এর সুবিধা, ফিচার, নিরাপত্তা অনেক বেশী এবং পরীক্ষিত- অনেকটা সে কারণে বেশীর ভাগ মানুষ ওয়েব সার্ভার প্রোগ্রাম বলতে এপাচিকেই মনে করে। তবে এপাচির ভাল দিকের পাশাপাশি কিছু দুর্বলতাও আছে। সেগুলো হলো: এপাচি অনেক মেমরি খায়, কাজের গতি ধীর। যেসব ওয়েব সাইটে প্রতি সেকেন্ডে কয়েক হাজার বা মিলিয়ন হিট হয় সেখানে এপাচি খুব সুবিধা করতে পারে না।

এপাশির বিকল্প হিসাবে আছে lighttp (আদর করে লাইটি বলে), lightspeed (কমার্শিয়াল) ও আরও বেশ কিছু প্রোগ্রাম। লাইটি খুব দ্রুত কাজ করে, তবে তাতে কিছু বাগের দরুন মাঝে মাঝেই রিবুট করতে হয়।

তবে বর্তমানে আরেকটা লাইটওয়েট সার্ভার খুব দ্রুত জনপ্রিয়তা পাচ্ছে। এটি খুব দ্রুত কাজ করতে পারে। এর নাম এঞ্জিনেক্স (Nginx)। এটিকে প্রথমে লেখা হয় এপাচির একটি সহকারী হিসেবে। কিন্তু এর কার্যকারিতা দেখে প্রোগ্রামাররা একে আলাদা সার্ভারে রুপ দেয়।

বর্তমান যুগের সবচেয়ে বড় সামাজিক যোগাযোগের সাইট ফেসবুক চলছে এই সার্ভারে।

পিএইচপি সহ এঞ্জিনেক্স ইন্সটলে কিছুটা ঝামেলা হয়। তার কারণ এই সার্ভারে পিএইচপি রান করাতে php5-fpm নামে একটা বাড়তি মডিউল লাগে। আর এটা কম্পাইল করে নিতে হয়।

তবে আজকে আমি দেখাব কিভাবে কোনপ্রকার কম্পাইল ছাড়া উবুন্টুতে PHP 5.3 এবং MySQL সহ Nginx ওয়েব সার্ভার ইন্সটল করা যায়।

এজন্য ধারাবাহিক ভাবে নিচের কমান্ডগুলো টার্মিনালে চালিয়ে যান।

প্রথমে আমরা Nginx সার্ভার ইনস্টল করব। এজন্য নিচের কমান্ডটি দিন।

sudo apt-get install nginx

এরপর আমরা সার্ভারের কনফিগারেশন ঠিক করব। এজন্য

sudo nano /etc/nginx/sites-available/default

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

server {
    listen   80;
    server_name  localhost;
    access_log  /var/log/nginx/localhost.access.log;

## Default location
    location / {
        root   /var/www;
        index  index.php;
    }

## Images and static content is treated different
    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
      access_log        off;
      expires           30d;
      root /var/www;
    }

## Parse all .php file in the /var/www directory
    location ~ .php$ {
        fastcgi_split_path_info ^(.+.php)(.*)$;
        fastcgi_pass   backend;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param  QUERY_STRING     $query_string;
        fastcgi_param  REQUEST_METHOD   $request_method;
        fastcgi_param  CONTENT_TYPE     $content_type;
        fastcgi_param  CONTENT_LENGTH   $content_length;
        fastcgi_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
    }

## Disable viewing .htaccess & .htpassword
    location ~ /.ht {
        deny  all;
    }
}
upstream backend {
        server 127.0.0.1:9000;
}

এবার নিচের কমান্ডটি দিয়ে পিএইচপি ইন্সটল করে নিন।

sudo apt-get install php5-cli php5-common php5-suhosin

এবার আমরা php5-fpm মডিউলটি ইন্সটল করব। এজন্য নিচের কমান্ডগুলো একটা একটা করে দিন।

sudo add-apt-repository ppa:brianmercer/php
sudo apt-get update
sudo apt-get install php5-fpm php5-cgi

তবে যদি আপনি উবুন্টুর সার্ভার এডিশন ব্যবহার করেন তবে php5-fpm মডিউলটি ইন্সটল করার আগে নিচের কমান্ডটি রান করবেন।

sudo apt get install python-software-properties

এবার নিচের কমান্ড দিয়ে MySQL সার্ভার ইন্সটল করে নিন।

sudo apt-get install mysql-server

কাজ শেষ। এবার শুধু Nginx এবং php5-fpm রিস্টার্ট করুন।

sudo /etc/init.d/nginx restart
sudo /etc/init.d/php5-fpm restart

এবার টেস্টিং। /var/www ফোল্ডারে index.php নামে একটা ফাইল তৈরী করুন এবং তাতে নিচের কোডটি দিন।

<?php phpinfo(); ?>

ব্রাউজ করে দেখুন পিএইচপি রান করেছে কি না।

আপনি যদি MySQL এডমিনিস্ট্রেশনের জন্য phpMyAdmin ব্যবহার করতে চান তবে নিচের কমান্ডের মাধ্যমে php5-mysql প্যাকেজটি ইন্সটল করে নিন।

sudo apt-get install php5-mysql

তো এবার উপভোগ করতে থাকুন পৃথিবীর সবচেয়ে দ্রুততম সার্ভার।

কৃতজ্ঞতাঃ

লেখার মূল অংশটি এখান থেকে নেয়া।

আর আলমগীর ভাইয়ের এই লেখা থেকে অনুপ্রাণিত।




What's on your mind?


125 Comments

Dweezil commented almost 8 years ago

Unapralelled accuracy, unequivocal clarity, and undeniable importance!

আলসে দুপুর commented about 9 years ago

খুবই কাজের পোষ্ট। ধন্যবাদ। আচ্ছা.... আমি যদি আমার পিসিকি সার্ভার বানিয়ে ইন্টারনেটের সাথে সংয়ুক্ত করতে চাই... তাহলে কি করতে হবে? কিভাবেই বা করব? এ সংক্রান্ত একটি পোষ্ট দিন প্লিজ।

বাবর commented about 9 years ago

দেখি লিখতে পারি কি না। এই লেখাটাই তো কপি পেস্ট। আর তা বাংলাদেশের প্রেক্ষাপটে কোন কাজেই আসবে না।