HELPER VPS

VPS-এ WordPress ইনস্টল, WordPress, LEMP ও Docker ইমেজ অনুযায়ী উপায়

WordPress নিজের সার্ভারে ইনস্টল করলে প্লাগইন, থিম থেকে সার্ভার সেটিং পর্যন্ত সবকিছু নিজের মতো ঠিক করতে পারবেন। সার্ভার তৈরির সময় বেছে নেওয়া ইমেজ অনুযায়ী সবচেয়ে মানানসই ইনস্টলের উপায় বেছে অনুসরণ করুন।

তিনটি উপায় থেকে বাছাই

HELPER VPS-এ সার্ভার তৈরির সময় শুধু ইমেজ বেছে নিলেই WordPress প্রস্তুতির ধাপ অনেক কমে যায়। নিজের অবস্থার সাথে মানানসই একটি উপায় বেছে নিন।

  • WordPress ইমেজ: Ubuntu 24.04-এর উপর Nginx, MySQL, PHP ও WordPress ইনস্টল হয়। ব্রাউজারে শুধু ইনস্টল স্ক্রিন শেষ করলেই হয়ে যায়, তাই একটি ব্লগ সবচেয়ে দ্রুত খোলার উপায়।
  • LEMP ইমেজ: Nginx, MySQL ও PHP প্রস্তুত সার্ভারে WordPress নিজে বসান। একটি সার্ভারে একাধিক সাইট রাখতে বা ফোল্ডারের গঠন ও সেটিং নিজে ঠিক করতে চাইলে ভালো।
  • Docker ইমেজ: WordPress ও ডেটাবেস কন্টেইনারে চালান। সাইট অন্য সার্ভারে সরাতে বা একই পরিবেশ বারবার তৈরি করতে সুবিধাজনক।

একটি ছোট ব্লগ সবচেয়ে ছোট 12GB জেনারেল প্ল্যান দিয়ে শুরু করলেই যথেষ্ট, যখন অনলাইন স্টোর বা ব্যস্ত সাইটগুলি দ্রুত ডিস্কের একটি হাই পারফরম্যান্স NVMe সার্ভারে পেজগুলি আরও হালকাভাবে খোলে। সাইজের সুপারিশগুলি WordPress VPS পেজে রয়েছে।

আগে ডোমেইন যুক্ত করুন

ডোমেইন ব্যবহারের পরিকল্পনা থাকলে ইনস্টলের আগে যুক্ত করে রাখলে HTTPS সার্টিফিকেট পর্যন্ত একবারেই পাবেন। ডোমেইন যেখান থেকে কিনেছেন সেখানকার DNS ব্যবস্থাপনা স্ক্রিনে নিচের দুটি রেকর্ড তৈরি করুন।

  • A রেকর্ড: নাম @ (আর www), মান সার্ভারের IPv4 অ্যাড্রেস
  • AAAA রেকর্ড: নাম @ (আর www), মান সার্ভারের IPv6 অ্যাড্রেস

রেকর্ড ছড়াতে সাধারণত কয়েক মিনিট থেকে কয়েক ঘণ্টা লাগে। সার্ভারে ping -c 3 example.com চালিয়ে আপনার সার্ভারের IP দেখা গেলে প্রস্তুত। নিচের কমান্ডের example.com আপনার ডোমেইন দিয়ে বদলে লিখুন।

উপায় 1. WordPress ইমেজ দিয়ে সঙ্গে সঙ্গে শুরু

  • সার্ভার তৈরির স্ক্রিনে অঞ্চল ও সাইজ বেছে ইমেজ তালিকা থেকে WordPress নির্বাচন করুন।
  • সার্ভার চালু অবস্থায় এলে ব্রাউজারে http://YOUR_SERVER_IP খুলুন।
  • ভাষা বেছে সাইটের শিরোনাম, অ্যাডমিন আইডি, পাসওয়ার্ড ও ইমেইল ঠিক করলে ইনস্টল শেষ।
  • http://YOUR_SERVER_IP/wp-admin দিয়ে অ্যাডমিন স্ক্রিনে ঢুকুন।

অ্যাডমিন পাসওয়ার্ড লম্বা ও জটিল রাখুন, আর আইডি admin-এর বদলে শুধু আপনার জানা নাম দিলে লগইনের চেষ্টার বিরুদ্ধে মজবুত থাকে। ডোমেইন যুক্ত করা ও HTTPS-এর জন্য নিচের HTTPS ধাপ হুবহু অনুসরণ করুন।

উপায় 2. LEMP সার্ভারে নিজে ইনস্টল

LEMP ইমেজে Nginx, MySQL ও PHP-FPM আগেই ইনস্টল থাকে। WordPress-এর জন্য দরকারি PHP এক্সটেনশন, ডেটাবেস আর সাইটের সেটিং যোগ করলেই হবে। Ubuntu 24.04 ধরে লেখা, আর অন্য Ubuntu ও Debian-এও একই ক্রম।

ধাপ 1. PHP এক্সটেনশন ইনস্টল

টার্মিনাল
apt update
apt install -y php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl php-imagick
php -v
ls /run/php/

php -v PHP-র ভার্সন, আর ls /run/php/ PHP-FPM সকেটের নাম দেখায়। Ubuntu 24.04-এ PHP 8.3, তাই php8.3-fpm.sock, আর Debian 13-এ PHP 8.4, তাই php8.4-fpm.sock দেখা যায়। নিচের Nginx সেটিংয়ে এই নামই হুবহু ব্যবহার করুন।

ধাপ 2. ডেটাবেস ও ইউজার তৈরি

root হিসেবে সংযুক্ত অবস্থায় mysql চালালে পাসওয়ার্ড ছাড়াই MySQL-এ ঢোকা যায়। নিচের চার লাইনে WordPress-এর আলাদা ডেটাবেস ও ইউজার তৈরি করুন। পাসওয়ার্ড লম্বা কিছুতে বদলে লিখুন আর নোট করে রাখুন।

mysql
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'change_this_long_password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

ধাপ 3. WordPress ডাউনলোড

টার্মিনাল
cd /var/www
curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz && rm latest.tar.gz
chown -R www-data:www-data /var/www/wordpress

ফোল্ডারের মালিক ওয়েব সার্ভারের ইউজার (www-data) করে দিলে ব্রাউজারের ইনস্টল স্ক্রিন নিজেই সেটিং ফাইল তৈরি করে, আর প্লাগইন ও থিমও অ্যাডমিন স্ক্রিন থেকে সঙ্গে সঙ্গে ইনস্টল করা যায়।

ধাপ 4. Nginx সাইট সেটিং

/etc/nginx/sites-available/wordpress
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    root /var/www/wordpress;
    index index.php;
    client_max_body_size 64m;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }
    location ~ /\.ht {
        deny all;
    }
}
টার্মিনাল
ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

nginx -t syntax is ok, test is successful দেখালে সেটিং ঠিক আছে। ডোমেইন এখনও না থাকলে server_name-এ _ লিখুন আর ডিফল্ট সাইটের (/etc/nginx/sites-enabled/default) লিংক মুছে দিলে IP অ্যাড্রেসে খোলে।

ধাপ 5. ব্রাউজারে ইনস্টল শেষ করুন

http://example.com খুললে ইনস্টল স্ক্রিন আসে। ডেটাবেসের নাম wordpress, ইউজার wpuser, ধাপ 2-এ ঠিক করা পাসওয়ার্ড আর হোস্ট localhost দিয়ে সাইটের শিরোনাম ও অ্যাডমিন অ্যাকাউন্ট ঠিক করলেই শেষ।

উপায় 3. Docker Compose দিয়ে ইনস্টল

Docker ইমেজে তৈরি সার্ভার বা নিজে Docker ইনস্টল করা সার্ভারে একটি ফাইল দিয়েই WordPress ও MariaDB একসাথে চালান। দুটি পাসওয়ার্ড লম্বা কিছুতে বদলে লিখুন।

টার্মিনাল
mkdir -p /opt/wordpress && cd /opt/wordpress
cat > compose.yaml <<'EOF'
services:
  db:
    image: mariadb:11
    restart: unless-stopped
    environment:
      MARIADB_DATABASE: wordpress
      MARIADB_USER: wpuser
      MARIADB_PASSWORD: change_this_long_password
      MARIADB_ROOT_PASSWORD: change_this_other_password
    volumes:
      - db:/var/lib/mysql
  wordpress:
    image: wordpress:latest
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - "80:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: change_this_long_password
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wp:/var/www/html
volumes:
  db:
  wp:
EOF
docker compose up -d

http://YOUR_SERVER_IP খুললে ইনস্টল স্ক্রিন আসে। ডেটাবেসের তথ্য ফাইলে আগেই আছে, তাই শুধু সাইটের শিরোনাম ও অ্যাডমিন অ্যাকাউন্ট ঠিক করলেই হবে। পোস্ট ও আপলোড ফাইল wp ভলিউমে, আর ডেটাবেস db ভলিউমে থাকে, তাই কন্টেইনার নতুন ভার্সনে বদলালেও সব অক্ষত থাকে।

Docker-এ চালানো সাইটে HTTPS বসাতে সামনে রিভার্স প্রক্সি রাখার উপায় গোছানো। স্ক্রিনে শুধু ডোমেইন লিখলেই সার্টিফিকেট পর্যন্ত স্বয়ংক্রিয়ভাবে বসিয়ে দেয় এমন Coolify বা Dokploy ইমেজ ব্যবহার করলে আরও সহজ।

HTTPS সার্টিফিকেট বসানো

WordPress ইমেজ ও LEMP সার্ভারে Certbot দিয়ে Let's Encrypt-এর বিনামূল্যের সার্টিফিকেট নিয়ে সরাসরি Nginx-এ বসান। ডোমেইন সার্ভারের IP-তে নির্দেশ করা থাকতে হবে।

টার্মিনাল
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com

ইমেইল দিয়ে শর্তে সম্মত হলে সার্টিফিকেট ইস্যু হয় আর Nginx সেটিংয়ে HTTPS যোগ হয়। সার্টিফিকেট Certbot স্বয়ংক্রিয়ভাবে রিনিউ করে। এরপর WordPress অ্যাডমিন স্ক্রিনের সেটিংস > সাধারণ থেকে WordPress অ্যাড্রেস ও সাইট অ্যাড্রেস https-এ বদলান। ফায়ারওয়াল ব্যবহার করলে ufw allow 80,443/tcp দিয়ে দুটি পোর্ট খোলা রাখুন।

ইনস্টলের পর করে রাখার মতো সেটিং

  • পার্মালিংক: সেটিংস > পার্মালিংক থেকে পোস্টের নামের ধরন বেছে নিলে অ্যাড্রেস পড়তে সুবিধা হয়। উপরের Nginx সেটিংয়ের try_files লাইন এই অ্যাড্রেস সামলায়।
  • আপলোড সাইজ: বড় ছবি বা থিম ফাইল আপলোড করতে Nginx-এর client_max_body_size-এর সাথে /etc/php/8.3/fpm/php.ini-এর upload_max_filesize ও post_max_size একই সাইজে বাড়িয়ে systemctl restart php8.3-fpm চালান।
  • ইমেইল পাঠানো: সদস্য নিবন্ধন, পাসওয়ার্ড পুনরুদ্ধার ও অর্ডারের নোটিফিকেশন ইমেইল SMTP প্লাগইন দিয়ে ইমেইল পাঠানোর সার্ভিসের 587 বা 465 পোর্টে যুক্ত করুন। উপায় ইমেইল পাঠানোর গাইড-এ আছে।
  • আপডেট: WordPress কোর, প্লাগইন ও থিম অ্যাডমিন স্ক্রিন থেকে, আর সার্ভার apt update && apt upgrade -y দিয়ে নিয়মিত আপডেট রাখুন।
  • ব্যাকআপ: পোস্ট ও ডেটাবেস আবার তৈরি করা যায় না এমন সম্পদ। সার্ভার তৈরির সময় অটো ব্যাকআপ চালু রাখুন, বা ব্যাকআপ ও স্ন্যাপশট গাইড-এর উপায়ে কপি রেখে দিন।

শুরু থেকে আবার ইনস্টল করতে চাইলে সার্ভার পেজের রিইনস্টল থেকে আবার WordPress ইমেজ বেছে নিলে পরিষ্কার অবস্থায় ফিরে আসে। ডিস্ক নতুন করে ইনস্টল হয়, তাই দরকারি পোস্ট টুলস > এক্সপোর্ট দিয়ে আগে নামিয়ে রাখুন, আর ক্রমের জন্য রিইনস্টল গাইড দেখুন।

সাথে দেখার মতো গাইড

এই গাইডের পর করে রাখার মতো সেটিং।

সব গাইড দেখুন